1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
C lecture de la ligne de commande NL de FICOM
OPEN (UNIT=10,FILE=FICOM, iostat = ios)
print *, '2'
print *,ios
print *, 'XXX'
10 NI = 0
REWIND(10)
DO 20, I=1,NL
20 READ (10,*)
READ (10,1001,END=80) ES,VAR,TYPE,FI
NL = NL+1
C exclue certaines lignes: on incremente le nombre de lignes
C si la commande est suivie d'une liste d'identificateurs
IF((ES.NE.'I').OR.(TYPE.EQ.'POL').OR.(VAR.EQ.'CPC'))THEN
READ (10,*,ERR=10,END=80) IBIDON
NL = NL+1
GOTO 10
END IF
print *,'TESTPRRINT1' //ce print est correctement affiché
C cas ou VAR donne des entrees ('POT' ou 'FLU') a partir d'un fichier
C recherche du nombre de points cites sur la ligne et lecture
30 NI = NI+1
READ (10,*,ERR=50,IOSTAT=IEOF,END=50) (IDT(I),I=INUM+1,INUM+NI)
REWIND(10)
DO 40, I=1,NL
40 READ (10,*)
GOTO 30
50 NI=NI-1
IF (NI .NE. 0) GOTO 70
C cas ou la liste est vide , pas encore developpe
C recalculer NI,remplir IDT()
60 CONTINUE
print *,'TESTPRRINT2' // ce print par contre non, le programme plante avant
C ouvre le fichier d'indice NF
C et lit eventuellement des parametres sur la 1ere ligne
70 NF = NF + 1
OPEN (UNIT=100+NF,FILE=FI)
TYPEIN(NF) = TYPE
IF (TYPE .EQ. 'STP') THEN
READ(100+NF,*) (PARAIN(NF,I),I=3,4)
END IF
print *,'TESTPRRINT3'
C calcul des indices de position des points pour les causalites
IF (VAR.EQ.'FLU') THEN
DO 73, I=1,NI
73 IFLU(NPFLU+I)=INUM+I
NPFLU=NPFLU +NI
ELSE IF (VAR.EQ.'POT') THEN
DO 75, I=1,NI
75 IPOT(NPPOT+I)=INUM+I
NPPOT=NPPOT +NI
END IF
print *,'TESTPRRINT4'
INUM = INUM + NI
LASTIN(NF) = INUM
C ligne suivante ou fin de lecture
IF (IEOF .EQ. -1) GOTO 80
IF (NI .NE. 0) NL = NL+1
GOTO 10
80 CONTINUE
print *, 'TESTTEST' // je laisse le reste mais je ne pense pas que ce code interfere ou est une incidence avec le probleme, mais sait on jamais |
Partager