Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-06-2011, 14:44   #1
Pess
Senior Member
 
L'Avatar di Pess
 
Iscritto dal: Aug 2006
Città: Milano (MI)
Messaggi: 7307
[Fortran] Runtime error

Ho un problema nell'esecuzione di un programma Fortran che serve a "decomprimere" ed ordinare Database sulla turbolenza (lo potete trovare qua insieme ai database citati); tali file decompressi mi serviranno per una esercitazione per l'università, come da regola di sezione dunque questa è una "fase preliminare" per ottenere i dati su cui lavorare e non il lavoro da svolgere...
Il programmino in questione è stato scritto in Fortran dal ricercatore che ha raccolto i database ed in teoria basterebbe eseguirlo (mettendo al rigo 72 il nome del file da decomprimere) ma è da 2 giorni interi che ci provo senza successo.
Premetto che ho usato vari compilatori su varie macchine e quello con cui mi trovo meglio è FTN95 (è free per uso privato) che mi ha permesso di fare un debug ed individuare l'errore:

"Runtime error from program:c:\dmt\postbl-uvwp3d-af.exe
Run-time Error
*** Error 158, Unformatted record is too short for input list

main - in file postbl-uvwp3d-af.f at line 74 [+00d4]"

Come si può correggere? Sono assolutamente a digiuno di Fortran e non so dove mettere le mani! Ho provato con molto altri compilatori ed IDE (Force 2.0, gfortran...) ma il risultato è sempre un errore di Runtime... Ho fatto prove su due diversi PC di qualche annetto fa con Windows XP e sul notebook in firma...

Ringrazio in anticipo chiunque vorrà aiutarmi...

EDIT: Riporto il codice per intero con la riga che dà l'errore evidenziata in rosso; l'errore ovviamente vale anche per gli altri punti in cui compare questa fantomatica T0 come parametro di lista per i comandi READ e WRITE...

Codice:
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C                                                                     !
C     *******************************************************         !
C     *  POSTPROCESSOR:                                     *         !
C     *  SPATIALLY DEVELOPING TURBULENT BOUNDARY LAYER      *         !
C     *******************************************************         !
C                                                                     !
C     AUTHOR: A.FERRANTE                                              !
C     DATE:   21 AUGUST, 2006                                         !
C     INPUT:  uvwp3d.ibm.# (Unformatted IBM-P4 file)                  !
C     OUTPUT: field2dy.plt field2dx.pld (Formatted Tecplot files)     !
C                                                                     !
C     CODE DESCRIPTION:                                               !
C     READS INSTANTANEOUS 3D FLUID VELOCITY COMPONENTS U,V,W          !
C     AND PRESSURE P FROM uvwp3d.ibm.#                                !
C     WRITES X,Z,U,V,W,P ON field2dy.plt                              !
C     WRITES Y,Z,U,V,W,P ON field2dx.plt                              !
C                                                                     !
C     COMPILING LINE ON IBM-P4+:                                      !
C     xlf90_r -qfixed -qrealsize=8 -qsuppress=cmpmsg                  !
C                                                                     !
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      MODULE CPARA
      INTEGER, PARAMETER :: IMP=514,JMP=258,KMP=98
      INTEGER, PARAMETER :: ISLICE=484, JSLICE=129
      REAL, PARAMETER :: LX=20.0, LY=5.0, LZ=3.6
      INTEGER :: NCUBE,NXZ,NT,IM,JM,KM
      REAL :: DX,DY,DZ
      END MODULE CPARA
!
      MODULE CBOLA
      REAL, PARAMETER :: REDEL=8000., ATL=0.66
      REAL, DIMENSION(:), ALLOCATABLE :: ZETA,ZI,FZZ
      REAL, PARAMETER :: VKC=0.41,BLL=5.2,PIWL=0.5
      END MODULE CBOLA
!
      MODULE CFLD
      REAL, DIMENSION(:), ALLOCATABLE ::
     .     UFLD,VFLD,WFLD,DUMMY,PRESS
      REAL, DIMENSION(:,:,:), ALLOCATABLE :: U, V, W
      END MODULE CFLD
!
!----------------------------------------------------------------------
      PROGRAM POSTPRO
