5 &(
cgl , what , at , nfic , found )
44 & choix_rfc,il1_rfc,il2_rfc,
45 & tl1_rfc,tl2_rfc,nvalue_rfc,
46 & lastwhat_rfc,lastat_rfc,nlig_rfc,
53 CHARACTER(LEN=8) ,
INTENT(IN) :: WHAT
54 DOUBLE PRECISION,
INTENT(IN) :: AT
55 DOUBLE PRECISION,
INTENT(INOUT) :: CGL
56 INTEGER ,
INTENT(IN) :: NFIC
57 LOGICAL ,
INTENT(OUT) :: FOUND
63 INTEGER,
PARAMETER :: SIZELIGN = 3000
65 INTEGER IVALUE,ILIG,OK,J,IWHAT,IDEB,IFIN
67 DOUBLE PRECISION,
PARAMETER :: TOL = 1.d-3
69 CHARACTER(LEN=SIZELIGN) :: LIGNE
83 1
READ(nfic,fmt=
'(A)',err=10) ligne
86 WRITE(
lu,*)
'READ ERROR IN THE' 87 WRITE(
lu,*)
'LIQUID BOUNDARIES FILE FOR CONC' 88 WRITE(
lu,*)
'PROBABLY A PROBLEM OF FORMAT' 89 WRITE(
lu,*)
'ANY WINDOWS CARRIAGE RETURNS ON UNIX OR LINUX' 90 WRITE(
lu,*)
'GUILTY LINE:' 95 IF(ligne(1:1).EQ.
'#')
GO TO 1
104 50
IF(ligne(ideb:ideb).EQ.
' '.AND.ideb.LT.sizelign)
THEN 110 60
IF(ligne(ifin:ifin).NE.
' '.AND.ifin.LT.sizelign)
THEN 115 IF(ideb.EQ.ifin)
GO TO 4
117 nvalue_rfc = nvalue_rfc + 1
118 IF(nvalue_rfc.EQ.0)
THEN 119 IF(ligne(ideb:ifin-1).NE.
'T')
THEN 120 WRITE(
lu,*)
'FIRST VALUE MUST BE TIME_RFC, DENOTED T' 121 WRITE(
lu,*)
'IN FILE OF LIQUID BOUNDARIES' 125 ELSEIF(nvalue_rfc.LE.maxval_rfc)
THEN 126 choix_rfc(nvalue_rfc)=
' ' 127 choix_rfc(nvalue_rfc)(1:ifin-ideb+1)=ligne(ideb:ifin-1)
129 WRITE(
lu,*)
'INCREASE MAXVAL_RFC IN DECLARATIONS_SISYPHE' 133 IF(ifin.LT.sizelign)
GO TO 40
136 4
READ(nfic,fmt=
'(A)',err=10) ligne
137 IF(ligne(1:1).EQ.
'#')
GO TO 4
141 998
READ(nfic,*,end=1000,err=999) ligne
142 IF(ligne(1:1).NE.
'#') nlig_rfc=nlig_rfc+1
145 WRITE(
lu,*)
'READING ERROR ON THE LIQUID BOUNDARIES FILE' 146 WRITE(
lu,*)
'AT LINE OF DATA : ',nlig_rfc
147 WRITE(
lu,*)
'(COMMENTS EXCLUDED)' 154 ALLOCATE(
time_rfc(nlig_rfc),stat=ok)
155 IF(ok.NE.0)
WRITE(
lu,*)
'MEMORY ALLOCATION ERROR FOR TIME_RFC' 156 ALLOCATE(
infic_rfc(nvalue_rfc,nlig_rfc),stat=ok)
157 IF(ok.NE.0)
WRITE(
lu,*)
'MEMORY ALLOCATION ERROR FOR INFIC_RFC' 163 2
READ(nfic,fmt=
'(A)') ligne
164 IF(ligne(1:1).EQ.
'#')
GO TO 2
165 READ(nfic,fmt=
'(A)') ligne
168 3
READ(nfic,fmt=
'(A)') ligne
169 IF(ligne(1:1).EQ.
'#')
THEN 174 & (
infic_rfc(ivalue,ilig),ivalue=1,nvalue_rfc)
186 WRITE(
lu,*)
'THE LIQUID BOUNDARIES FILE CONTAINS' 187 WRITE(
lu,*) nlig_rfc,
' LINES WITH:' 188 WRITE(
lu,*) (choix_rfc(ivalue),ivalue=1,nvalue_rfc)
206 IF(what.EQ.choix_rfc(j)) iwhat=j
215 70
IF(at.GE.tl1_rfc-tol.AND.at.LE.tl2_rfc+tol)
THEN 216 teta = (at-tl1_rfc)/(tl2_rfc-tl1_rfc)
229 IF(il2_rfc.GT.nlig_rfc)
THEN 230 WRITE(
lu,*)
'T=',at,
' OUT OF RANGE' 231 WRITE(
lu,*)
'OF THE FILE OF LIQUID BOUNDARIES' 241 cgl = (1.d0-teta)*
infic_rfc(iwhat,il1_rfc)
subroutine read_fic_conc(CGL, WHAT, AT, NFIC, FOUND)
double precision, dimension(:), allocatable time_rfc
double precision, dimension(:,:), allocatable infic_rfc
double precision function cgl(I, AT)