[Tech] Segmentation fault
Christian
argonauta74@gmail.com
Gio 26 Mar 2009 12:15:55 CET
La parte di codice...
C CALCOLO DELLA PRODUZIONE TOTALE
C
PT1=0.
PT2=0.
C
IF ((BATHY.GT.ZE).AND.(BATHY.GE.ZETUDE)) GOTO 500
IF ((BATHY.GT.ZE).AND.(BATHY.LE.ZETUDE)) GOTO 501
IF ((BATHY.LT.ZE).AND.(BATHY.LT.ZETUDE)) GOTO 502
C
C CASO 1 = BATIMETRIA MAGGIORE DI ZE E ZETUDE
500 CONTINUE
DO 480 IZ=1,NIZ1
Z=DZ*(IZ-1)
X=PZ(IZ)
IF(IZ.EQ.1.OR.IZ.EQ.NIZ1)X=0.5*X
IF(Z.LE.ZE) THEN
PT1=PT1+X
ELSE
PT2=PT2+X
ENDIF
480 CONTINUE
PT1=PT1*DZ
PT2=PT2*DZ
PT=PT1+PT2
OPEN(810,FILE='PRODVALUE',STATUS='OLD')
WRITE(810,'(F6.4)')PT
CLOSE(810)
C
C CASO 2 = BATIMETRIA MAGGIORE DI ZE MA MINORE DI ZETUDE
501 CONTINUE
ZETUDE=BATHY
DZ=ZETUDE/NIZ
DO 481 IZ=1,NIZ1
Z=DZ*(IZ-1)
X=PZ(IZ)
IF(IZ.EQ.1.OR.IZ.EQ.NIZ1)X=0.5*X
IF(Z.LE.ZE) THEN
PT1=PT1+X
ELSE
PT2=PT2+X
ENDIF
481 CONTINUE
PT1=PT1*DZ
PT2=PT2*D
PT=PT1+PT2
OPEN(810,FILE='PRODVALUE',STATUS='OLD')
WRITE(810,'(F6.4)')PT
CLOSE(810)
C
C CASO 3 = BATIMETRIA MINORE DI ZE QUINDI MINORE DI ZETUDE
502 CONTINUE
ZE=BATHY
DZ=BATHY/NIZ
DO 482 IZ=1,NIZ1
Z=DZ*(IZ-1)
X=PZ(IZ)
IF(IZ.EQ.1.OR.IZ.EQ.NIZ1)X=0.5*X
IF(Z.LE.ZE) THEN
PT1=PT1+X
ELSE
PT2=PT2+X
ENDIF
482 CONTINUE
PT1=PT1*DZ
PT2=PT2*DZ
PT=PT1+PT2
OPEN(810,FILE='PRODVALUE',STATUS='OLD')
WRITE(810,'(F6.4)')PT
CLOSE(810)
Ho notato che il file PRODVALUE all'interno del quale devono andare a
finire i valori di PT rimane sempre vuoto, non viene scritto.
Grazie.
--
Christian
Instant messaging (Gtalk/jabber-Skype): argonauta74@gmail.com
"..chiunque abbia osservato almeno una volta con i propri occhi la
bellezza della natura non è destinato alla morte, ma alla natura
stessa."
Konrad Lorenz
Maggiori informazioni sulla lista
flug-tech