C
C I= 1,IM+2      ARRAYS DIMENSION -- (IMP=IM+2) SIMILAR FOR J AND K
C I= 2,IM+1      PHYSICAL GRID POINTS IM
C DX=LX/IM, DY=LY/JM, DZ=LZ/KM
C
C U(I,J,K)       u component of velocity in (i+.5,j   ,k)
C V              v component of velocity in (i   ,j+.5,k)
C W              w component of velocity in (i   ,j   ,k+.5)
C
C PRESS(I,J,K)   pressure in (i,j,k)
C
C UFLD(:)        u component of velocity in (i,j,k)
C VFLD           v    //
C WFLD           w    //
C
C X,Y,Z          (I   ,J   ,K   )  [-DX/2:LX+DX/2] {1,IMP}
C XS,YS,ZS       (I+.5,J+.5,K+.5)  [    0:LX+DX  ] {1,IMP}
C
      USE cpara
      USE cfld
      USE cbola
C
      CALL OP_WR
C
      DO 1 IXYZ=1,2       ! X and Y planes
C
      NGPH1=25
      OPEN(NGPH1,FILE='uvwp3d.ibm.06160',FORM='UNFORMATTED')
      REWIND(NGPH1)
      READ(NGPH1) T0  
      BACKSPACE(NGPH1)
C
      CALL ALLOC_VAR(IXYZ)
C
      IM = IMP-2
      JM = JMP-2
      KM = KMP-2
      DX = LX/FLOAT(IM)
      DY = LY/FLOAT(JM)
      DZ = LZ/FLOAT(KM)
C
      CALL BLUREF
C
      NT=0
C
 10   CONTINUE                  ! LOOP ON TIME NT
      NT=NT+1
C
      READ(NGPH1,END=100) T0
      BACKSPACE(NGPH1)
C
      CALL READU(IXYZ)
      print *,'nt=',NT
C
C    ***AVERAGE VELOCITY FIELD IN GRID POINTS I,J,K***
C
      CALL COPYFIELD(IXYZ)
      CALL AVGRPO(IXYZ)
C
C    ***WRITE IN OUTPUT VELOCITY AND PRESSURE FIELD***
C
      CALL WRSLICE(IXYZ)
C
      GOTO 10
C
 100  CONTINUE
C
      CALL DEALLOC_VAR
      CLOSE(NGPH1)
C
 1    CONTINUE ! IPLANE=1,2 FOR X AND Y
C
      WRITE(*,*)'I-SLICE X=',DX*(ISLICE-1.5)
      WRITE(*,*)'J-SLICE Y=',DY*(JSLICE-1.5)
      STOP
      END
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C  S U B R O U T I N E   O P _ W R
C
C  PURPOSE:
C  --------
C             THIS SUBROUTINE OPENS INPUT FILES AND OUTPUT FILES
C	      AND WRITES HEADERS OF OUTPUT FILES.
C
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      SUBROUTINE OP_WR
C
      USE cpara
      USE cfld
      USE cbola
c
      OPEN( 9 ,FILE='field2dx.plt')
      OPEN(11 ,FILE='field2dy.plt')
c      OPEN(13 ,FILE='field2dz.plt')
      WRITE( 9,'(35HVARIABLES = "Y" "Z" "U" "V" "W" "P")')
      WRITE(11,'(35HVARIABLES = "X" "Z" "U" "V" "W" "P")')
c      WRITE(13,'(35HVARIABLES = "X" "Y" "U" "V" "W" "P")')
      RETURN
      END
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C  S U B R O U T I N E   A L L O C _ V A R
C
C  PURPOSE:
C  --------
C             THIS SUBROUTINE ALLOCATES ALL THE ARRAYS
C
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      SUBROUTINE ALLOC_VAR(IXYZ)
!
      USE cpara
      USE cfld
      USE cbola
