61 LOGICAL,
INTENT(OUT) :: OOASIS
62 LOGICAL,
INTENT(OUT) :: OXIOS
63 INTEGER,
INTENT(OUT) :: KLOCAL_COMM
64 REAL ,
INTENT(OUT),
OPTIONAL :: PRUNTIME
65 LOGICAL,
INTENT(IN),
OPTIONAL :: LPREP
70 CHARACTER(LEN=9) :: YWORD, YTIMERUN
71 CHARACTER(LEN=1000):: YLINE, YFOUND
95 IF(
PRESENT(lprep)) gprep = lprep
100 IF(
PRESENT(pruntime)) pruntime = 0.0
107 OPEN(unit=11,file=
cnamelist,action=
'READ',form=
"FORMATTED",position=
"REWIND",status=
'OLD',iostat=ierr)
110 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 111 WRITE(*,
'(2A)')
'TRIP_OASIS_INIT: TRIP NAMELIST NOT FOUND: ',
trim(
cnamelist)
112 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 117 READ (unit=11,nml=nam_oasis,iostat=ierr)
121 IF(gprep) lxios = .false.
133 WRITE(*,
'(A)')
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 135 WRITE(*,
'(A)')
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 137 WRITE(*,
'(A)')
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 138 WRITE(*,
'(A)')
'TRIP_OASIS_INIT: When OASIS used, TRIP must be compiled with -DCPLOASIS cpp key' 139 WRITE(*,
'(A)')
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 147 WRITE(*,
'(A)')
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 149 WRITE(*,
'(A)')
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 151 WRITE(*,
'(A)')
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 152 WRITE(*,
'(A)')
'TRIP_OASIS_INIT: When XIOS used, TRIP must be compiled with -DWXIOS cpp key' 153 WRITE(*,
'(A)')
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 161 CALL xios_initialize(
cmodel_name,return_comm=klocal_comm)
165 IF ( .NOT. loasis)
THEN 181 IF (ierr/=oasis_ok)
THEN 182 WRITE(*,
'(A)' )
'TRIP : Error initializing OASIS' 183 WRITE(*,
'(A,I4)')
'TRIP : Return code from oasis_init_comp : ',ierr
184 CALL oasis_abort(icomp_id,
cmodel_name,
'TRIP_OASIS_INIT: Error initializing OASIS')
194 CALL oasis_get_localcomm(klocal_comm,ierr)
196 IF (ierr/=oasis_ok)
THEN 197 WRITE(*,
'(A)' )
'TRIP : Error getting local communicator from OASIS' 198 WRITE(*,
'(A,I4)')
'TRIP : Return code from oasis_get_local_comm : ',ierr
199 CALL oasis_abort(icomp_id,
cmodel_name,
'TRIP_OASIS_INIT: Error getting local communicator')
215 IF(.NOT.
PRESENT(pruntime))
THEN 219 OPEN (unit=11,file =
'namcouple',status=
'OLD',form =
'FORMATTED',position=
"REWIND",iostat=ierr)
221 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 222 WRITE(*,
'(A)' )
'TRIP : OASIS namcouple not found' 223 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 231 DO WHILE (itimerun==-1)
232 READ (unit = 11,fmt =
'(A9)',iostat=ierr) yword
234 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 235 WRITE(*,
'(A)' )
'TRIP : Problem $RUNTIME empty in namcouple' 236 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 240 IF (yword==ytimerun)
THEN 241 READ (unit = 11,fmt =
'(A1000)',iostat=ierr) yline
243 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 244 WRITE(*,
'(A)' )
'TRIP : Problem looking for $RUNTIME in namcouple' 245 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 251 READ (yfound,fmt =
'(I100)',iostat=ierr) itimerun
253 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 254 WRITE(*,
'(A)' )
'TRIP : Problem reading $RUNTIME in namcouple' 255 WRITE(*,
'(2A)' )
'$RUNTIME = ',
trim(yfound)
256 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 265 pruntime =
REAL(itimerun)
267 WRITE(*,
'(A)' )
'-----------------------------' 279 INTEGER ,
INTENT (IN ) :: KLEN
280 CHARACTER (LEN=*),
INTENT (INOUT) :: HIN
281 CHARACTER (LEN=*),
INTENT (INOUT) :: HOUT
282 LOGICAL,
INTENT (OUT ) :: OFOUND
286 CHARACTER(LEN=1),
PARAMETER :: YBLANK =
' ' 287 CHARACTER(LEN=1),
PARAMETER :: YNADA =
'#' 289 CHARACTER(LEN=KLEN) :: YLINE
290 CHARACTER(LEN=KLEN) :: YWORK
299 DO WHILE (hin(1:1)==ynada)
300 READ (unit = 11, fmt =
'(A9)',iostat=ierr) yline
302 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 303 WRITE(*,
'(A)' )
'TRIP : Problem looking for $RUNTINE line in namcouple' 304 WRITE(*,
'(A)' )
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 308 hin(1:klen) = yline(1:klen)
319 IF(len_trim(ywork)<=0)
THEN 326 ilen =
index(ywork,yblank) - 1
330 hout(1:ilen) = ywork(1:ilen)
static const char * trim(const char *name, int *n)
subroutine trip_oasis_init(OOASIS, OXIOS, KLOCAL_COMM, PRUNTIME, LPREP)
character(len=6) cmodel_name
subroutine trip_found_timerun(HIN, HOUT, KLEN, OFOUND)
character(len=28), parameter cnamelist