5 &(code,files,nfiles,path,ncar,icode,fullname)
72 INTEGER ,
INTENT(IN) :: NFILES
73 CHARACTER(LEN=24) ,
INTENT(IN) :: CODE
74 TYPE(bief_file) ,
INTENT(INOUT) :: FILES(nfiles)
75 CHARACTER(LEN=PATH_LEN),
INTENT(IN) :: PATH
76 INTEGER ,
INTENT(IN) :: NCAR,ICODE
77 LOGICAL ,
INTENT(IN) :: FULLNAME
81 INTEGER I, II, ICLI, IERR
82 LOGICAL :: IS_CONCATENATE, RDONLY_PARAL
84 CHARACTER(LEN=11) :: FORME,EXTENS
85 CHARACTER(LEN=300) :: FILE_NAME
86 CHARACTER(LEN=300) :: CLI_NAME
93 WRITE(
lu,*)
'OPENING FILES FOR ',code
100 is_concatenate=.false.
102 IF(files(i)%NAME(1:1).NE.
' ')
THEN 104 WRITE(
lu,*)
'OPENING: ', trim(files(i)%TELNAME),
'-',
105 & trim(files(i)%NAME)
107 CALL get_free_id(files(i)%LU)
109 IF(files(i)%BINASC.EQ.
'ASC')
THEN 118 file_name = files(i)%NAME
120 file_name = path(1:ncar)//trim(files(i)%TELNAME)
124 IF(files(i)%TYPE.EQ.
'CONLIM') cycle
126 IF((files(i)%FMT(1:7).EQ.
'SERAFIN')
127 & .OR.(files(i)%FMT.EQ.
'MED '))
THEN 130 IF(files(i)%ACTION.EQ.
'READ ')
THEN 135 IF(files(i)%TYPE(1:5).EQ.
'PARAL')
THEN 136 rdonly_paral = .true.
137 is_concatenate = .false.
140 IF(files(ii)%NAME(1:1).NE.
' ')
THEN 141 IF(files(ii)%TYPE(1:6).EQ.
'CONLIM')
THEN 148 WRITE(
lu,*)
'NO BOUNDARY CONDITIONS FILE' 154 file_name = path(1:ncar)//trim(files(i)%NAME)
156 cli_name = path(1:ncar)//trim(files(icli)%NAME)
159 file_name = path(1:ncar)//trim(files(i)%TELNAME)
161 cli_name = path(1:ncar)//trim(files(icli)%TELNAME)
165 IF((ncsize>1).AND.(files(i)%TYPE(1:4)/=
'SCAL'))
THEN 166 IF(is_concatenate)
THEN 167 file_name=trim(file_name)//
'-CONCAT' 168 cli_name=trim(cli_name)//
'-CONCAT' 169 ELSE IF(.NOT. rdonly_paral)
THEN 170 file_name=trim(file_name)//extens(ncsize-1,ipid)
171 cli_name=trim(cli_name)//extens(ncsize-1,ipid)
172 ELSE IF(rdonly_paral)
THEN 173 file_name=trim(file_name)
174 cli_name=trim(cli_name)
178 IF(files(i)%TYPE(1:4).EQ.
'SCAL')
THEN 181 IF(ipid.EQ.0.OR.files(i)%ACTION(1:4).EQ.
'READ')
THEN 182 CALL open_mesh(files(i)%FMT, trim(file_name),
183 & files(i)%LU, files(i)%ACTION, ierr)
184 CALL check_call(ierr,
'BIEF_OPEN_FILES:OPEN_MESH')
186 CALL open_bnd(files(i)%FMT, trim(cli_name),
187 & files(i)%LU, files(icli)%ACTION, ierr)
188 CALL check_call(ierr,
'BIEF_OPEN_FILES:OPEN_BND')
192 IF(is_concatenate)
THEN 193 CALL open_mesh(files(i)%FMT,trim(file_name),files(i)%LU,
194 & files(i)%ACTION, ierr, ipid+1)
196 CALL open_mesh(files(i)%FMT,trim(file_name),files(i)%LU,
197 & files(i)%ACTION, ierr)
199 CALL check_call(ierr,
'BIEF_OPEN_FILES:OPEN_MESH')
201 IF(is_concatenate)
THEN 202 CALL open_bnd(files(i)%FMT, trim(cli_name),
203 & files(i)%LU, files(icli)%ACTION, ierr,
206 CALL open_bnd(files(i)%FMT, trim(cli_name),
207 & files(i)%LU, files(icli)%ACTION, ierr)
209 CALL check_call(ierr,
'BIEF_OPEN_FILES:OPEN_BND')
213 WRITE(
lu,*)
'ERROR WHILE OPENING: ', trim(file_name)
214 WRITE(
lu,*)
'AND: ', trim(cli_name)
215 WRITE(
lu,*)
'IN ',files(i)%FMT,
' FORMAT ' 216 WRITE(
lu,*)
'IN ',files(i)%ACTION,
' MODE' 217 WRITE(
lu,*)
'ERROR ',ierr
226 OPEN(files(i)%LU,file=file_name,
227 & form=forme,action=files(i)%ACTION)
232 IF(files(i)%TYPE(1:4).EQ.
'SCAL')
THEN 233 IF(ipid.EQ.0.OR.files(i)%ACTION(1:5).NE.
'WRITE')
THEN 236 & form=forme,action=files(i)%ACTION)
239 ELSE IF(files(i)%TYPE(1:5).EQ.
'PARAL' .AND.
240 & files(i)%ACTION .EQ.
'READ ')
THEN 242 & file=trim(file_name),
243 & form=forme,action=files(i)%ACTION)
246 & file=trim(file_name)
247 & //extens(ncsize-1,ipid),
248 & form=forme,action=files(i)%ACTION)
character(len=24), dimension(6) nnamecode
character(len=24) namecode
subroutine open_mesh(FFORMAT, FILE_NAME, FILE_ID, OPENMODE, IERR, MESH_NUMBER)
subroutine bief_open_files(CODE, FILES, NFILES, PATH, NCAR, ICODE, FULLNAME)
subroutine open_bnd(FFORMAT, FILE_NAME, FILE_ID, OPENMODE, IERR, MESH_NUMBER)