!
      IF(IXYZ==1) THEN
      NX = 4                    ! AF-5MAR02
      NY = JMP
      NZ = KMP
      NCUBE = NX*NY*NZ
      ALLOCATE (DUMMY(IMP*KMP))
      ALLOCATE (ZETA(KMP),ZI(KMP),FZZ(KMP))
      ALLOCATE (UFLD(NCUBE),VFLD(NCUBE),WFLD(NCUBE)
     .     ,PRESS(NCUBE))
      ALLOCATE (U(1:4,0:NY,0:NZ)
     .         ,V(1:4,0:NY,0:NZ)
     .         ,W(1:4,0:NY,0:NZ))
      ELSEIF(IXYZ==2) THEN
      NX = IMP
      NY = 4
      NZ = KMP
      NCUBE = NX*NY*NZ
      ALLOCATE (DUMMY(IMP*KMP))
      ALLOCATE (ZETA(KMP),ZI(KMP),FZZ(KMP))
      ALLOCATE (UFLD(NCUBE),VFLD(NCUBE),WFLD(NCUBE)
     .     ,PRESS(NCUBE))
      ALLOCATE (U(0:NX,1:4,0:NZ)
     .         ,V(0:NX,1:4,0:NZ)
     .         ,W(0:NX,1:4,0:NZ))
      ENDIF
      RETURN
      END
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C  S U B R O U T I N E   D E A L L O C _ V A R
C
C  PURPOSE:
C  --------
C             THIS SUBROUTINE ALLOCATES ALL THE ARRAYS
C
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      SUBROUTINE DEALLOC_VAR
!
      USE cpara
      USE cfld
      USE cbola
!
      DEALLOCATE (DUMMY)
      DEALLOCATE (ZETA,ZI,FZZ)
      DEALLOCATE (UFLD,VFLD,WFLD,PRESS)
      DEALLOCATE (U,V,W)
      RETURN
      END
C
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      SUBROUTINE BLUREF
C
C     COMPUTES THE STRETCHED MESH FUNCTION: ZETA(K)
C     REF. FERRANTE & ELGHOBASHI, JCP 2004
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      USE CPARA
      USE CFLD
      USE CBOLA
C
C     COMPUTE REFERENCE VELOCITY PROFILE u+=f_w(z+)
C
      TGLZ =TANH(ATL*LZ)
      QTGLZ=1./TGLZ
      QTLZ =1./(ATL*LZ)
      DO K=1,KM+1
         ZI(K)=(K-1.5)*DZ
         ZETA(K)=LZ*(1.-TANH(ATL*(LZ-ZI(K)))*QTGLZ)
         FZZ(K)=TGLZ*QTLZ*(COSH(ATL*(LZ-ZI(K))))**2
      ENDDO
      RETURN
      END
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C  S U B R O U T I N E   R E A D I N
C
C  PURPOSE:
C  --------
C             THIS SUBROUTINE READS IN VARIOUS VARIABLES
C             FOR THE GRAPHICS PROGRAM TO USE.
C
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      SUBROUTINE READU(IXYZ)
!
      USE cpara
      USE cfld
!
      IK(I,K)   = I + (K-1)*IMP
      IJK(I,J,K)= I-ISLICE+2 + (K-1)*4 + (J-1)*4*KMP
C
      print*,'in readu'
C
      NGPH1=25
      IEOF=0
      IF (IXYZ==1) THEN         ! X PLANE (YZ)
      READ(NGPH1,END=100) T0
      WRITE(*,*) 'T=',T0
      NXZ = IMP*KMP
C
      DO 20 J=1,JMP
      READ(NGPH1,END=100) (DUMMY(NPCNT),NPCNT=1,NXZ)
      DO 21 K=1,KMP
      DO 21 I=ISLICE-1,ISLICE+2
      IJKL=IJK(I,J,K)
      IKL=IK(I,K)
      UFLD(IJKL)=DUMMY(IKL)
 21   CONTINUE
 20   IEOF = IEOF+1
      WRITE(*,*) 'READ U'
c
      DO 30 J=1,JMP
      READ(NGPH1,END=100) (DUMMY(NPCNT),NPCNT=1,NXZ)
      DO 31 K=1,KMP
      DO 31 I=ISLICE-1,ISLICE+2
      IJKL=IJK(I,J,K)
      IKL=IK(I,K)
      VFLD(IJKL)=DUMMY(IKL)
 31   CONTINUE
 30   IEOF = IEOF+1
      WRITE(*,*) 'READ V'
c
      DO 40 J=1,JMP
      READ(NGPH1,END=100) (DUMMY(NPCNT),NPCNT=1,NXZ)
      DO 41 K=1,KMP
      DO 41 I=ISLICE-1,ISLICE+2
      IJKL=IJK(I,J,K)
      IKL=IK(I,K)
      WFLD(IJKL)=DUMMY(IKL)
 41   CONTINUE
 40   IEOF = IEOF+1
      WRITE(*,*) 'READ W'
