48 USE modi_open_trip_namelist
49 USE modi_close_trip_namelist
59 INTEGER,
INTENT(IN) :: KLISTING
60 REAL,
INTENT(IN),
OPTIONAL :: PRUNTIME
66 INTEGER,
PARAMETER :: KIN = 1
67 INTEGER,
PARAMETER :: KOUT = 0
68 CHARACTER(LEN=5),
PARAMETER :: YLAND =
'land' 69 CHARACTER(LEN=5),
PARAMETER :: YSEA =
'ocean' 77 CHARACTER(LEN=20) :: YKEY
78 CHARACTER(LEN=50) :: YCOMMENT
80 REAL(KIND=JPRB) :: ZHOOK_HANDLE
83 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_READ_NAM',0,zhook_handle)
98 CALL trip_posnam(inam,
'NAM_TRIP_LAND_CPL',gfound,klisting)
101 READ(unit=inam,nml=nam_trip_land_cpl)
103 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 104 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 105 WRITE(klisting,*)
'NAM_TRIP_LAND_CPL not found : TRIP not coupled with land surface' 106 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 107 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 110 CALL trip_posnam(inam,
'NAM_TRIP_SEA_CPL',gfound,klisting)
113 READ(unit=inam,nml=nam_trip_sea_cpl)
115 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 116 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 117 WRITE(klisting,*)
'NAM_TRIP_SEA_CPL not found : TRIP not coupled with oceanic model' 118 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 119 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 128 CALL abort_trip(
'TRIP_OASIS_READ_NAM: OASIS USED BUT NAMELIST NOT FOUND')
140 IF(
PRESENT(pruntime))
THEN 143 WRITE(klisting,*)
'! XTSTEP_RUN is superiror to XTSTEP_CPL_LAND !' 144 WRITE(klisting,*)
'! Applied solution : XTSTEP_RUN = XTSTEP_CPL_LAND !' 146 WRITE(klisting,*)
'! XTSTEP_RUN and XTSTEP_CPL_LAND are not good !!!' 148 CALL abort_trip(
'TRIP_OASIS_READ_NAM: XTSTEP_RUN and XTSTEP_CPL_LAND are not good !!!')
155 ycomment=
'Surface runoff' 159 ycomment=
'Deep drainage' 169 ycomment=
'Calving flux from land glacier' 176 IF(len_trim(
cwtd)>0.OR.len_trim(
cfwtd)>0)
THEN 185 ycomment=
'Water table depth' 189 ycomment=
'Fraction of WTD to rise' 193 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 194 WRITE(klisting,*)
'!!! Groundwater/surface coupling is asked !!!' 195 WRITE(klisting,*)
'!!! But CGROUNDW /= DIF in NAM_TRIP !!!' 196 WRITE(klisting,*)
'!!! Please check your TRIP_OPTIONS.nam !!!' 197 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 198 CALL abort_trip(
'TRIP_OASIS_READ_NAM: Groundwater/surface coupling but not groundwater scheme')
214 ycomment=
'flood freshwater flux' 220 ycomment=
'Flood fraction' 224 ycomment=
'Flood potential infiltration' 228 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 229 WRITE(klisting,*)
'!!! Floodplains coupling with LSM is asked !!!' 230 WRITE(klisting,*)
'!!! But LFLOOD = FALSE in NAM_TRIP !!!' 231 WRITE(klisting,*)
'!!! Please check your TRIP_OPTIONS.nam !!!' 232 WRITE(klisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 233 CALL abort_trip(
'TRIP_OASIS_READ_NAM: Floodplains coupling but not Floodplains scheme')
240 IF(
PRESENT(pruntime))
THEN 242 WRITE(klisting,*)
'! MOD(PRUNTIME,XTSTEP_RUN)/=0 !!!' 243 WRITE(klisting,*)
'! XTSTEP_RUN must be a multiple of $RUNTIME in oasis namcouple !!!' 244 WRITE(klisting,*)
'XTSTEP_RUN =',
xtstep_run,
'$RUNTIME =',pruntime
245 CALL abort_trip(
'TRIP_OASIS_READ_NAM: XTSTEP_RUN must be a multiple of $RUNTIME in oasis namcouple !!!')
254 WRITE(klisting,*)
'! XTSTEP_CPL_LAND and XTSTEP_CPL_SEA are not good !!!' 257 WRITE(klisting,*)
'! XTSTEP_CPL_LAND is superiror to XTSTEP_CPL_SEA !' 258 CALL abort_trip(
'TRIP_OASIS_READ_NAM: XTSTEP_CPL_LAND and XTSTEP_CPL_SEA are not good !!!')
261 IF(
PRESENT(pruntime))
THEN 263 WRITE(klisting,*)
'! XTSTEP_RUN and XTSTEP_CPL_SEA are not good !!!' 266 WRITE(klisting,*)
'! XTSTEP_RUN is superiror to XTSTEP_CPL_SEA !' 267 CALL abort_trip(
'TRIP_OASIS_READ_NAM: XTSTEP_RUN and XTSTEP_CPL_SEA are not good !!!')
274 ycomment=
'River discharge' 288 ycomment=
'Calving flux over greenland' 292 ycomment=
'Calving flux over antarctica' 299 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_READ_NAM',1,zhook_handle)
309 CHARACTER(LEN=*),
INTENT(IN) :: HFIELD
310 CHARACTER(LEN=*),
INTENT(IN) :: HKEY
311 CHARACTER(LEN=*),
INTENT(IN) :: HCOMMENT
312 CHARACTER(LEN=*),
INTENT(IN) :: HTYP
313 INTEGER,
INTENT(IN) :: KID
315 CHARACTER(LEN=20) :: YWORK
316 CHARACTER(LEN=20) :: YNAMELIST
317 CHARACTER(LEN=128) :: YCOMMENT1
318 CHARACTER(LEN=128) :: YCOMMENT2
320 REAL(KIND=JPRB) :: ZHOOK_HANDLE
322 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_READ_NAM:CHECK_TRIP_FIELD',0,zhook_handle)
324 IF(len_trim(hfield)==0)
THEN 327 ywork=
trim(htyp)//
' - TRIP' 329 ywork=
'TRIP - '//
trim(htyp)
334 ynamelist=
'NAM_TRIP_LAND_CPL' 336 ynamelist=
'NAM_TRIP_SEA_CPL' 338 CALL abort_trip(
'TRIP_OASIS_READ_NAM: TYPE NOT SUPPORTED OR IMPLEMENTD : '//
trim(htyp))
341 ycomment1=
'TRIP_OASIS_READ_NAM: '//
trim(hcomment)//
' is required by '//
trim(ywork)//
' coupling' 342 ycomment2=
'TRIP_OASIS_READ_NAM: Namelist key '//
trim(hkey)//
' is not in '//
trim(ynamelist)
344 WRITE(klisting,*)
trim(ycomment1)
345 WRITE(klisting,*)
trim(ycomment2)
350 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_READ_NAM:CHECK_TRIP_FIELD',1,zhook_handle)
static const char * trim(const char *name, int *n)
subroutine check_trip_field(HFIELD, HKEY, HCOMMENT, HTYP, KID)
subroutine trip_oasis_read_nam(KLISTING, PRUNTIME)
character(len=8) ccalvant
character(len=3) cgroundw
character(len=8) cpiflood
subroutine close_trip_namelist(KLUNAM)
character(len=8) ccalvgre
character(len=8) ccalving
subroutine open_trip_namelist(KLUNAM)
subroutine abort_trip(YTEXT)
character(len=8) csrcflood
subroutine trip_posnam(KULNAM, HDNAML, OFOUND, KLISTING)