c
      DO 42 J=1,JMP
      READ(NGPH1,END=100) (DUMMY(NPCNT),NPCNT=1,NXZ)
      DO 43 K=1,KMP
      DO 43 I=ISLICE-1,ISLICE+2
      IJKL=IJK(I,J,K)
      IKL=IK(I,K)
      PRESS(IJKL)=DUMMY(IKL)
 43   CONTINUE
 42   IEOF = IEOF+1
      WRITE(*,*) 'READ P'
c
      ELSEIF(IXYZ==2) THEN      ! Y PLANE (XZ)
C
      READ(NGPH1,END=100) T0
      WRITE(*,*) 'T=',T0
      NXZ = IMP*KMP
C
      DO 50 J=1,JMP
      IF((J==JSLICE-1).OR.(J==JSLICE).OR.(J==JSLICE+1).OR.(J==JSLICE+2))
     .        THEN
      READ(NGPH1,END=100) (UFLD(NPCNT+NXZ*(J-JSLICE+1)) ,NPCNT=1,NXZ)
      ELSE
      READ(NGPH1,END=100) (DUMMY(NPCNT),NPCNT=1,NXZ)
      ENDIF
 50   IEOF = IEOF+1
      WRITE(*,*) 'READ U'
c
      DO 60 J=1,JMP
      IF((J==JSLICE-1).OR.(J==JSLICE).OR.(J==JSLICE+1).OR.(J==JSLICE+2))
     .        THEN
      READ(NGPH1,END=100) (VFLD(NPCNT+NXZ*(J-JSLICE+1)) ,NPCNT=1,NXZ)
      ELSE
      READ(NGPH1,END=100) (DUMMY(NPCNT),NPCNT=1,NXZ)
      ENDIF
 60   IEOF = IEOF+1
      WRITE(*,*) 'READ V'
c
      DO 70 J=1,JMP
      IF((J==JSLICE-1).OR.(J==JSLICE).OR.(J==JSLICE+1).OR.(J==JSLICE+2))
     .        THEN
      READ(NGPH1,END=100) (WFLD(NPCNT+NXZ*(J-JSLICE+1)) ,NPCNT=1,NXZ)
      ELSE
      READ(NGPH1,END=100) (DUMMY(NPCNT),NPCNT=1,NXZ)
      ENDIF
 70   IEOF = IEOF+1
      WRITE(*,*) 'READ W'
C
      DO 75 J=1,JMP
      IF((J==JSLICE-1).OR.(J==JSLICE).OR.(J==JSLICE+1).OR.(J==JSLICE+2))
     .        THEN
      READ(NGPH1,END=100) (PRESS(NPCNT+NXZ*(J-JSLICE+1)) ,NPCNT=1,NXZ)
      ELSE
      READ(NGPH1,END=100) (DUMMY(NPCNT),NPCNT=1,NXZ)
      ENDIF
 75   IEOF = IEOF+1
      WRITE(*,*) 'READ P'
C
      ENDIF !IF(IXYZ==1,2,3)
C
100   CONTINUE
C
      print*,'IEOF=',IEOF
      print*,'out readu'
C
      RETURN
      END
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C  S U B R O U T I N E   C O P Y F I E L D
C
C  PURPOSE:
C  --------
C             THIS SUBROUTINE COPIES THE VELOCITY UFLD TO U,V,W(I,J,K)
C
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      SUBROUTINE COPYFIELD(IXYZ)
C
      USE cpara
      USE cfld
C			***SPACE LOOPS TO COPY THE FIELD***
      IF(IXYZ==1) THEN
C
        DO 100 K = 1,KMP
          DO 100 J = 1,JMP
            DO 100 I = 1,4
              NPCNT = I + 4*KMP*(J-1) + 4*(K-1)
              U(I,J,K) = UFLD(NPCNT)
              V(I,J,K) = VFLD(NPCNT)
              W(I,J,K) = WFLD(NPCNT)
100   CONTINUE
C
      ELSEIF (IXYZ==2) THEN
C			***SPACE LOOPS TO COPY THE FIELD***
        DO 200 K = 1,KMP
          DO 200 J = 1,4
            DO 200 I = 1,IMP
              NPCNT = I + NXZ*(J-1) + IMP*(K-1)
              U(I,J,K) = UFLD(NPCNT)
              V(I,J,K) = VFLD(NPCNT)
              W(I,J,K) = WFLD(NPCNT)
200   CONTINUE
C
      ENDIF
C
      RETURN
      END
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C  S U B R O U T I N E   A V G R P O
C
C  PURPOSE:
C  --------
C             THIS SUBROUTINE AVERAGES THE VELOCITY COMPONENTS
C             IN THE PRESSURE GRID POINTS FROM THE STAGGERED VEL.
C
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      SUBROUTINE AVGRPO(IXYZ)
C
      USE cpara
      USE cfld
c
      IF(IXYZ==1) THEN
C			***AVERAGE VELOCITY COMPONENTS***
      DO 100 K = 2,KMP
          DO 100 J = 2,JMP
            DO 100 I = 2,4
              NPCNT = I + 4*KMP*(J-1) + 4*(K-1)
              UFLD(NPCNT) = .5 * (U(I-1,J,K) + U(I,J,K))
              VFLD(NPCNT) = .5 * (V(I,J-1,K) + V(I,J,K))
              WFLD(NPCNT) = .5 * (W(I,J,K-1) + W(I,J,K))
c
              IF (J.EQ.JM+1) THEN ! PERIODIC BOUNDARY CONDITION IN J
                NP1 = I + 4*(K-1)
	        UFLD(NP1) = UFLD(NPCNT)
                VFLD(NP1) = VFLD(NPCNT)
                WFLD(NP1) = WFLD(NPCNT)
	      ENDIF
	      IF (K.EQ.2) THEN    ! NO SLIP BC AT THE WALL U(1)=0 FOR K=1
                NP1 = I + NXZ*(J-1)
	        UFLD(NP1) = 0.
                VFLD(NP1) = 0.
                WFLD(NP1) = 0.
	      ENDIF
100   CONTINUE
C
      ELSEIF(IXYZ==2) THEN
C			***AVERAGE VELOCITY COMPONENTS***
      DO 200 K = 2,KMP
          DO 200 J = 2,4
            DO 200 I = 2,IMP
              NPCNT = I + NXZ*(J-1) + IMP*(K-1)
              UFLD(NPCNT) = .5 * (U(I-1,J,K) + U(I,J,K))
              VFLD(NPCNT) = .5 * (V(I,J-1,K) + V(I,J,K))
              WFLD(NPCNT) = .5 * (W(I,J,K-1) + W(I,J,K))
	      IF (K.EQ.2) THEN    ! NO SLIP BC AT THE WALL U(1)=0 FOR K=1
                NP1 = I + NXZ*(J-1)
	        UFLD(NP1) = 0.
                VFLD(NP1) = 0.
                WFLD(NP1) = 0.
	      ENDIF
C
200   CONTINUE
C
      ENDIF
      RETURN
      END
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C  S U B R O U T I N E  W R S L I C E
C
C  PURPOSE:
C  --------
C             THIS SUBROUTINE WRITES THE VELOCITY
C	      AND PRESSURE FIELD AT THE GRID POINTS ON X OR Y PLANE.
C             THE VELOCITY FIELD IS AVERAGED AT THE GRID POINTS.
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      SUBROUTINE WRSLICE(IXYZ)
C
      USE cpara
      USE cfld
      USE cbola
C			***WRITING OUTPUT***
      print*,'writing velocity slice...'
C			***TIME LOOP***
      IF(IXYZ==1) THEN
      I=2
C
      WRITE(9,200) T0,JM,KM
C			***SPACE LOOPS***
      DO 90 K = 1,KM          ! AF-28SEP02 AFTER REMOVING THE AVFIELD AND LEAVING AVGRPO
         Z = ZETA(K)
         IF(K==1) Z=0.0
         DO 90 J = 2,JM+1
            Y = DY*(J-1.5)
            NPCNT = I + 4*KMP*(J-1) + 4*(K-1)
            WRITE(9,300) Y,Z
     .           ,UFLD(NPCNT),VFLD(NPCNT),WFLD(NPCNT)
     .           ,PRESS(NPCNT)
 90     CONTINUE
C
      ELSEIF(IXYZ==2) THEN
C
      J=2
      WRITE(11,200) T0,IM,KM
C			***SPACE LOOPS***
        DO 100 K = 1,KM
           Z=ZETA(K)
           IF(K==1) Z=0.0
           DO 100 I = 2,IM+1
              X = DX*(I-1.5)
              NPCNT = I + NXZ*(J-1) + IMP*(K-1)
              WRITE(11,300) X,Z
     .             ,UFLD(NPCNT),VFLD(NPCNT),WFLD(NPCNT)
     .             ,PRESS(NPCNT)
100   CONTINUE
C
      ENDIF
C
 200  FORMAT('ZONE T="T =',G14.5,'"'
     .      ,'  F=POINT, I=',I4,' J=',I4)
 300  FORMAT( 1X,6G14.5)
C
      RETURN
      END
C================================================================================
__________________
OnePlus 12 16/526Gb
Thread sull'utilizzo degli SSD e sui modelli consigliati

Ultima modifica di Pess : 25-06-2011 alle 15:29.
Pess è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2011, 11:06   #2
Pess
Senior Member
 
L'Avatar di Pess
 
Iscritto dal: Aug 2006
Città: Milano (MI)
Messaggi: 7307
Nessuno mi sa aiutare?
__________________
OnePlus 12 16/526Gb
Thread sull'utilizzo degli SSD e sui modelli consigliati
Pess è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2011, 22:55   #3
tiMo
Member
 
Iscritto dal: Jan 2005
Messaggi: 157
Quote:
Originariamente inviato da Pess Guarda i messaggi
Nessuno mi sa aiutare?
L'errore è abbastanza chiaro:

Run-time Error
*** Error 158, Unformatted record is too short for input list

il programma cerca di leggere un record non formattato dal file uvwp3d.ibm.06160 e metterlo nella variabile T0. Il problema è che quello che legge non gli piace (è troppo corto).

Nel migliore dei casi si tratta semplicemente di modificare il file vwp3d.ibm.06160.
Nel peggiore dei casi potrebbe essere il sintomo di un errore più oscuro ma meglio andare per gradi.

Ciao

tiMo
__________________
The plural of anecdote is not data.
~ Roger Brinner
tiMo è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2011, 07:43   #4
Pess
Senior Member
 
L'Avatar di Pess
 
Iscritto dal: Aug 2006
Città: Milano (MI)
Messaggi: 7307
Quote:
Originariamente inviato da tiMo Guarda i messaggi
L'errore è abbastanza chiaro:

Run-time Error
*** Error 158, Unformatted record is too short for input list

il programma cerca di leggere un record non formattato dal file uvwp3d.ibm.06160 e metterlo nella variabile T0. Il problema è che quello che legge non gli piace (è troppo corto).

Nel migliore dei casi si tratta semplicemente di modificare il file vwp3d.ibm.06160.
Nel peggiore dei casi potrebbe essere il sintomo di un errore più oscuro ma meglio andare per gradi.

Ciao

tiMo
Innanzi tutto grazie mille per la risposta e la spiegazione...
Ora il problema è che non posso agire in nessun modo sul file in questione; ho fatto una piccola ricerca sul formato (Unformatted IBM-P4 File) ma non ho trovato nulla di concreto su cui poter agire...
A dirla tutta ho circa una decina di questi file (ognuno pesa poco più di 400 mb) ma il problema si presenta per tutti...
__________________
OnePlus 12 16/526Gb
Thread sull'utilizzo degli SSD e sui modelli consigliati
Pess è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2011, 09:48   #5
tiMo
Member
 
Iscritto dal: Jan 2005
Messaggi: 157
Quote:
Originariamente inviato da Pess Guarda i messaggi
Innanzi tutto grazie mille per la risposta e la spiegazione...
Ora il problema è che non posso agire in nessun modo sul file in questione; ho fatto una piccola ricerca sul formato (Unformatted IBM-P4 File) ma non ho trovato nulla di concreto su cui poter agire...
A dirla tutta ho circa una decina di questi file (ognuno pesa poco più di 400 mb) ma il problema si presenta per tutti...
Potrebbe essere che il formato del file non sia riconosciuto o che i file siano stati corrotti, cosa che può capitare se si passa da un sistema operativo ad un altro.

Ad esempio il vecchio Digital Fortran ha un'opzione per convertire i file IBM

http://www.helsinki.fi/atk/unix/dec_...52/dfum008.htm

quando hai compilato hai usato gli switch indicati?

In ogni caso la cosa migliore è chiedere lumi a chi ha prodotto il codice.

ciao

tiMo
__________________
The plural of anecdote is not data.
~ Roger Brinner
tiMo è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2011, 23:17   #6
Pess
Senior Member
 
L'Avatar di Pess
 
Iscritto dal: Aug 2006
Città: Milano (MI)
Messaggi: 7307
Quote:
Originariamente inviato da tiMo Guarda i messaggi
Potrebbe essere che il formato del file non sia riconosciuto o che i file siano stati corrotti, cosa che può capitare se si passa da un sistema operativo ad un altro.

Ad esempio il vecchio Digital Fortran ha un'opzione per convertire i file IBM

http://www.helsinki.fi/atk/unix/dec_...52/dfum008.htm

quando hai compilato hai usato gli switch indicati?

In ogni caso la cosa migliore è chiedere lumi a chi ha prodotto il codice.

ciao

tiMo
Si, ho usato gli switch ma il codice continua a crashare... Chissà se è specifico per il compilatore usato dai calcolatori di Cineca (XL Fortran 90 della IBM)... Ottenere tale compilatore è cmq impossibile per me...
Proverò a chiedere all'autore del codice, sperando che non mi mandi a quel paese...
Altri software tra i quali Matlab sono in grado di convertire i file binari, ma non so di preciso come è "formattato" tale file (quali serie di bit devo considerare volta per volta)...
__________________
OnePlus 12 16/526Gb
Thread sull'utilizzo degli SSD e sui modelli consigliati
Pess è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2011, 08:41   #7
tiMo
Member
 
Iscritto dal: Jan 2005
Messaggi: 157
due cose a cui non avevo pensato
  1. Gli switch indicati: xlf90_r -qfixed -qrealsize=8 -qsuppress=cmpmsg
    probabilmente non hanno senso se usi un altro compilatore. Se vengono ignorati, questa potrebbe essere la causa del problema. Non conosco il compilatore IBM ma ad esempio potrebbe essere che lo switch -qrealsize=8 dichiari la doppia precisione su tutte le variabili reali.
    Dovresti capire come tradurre gli switch per il compilatore che usi tu.
  2. La variabile T0 non è dichiarata, e questa non è una buona pratica di programmazione.
__________________
The plural of anecdote is not data.
~ Roger Brinner
tiMo è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2011, 08:53   #8
Pess
Senior Member
 
L'Avatar di Pess
 
Iscritto dal: Aug 2006
Città: Milano (MI)
Messaggi: 7307
Quote:
Originariamente inviato da tiMo Guarda i messaggi
due cose a cui non avevo pensato
  1. Gli switch indicati: xlf90_r -qfixed -qrealsize=8 -qsuppress=cmpmsg
    probabilmente non hanno senso se usi un altro compilatore. Se vengono ignorati, questa potrebbe essere la causa del problema. Non conosco il compilatore IBM ma ad esempio potrebbe essere che lo switch -qrealsize=8 dichiari la doppia precisione su tutte le variabili reali.
    Dovresti capire come tradurre gli switch per il compilatore che usi tu.
  2. La variabile T0 non è dichiarata, e questa non è una buona pratica di programmazione.
Ovviamente ho "Convertito" le funzionalità di quegli switch nel mio compilatore, l'unico davvero importante è quello che indica la grandezza dei numeri reali ad 8 bit...
Anche dichiarando la variabile T0 non cambia nulla...
Ho trovato in rete un programmimo Matlab che converte i codici Fortran in matlab.... Funziona abbastanza bene dai commenti che leggo anche se non è perfetto... Cmq dato che con Matlab un pò me la cavo anche se viene tradotto approssimativamente saprei come ritoccarlo...

Grazie mille per i suggerimenti cmq...
__________________
OnePlus 12 16/526Gb
Thread sull'utilizzo degli SSD e sui modelli consigliati
Pess è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2011, 09:11   #9
tiMo
Member
 
Iscritto dal: Jan 2005
Messaggi: 157
Quote:
Originariamente inviato da Pess Guarda i messaggi
Ovviamente ho "Convertito" le funzionalità di quegli switch nel mio compilatore, l'unico davvero importante è quello che indica la grandezza dei numeri reali ad 8 bit...
Anche dichiarando la variabile T0 non cambia nulla...
Ho trovato in rete un programmimo Matlab che converte i codici Fortran in matlab.... Funziona abbastanza bene dai commenti che leggo anche se non è perfetto... Cmq dato che con Matlab un pò me la cavo anche se viene tradotto approssimativamente saprei come ritoccarlo...

Grazie mille per i suggerimenti cmq...
no problem,

prima che provare a tradurre il codice fortran in Matlab proverei a usare Matlab per leggere il file in questione e magari capire se è un problema di lunghezza di record. Ovviamente per fare questo dovresti avere un modo per capire se i file sono letti bene.

ciao
tiMo
__________________
The plural of anecdote is not data.
~ Roger Brinner
tiMo è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2011, 09:21   #10
Pess
Senior Member
 
L'Avatar di Pess
 
Iscritto dal: Aug 2006
Città: Milano (MI)
Messaggi: 7307
Quote:
Originariamente inviato da tiMo Guarda i messaggi
no problem,

prima che provare a tradurre il codice fortran in Matlab proverei a usare Matlab per leggere il file in questione e magari capire se è un problema di lunghezza di record. Ovviamente per fare questo dovresti avere un modo per capire se i file sono letti bene.

ciao
tiMo
Ho già provato a leggerlo con Matlab direttamente come file binario, ma mi mancano alcune informazioni che invece nel programma Fortran ci sono: ad esempio la posizione dei vari valori da andare a pescare (dovrebbero essercene 10 diversi per ogni riga in quanto come risultato devo avere 2 dile distinti)... Non avrei quindi modo di capire se i file sarebbero corretti...
__________________
OnePlus 12 16/526Gb
Thread sull'utilizzo degli SSD e sui modelli consigliati
Pess è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2011, 10:15   #11
tiMo
Member
 
Iscritto dal: Jan 2005
Messaggi: 157
1. hai provato a settare -qrealsize=4 ? Il valore 8 potrebbe avere senso solo su determinate architetture (e.g. Cray).

2. Io provererei a installare una trial version del compilatore IBM, però hai bisogno di linux.

http://www-01.ibm.com/software/awdto...fortran/linux/

ciao

tiMo
__________________
The plural of anecdote is not data.
~ Roger Brinner
tiMo è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2011, 10:36   #12
Pess
Senior Member
 
L'Avatar di Pess
 
Iscritto dal: Aug 2006
Città: Milano (MI)
Messaggi: 7307
Quote:
Originariamente inviato da tiMo Guarda i messaggi
1. hai provato a settare -qrealsize=4 ? Il valore 8 potrebbe avere senso solo su determinate architetture (e.g. Cray).

2. Io provererei a installare una trial version del compilatore IBM, però hai bisogno di linux.

http://www-01.ibm.com/software/awdto...fortran/linux/

ciao

tiMo
Ho provato anche quello... Senza mettere 8 il programma non parte nemmeno...
Purtroppo non ho a disposizione una macchina con linux ora... Ieri un mio amico che ha linux ha provato con iFort della intel ma senza ottenere nulla purtroppo...
__________________
OnePlus 12 16/526Gb
Thread sull'utilizzo degli SSD e sui modelli consigliati
Pess è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
SpaceX Starship: dopo il successo di Fli...
Gli incendi in Spagna minacciano la staz...
Intel punta sul vetro: partnership con L...
L'acquisizione di ATI compie 20 anni: AM...
iPhone 18 Pro, Apple le prova tutte per ...
NVIDIA, Samsung, SK hynix e Broadcom: a ...
Sony rompe il silenzio: God of War Laufe...
iPhone Ultra, lancio ritardato per il pi...
Microsoft rafforza l'attivazione di Wind...
Galaxy S27 e S27+: Samsung starebbe test...
macOS più sicuro di Windows? Il n...
L'UE punta il dito contro TikTok: ecco c...
Qualcomm aumenterà i prezzi dei c...
TOP 12 Amazon weekend: al top una stampa...
Come sfruttare le offerte di Amazon per ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v