3 KYEAR,KMONTH,KDAY,PTIME,KLON,KLAT,&
4 PTSTEP_RUN,PTSTEP_DIAG,ORESTART,OXIOS)
62 USE modi_init_trip_diag
63 USE modi_init_restart_trip
64 USE modi_get_lonlat_trip
65 USE modi_init_trip_cpl_esm
66 USE modi_alloc_trip_diag
79 TYPE(
trip_t),
INTENT(INOUT) :: TP
82 INTEGER,
INTENT(OUT) :: KYEAR
83 INTEGER,
INTENT(OUT) :: KMONTH
84 INTEGER,
INTENT(OUT) :: KDAY
85 REAL,
INTENT(OUT) :: PTIME
87 INTEGER,
INTENT(OUT) :: KLON
88 INTEGER,
INTENT(OUT) :: KLAT
90 REAL,
INTENT(IN) :: PTSTEP_RUN
91 REAL,
INTENT(IN) :: PTSTEP_DIAG
93 LOGICAL,
INTENT(IN) :: ORESTART
94 LOGICAL,
INTENT(IN) :: OXIOS
100 CHARACTER(LEN=13),
PARAMETER :: YFILE_PARAM =
'TRIP_PARAM.nc' 101 CHARACTER(LEN=12),
PARAMETER :: YFILE_INIT =
'TRIP_PREP.nc' 102 CHARACTER(LEN=15),
PARAMETER :: YFILE_RESTART=
'TRIP_RESTART.nc' 103 CHARACTER(LEN=19),
PARAMETER :: YDIAG =
'TRIP_DIAG.nc' 104 CHARACTER(LEN=18),
PARAMETER :: YRUN =
'TRIP_DIAG_RUN.nc' 106 CHARACTER(LEN=6) :: YTIME
107 CHARACTER(LEN=50) :: YFILE
108 CHARACTER(LEN=20) :: YVAR
110 REAL,
DIMENSION(4) :: ZDATE
112 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: ZREAD3D
114 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZREAD
115 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZHSTREAM
116 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZVEL
117 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZWORK
118 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZGW_STO
119 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZWTD
121 REAL,
DIMENSION(:),
ALLOCATABLE :: ZLON
122 REAL,
DIMENSION(:),
ALLOCATABLE :: ZLAT
130 INTEGER :: IWORK, IFLOOD, INI, JLON, JLAT
132 REAL(KIND=JPRB) :: ZHOOK_HANDLE
138 CHARACTER(LEN=50) :: YTITLE, YUNITTIME
151 WRITE(
nlisting,*)
'! TRIP RUN !!!!!!!!!!!!!' 155 WRITE(
nlisting,*)
' INITIALYSE TRIP ' 165 kyear = int(zdate(1))
166 kmonth = int(zdate(2))
174 CALL get_trip_grid(tpg%XTRIP_GRID,zlonmin,zlonmax,zlatmin,zlatmax,zgrid_res,klon,klat)
188 IF(
cvit ==
'VAR')
THEN 191 WRITE(
nlisting,*)
'!!! ATTENTION : You use the velocity scheme and XCVEL is not 0.5 m/s !!!' 192 WRITE(
nlisting,*)
'!!! ATTENTION : XCVEL put at 0.5 m/s !!!' 196 WRITE(
nlisting,*)
'!!! ATTENTION : XCVEL < 0.1 m/s !!! Not good !!!' 197 CALL abort_trip(
'INIT_TRIP: ATTENTION : XCVEL < 0.1 m/s !!! Not good !!!')
202 IF(
cvit /=
'VAR')
THEN 203 WRITE(
nlisting,*)
'! You cannot use the groundwater scheme without the variable velocity scheme !!!' 204 CALL abort_trip(
'INIT_TRIP: You cannot use the groundwater scheme without the variable velocity scheme !!!')
206 IF(zgrid_res>0.5)
THEN 207 WRITE(
nlisting,*)
'! You cannot use the groundwater scheme with another resolution than 0.5 or 1/12 !!!' 208 CALL abort_trip(
'INIT_TRIP: You cannot use the groundwater scheme with another resolution than 0.5 or 1/12 !!!')
214 WRITE(
nlisting,*)
'! ATTENTION : You use the flooding scheme without groundwater scheme !!!' 216 IF(
cvit /=
'VAR')
THEN 217 WRITE(
nlisting,*)
'! You cannot use the flooding scheme without the variable velocity scheme !!!' 218 CALL abort_trip(
'INIT_TRIP: You cannot use the flooding scheme without the variable velocity scheme !!!')
222 WRITE(
nlisting,*)
'! For flooding, the TRIP time step is too big !!!' 223 WRITE(
nlisting,*)
'! XTSTEP must be equal or inferior to 3600s !!!' 225 CALL abort_trip(
'INIT_TRIP: For flooding, the TRIP time step is too big !!!')
229 IF(mod(ptstep_run,
xtstep)*mod(
xtstep,ptstep_run)/=0.)
THEN 230 WRITE(
nlisting,*)
'! XTSTEP_RUN and XTSTEP are not good !!!' 231 WRITE(
nlisting,*)
'! XTSTEP_RUN =', ptstep_run
233 CALL abort_trip(
'INIT_TRIP: PTSTEP_RUN and XTSTEP are not good !!!')
236 IF(mod(ptstep_diag,
xtstep)*mod(
xtstep,ptstep_diag)/=0.)
THEN 237 WRITE(
nlisting,*)
'! PTSTEP_DIAG and XTSTEP are not good !!!' 238 WRITE(
nlisting,*)
'! XTSTEP_DIAG =', ptstep_diag
240 CALL abort_trip(
'INIT_TRIP: PTSTEP_DIAG and XTSTEP are not good !!!')
243 WRITE(
nlisting,*)
'! ',zgrid_res,
'° TRIP run !!!' 245 IF(zgrid_res<0.5.AND.
xratmed==1.4)
THEN 246 WRITE(
nlisting,*)
'! meandering ratio is 1.4 at 0.5° or 1° resolution !!!' 247 WRITE(
nlisting,*)
'! for other resolution change XRATMED in namelist !!!' 248 CALL abort_trip(
'INIT_TRIP: meandering ratio is 1.4 at 0.5° or 1° resolution !!!')
252 WRITE(
nlisting,*)
'!! XGWSUBD too large (must be <=30), check your namelist !!!' 253 CALL abort_trip(
'INIT_TRIP: XGWSUBD too large (must be <=30), check your namelist !!!')
260 ALLOCATE(tpg%XAREA (klon,klat))
261 ALLOCATE(tpg%XLEN (klon,klat))
262 ALLOCATE(tpg%NGRCN (klon,klat))
263 ALLOCATE(tpg%NSEQ (klon,klat))
264 ALLOCATE(tpg%NNEXTX (klon,klat))
265 ALLOCATE(tpg%NNEXTY (klon,klat))
266 ALLOCATE(tpg%NBASID (klon,klat))
268 ALLOCATE(tpg%GMASK (klon,klat))
269 ALLOCATE(tpg%GMASK_VEL(klon,klat))
270 ALLOCATE(tpg%GMASK_FLD(klon,klat))
271 ALLOCATE(tpg%GMASK_GW (klon,klat))
272 ALLOCATE(tpg%GMASK_GRE(klon,klat))
273 ALLOCATE(tpg%GMASK_ANT(klon,klat))
275 tpg%GMASK (:,:) = .false.
276 tpg%GMASK_VEL(:,:) = .false.
277 tpg%GMASK_FLD(:,:) = .false.
278 tpg%GMASK_GW (:,:) = .false.
279 tpg%GMASK_GRE(:,:) = .false.
280 tpg%GMASK_ANT(:,:) = .false.
286 ALLOCATE(tp%XSURF_STO(klon,klat))
289 ALLOCATE(tp%XTAUG(klon,klat))
291 ALLOCATE(tp%XTAUG(0,0))
295 ALLOCATE(tp%XGROUND_STO(klon,klat))
297 ALLOCATE(tp%XGROUND_STO(0,0))
301 ALLOCATE(tp%XHGROUND (klon,klat))
302 ALLOCATE(tp%XWEFF (klon,klat))
303 ALLOCATE(tp%XTRANS (klon,klat))
304 ALLOCATE(tp%XNUM_AQUI(klon,klat))
305 ALLOCATE(tp%XTOPO_RIV(klon,klat))
307 ALLOCATE(tp%XHGROUND (0,0))
308 ALLOCATE(tp%XWEFF (0,0))
309 ALLOCATE(tp%XTRANS (0,0))
310 ALLOCATE(tp%XNUM_AQUI(0,0))
311 ALLOCATE(tp%XTOPO_RIV(0,0))
315 ALLOCATE(tp%XHC_BED(klon,klat))
317 ALLOCATE(tp%XHC_BED(0,0))
321 ALLOCATE(tp%XN_FLOOD (klon,klat))
322 ALLOCATE(tp%XFLOOD_STO(klon,klat))
323 ALLOCATE(tp%XWFLOOD (klon,klat))
324 ALLOCATE(tp%XFLOOD_LEN(klon,klat))
325 ALLOCATE(tp%XHFLOOD (klon,klat))
326 ALLOCATE(tp%XFFLOOD (klon,klat))
328 ALLOCATE(tp%XN_FLOOD (0,0))
329 ALLOCATE(tp%XFLOOD_STO(0,0))
330 ALLOCATE(tp%XWFLOOD (0,0))
331 ALLOCATE(tp%XFLOOD_LEN(0,0))
332 ALLOCATE(tp%XHFLOOD (0,0))
333 ALLOCATE(tp%XFFLOOD (0,0))
337 ALLOCATE(tp%XSLOPEBED(klon,klat))
338 ALLOCATE(tp%XWIDTH (klon,klat))
339 ALLOCATE(tp%XN (klon,klat))
341 ALLOCATE(tp%XSLOPEBED(0,0))
342 ALLOCATE(tp%XWIDTH (0,0))
343 ALLOCATE(tp%XN (0,0))
350 ALLOCATE(zread(klon,klat))
356 WHERE(zread==
xundef)zread=0.0
357 tpg%NGRCN(:,:)=int(zread(:,:))
358 WHERE(tpg%NGRCN(:,:)>0)tpg%GMASK(:,:)=.true.
364 WHERE(zread==
xundef)zread=0.0
365 tpg%NSEQ(:,:)=int(zread(:,:))
369 tpg%NSEQMAX = maxval(tpg%NSEQ(:,:))
375 WHERE(zread==
xundef)zread=0.0
376 tpg%NBASID(:,:)=int(zread(:,:))
378 tpg%NBASMIN = minval(tpg%NBASID(:,:),tpg%NBASID(:,:)>0)
379 tpg%NBASMAX = maxval(tpg%NBASID(:,:),tpg%NBASID(:,:)>0)
383 CALL setnext(klon,klat,tpg%NGRCN,tpg%NNEXTX,tpg%NNEXTY)
389 WHERE(.NOT.tpg%GMASK(:,:))tpg%XAREA(:,:)=
xundef 395 WHERE(.NOT.tpg%GMASK(:,:))tpg%XLEN(:,:)=
xundef 403 IF(zread(jlon,jlat)==2.0)
THEN 404 tpg%GMASK_ANT(jlon,jlat)=.true.
405 ELSEIF(zread(jlon,jlat)==1.0)
THEN 406 tpg%GMASK_GRE(jlon,jlat)=.true.
417 IF(
cvit ==
'VAR')
THEN 428 tpg%GMASK_VEL(:,:)=tpg%GMASK(:,:)
429 WHERE(tpg%NSEQ(:,:)==0.OR.tp%XWIDTH(:,:)>=
xundef-1.0)
430 tp%XSLOPEBED(:,:)= 0.0
433 tpg%GMASK_VEL(:,:)=.false.
447 WHERE(tpg%NSEQ(:,:)==0)
451 tpg%GMASK_GW(:,:)=tpg%GMASK(:,:)
453 WHERE(tp%XTAUG(:,:)/=
xundef)
454 tp%XTAUG(:,:)=tp%XTAUG(:,:)*
xday 455 tpg%GMASK_GW(:,:)=.true.
457 tpg%GMASK_GW(:,:)=.false.
470 WHERE(tp%XNUM_AQUI(:,:)==
xundef)
471 tpg%GMASK_GW(:,:)=.false.
483 ALLOCATE(tp%XTABGW_F (klon,klat,
ndimtab))
484 ALLOCATE(tp%XTABGW_H (klon,klat,
ndimtab))
494 ALLOCATE(tp%XTABGW_F (0,0,0))
495 ALLOCATE(tp%XTABGW_H (0,0,0))
513 tpg%GMASK_FLD(:,:)=tpg%GMASK_VEL(:,:)
514 WHERE(tp%XN_FLOOD(:,:)==
xundef)
515 tpg%GMASK_FLD(:,:)=.false.
518 ALLOCATE(zread3d(klon,klat,
ndimtab))
520 ALLOCATE(tp%XTAB_F (klon,klat,
ndimtab+1))
521 ALLOCATE(tp%XTAB_H (klon,klat,
ndimtab+1))
522 ALLOCATE(tp%XTAB_VF(klon,klat,
ndimtab+1))
528 WHERE(tpg%GMASK_FLD(:,:))
529 tp%XTAB_F (:,:,1)=0.0
530 tp%XTAB_H (:,:,1)=0.0
531 tp%XTAB_VF(:,:,1)=0.0
536 tp%XTAB_F(:,:,2:
ndimtab+1)=zread3d(:,:,:)
540 tp%XTAB_H(:,:,2:
ndimtab+1)=zread3d(:,:,:)
544 tp%XTAB_VF(:,:,2:
ndimtab+1)=zread3d(:,:,:)
550 ALLOCATE(tp%XTAB_F (0,0,0))
551 ALLOCATE(tp%XTAB_H (0,0,0))
552 ALLOCATE(tp%XTAB_VF(0,0,0))
592 ALLOCATE(zgw_sto(klon,klat))
593 ALLOCATE(zwtd(klon,klat))
594 ALLOCATE(zhstream(klon,klat))
595 ALLOCATE(zvel(klon,klat))
601 IF(
cvit ==
'VAR')
THEN 604 tpg%XLEN,tp%XWIDTH,tp%XSLOPEBED, &
605 tp%XN,tp%XSURF_STO,zhstream,zvel )
610 WHERE(tpg%GMASK_GW(:,:))
611 zgw_sto(:,:)=(
xgwdzmax+tp%XHGROUND(:,:)-tp%XTOPO_RIV(:,:))*tp%XWEFF(:,:)*
xrholw 612 zwtd(:,:)=tp%XHGROUND(:,:)-tp%XTOPO_RIV(:,:)
622 WHERE(tpg%GMASK(:,:).AND.tpg%GMASK_FLD(:,:))
623 tp%XFLOOD_LEN(:,:) =
xratmed*sqrt(tp%XFFLOOD(:,:)*tpg%XAREA(:,:))
624 tp%XFLOOD_LEN(:,:) = min(tpg%XLEN(:,:),tp%XFLOOD_LEN(:,:))
627 tp%XFLOOD_LEN(:,:) = 0.0
628 tp%XWFLOOD (:,:) = 0.0
629 tp%XFFLOOD (:,:) = 0.0
630 tp%XHFLOOD (:,:) = 0.0
631 tp%XFLOOD_STO(:,:) = 0.0
635 WHERE(tp%XFFLOOD(:,:)>0.0.AND.tpg%GMASK_FLD(:,:))
636 tp%XWFLOOD(:,:) = tpg%XAREA(:,:) * tp%XFFLOOD(:,:) / tp%XFLOOD_LEN(:,:)
638 tp%XWFLOOD(:,:) = 0.0
641 ini =
count(tpg%GMASK)
642 iwork =
count(tpg%GMASK_FLD)
643 iflood=
count(tp%XFFLOOD>0.0)
656 WRITE(
nlisting,*)
'Coupling_time_step : ',ptstep_run
657 WRITE(
nlisting,*)
'Output_time_step : ',ptstep_diag
660 WRITE(
nlisting,*)
'Sequence max : ',tpg%NSEQMAX
663 WRITE(
nlisting,*)
'CELL LENGTH MIN, MAX (km): ',minval(tpg%XLEN/1.e3, tpg%GMASK), &
664 maxval(tpg%XLEN/1.e3, tpg%GMASK)
666 WRITE(
nlisting,*)
'CELL AREA MIN, MAX (km²): ',minval(tpg%XAREA/1.e6,tpg%GMASK), &
667 maxval(tpg%XAREA/1.e6,tpg%GMASK)
671 WRITE(
nlisting,*)
'Ground transf. time MIN, MAX : ',minval(tp%XTAUG/
xday,tpg%GMASK_GW), &
672 maxval(tp%XTAUG/
xday,tpg%GMASK_GW)
675 WRITE(
nlisting,*)
'Ground transf. time MIN, MAX : ',minval(tp%XTAUG/
xday,tpg%GMASK_GW), &
676 maxval(tp%XTAUG/
xday,tpg%GMASK_GW)
677 WRITE(
nlisting,*)
'Effective porosity MIN, MAX : ',minval(tp%XWEFF, tpg%GMASK_GW), &
678 maxval(tp%XWEFF, tpg%GMASK_GW)
679 WRITE(
nlisting,*)
'Transmissivity MIN, MAX : ',minval(tp%XTRANS, tpg%GMASK_GW), &
680 maxval(tp%XTRANS, tpg%GMASK_GW)
682 IF(
cvit ==
'VAR')
THEN 683 WRITE(
nlisting,*)
'WIDTH_RIVER MIN, MAX : ',minval(tp%XWIDTH, tpg%GMASK_VEL), &
684 maxval(tp%XWIDTH, tpg%GMASK_VEL)
685 WRITE(
nlisting,*)
'N MANNING COEF MIN, MAX : ',minval(tp%XN, tpg%GMASK_VEL), &
686 maxval(tp%XN, tpg%GMASK_VEL)
687 WRITE(
nlisting,*)
'RIVER SLOPE MIN, MAX : ',minval(tp%XSLOPEBED,tpg%GMASK_VEL), &
688 maxval(tp%XSLOPEBED,tpg%GMASK_VEL)
690 WRITE(
nlisting,*)
'Initial river height : ',minval(zhstream, tpg%GMASK_VEL), &
691 maxval(zhstream, tpg%GMASK_VEL)
694 WRITE(
nlisting,*)
'Initial river storage : ',minval(tp%XSURF_STO/tpg%XAREA, tpg%GMASK), &
695 maxval(tp%XSURF_STO/tpg%XAREA, tpg%GMASK)
698 WRITE(
nlisting,*)
'Initial ground storage : ',minval(tp%XGROUND_STO/tpg%XAREA,tpg%GMASK_GW), &
699 maxval(tp%XGROUND_STO/tpg%XAREA,tpg%GMASK_GW)
702 WRITE(
nlisting,*)
'Initial gw elevation : ',minval(tp%XHGROUND,tpg%GMASK_GW), &
703 maxval(tp%XHGROUND,tpg%GMASK_GW)
704 WRITE(
nlisting,*)
'Initial water table depth : ',minval(zwtd, tpg%GMASK_GW), &
705 maxval(zwtd, tpg%GMASK_GW)
706 WRITE(
nlisting,*)
'Initial gw storage : ',minval(zgw_sto,tpg%GMASK_GW), &
707 maxval(zgw_sto,tpg%GMASK_GW)
712 WRITE(
nlisting,*)
'N FLOOD FIXED TO ',minval(tp%XN_FLOOD,tpg%GMASK_FLD)
713 WRITE(
nlisting,*)
'RIVER DEPTH MIN, MAX : ',minval(tp%XHC_BED, tpg%GMASK_FLD), &
714 maxval(tp%XHC_BED, tpg%GMASK_FLD)
716 WRITE(
nlisting,*)
'Number of potential flood cell : ',iwork,
'on',ini
717 WRITE(
nlisting,*)
' % ',100.0*(float(iwork)/float(ini))
718 WRITE(
nlisting,*)
'Number of actual flood cell : ',iflood,
'on',iwork
719 WRITE(
nlisting,*)
' % ',100.0*(float(iflood)/float(iwork))
720 WRITE(
nlisting,*)
'% of flooded area in the domain :',100.0*
sum(tp%XFFLOOD*tpg%XAREA)/
sum(tpg%XAREA)
722 WRITE(
nlisting,*)
'Initial flood depth (m) : ',minval(tp%XHFLOOD, tpg%GMASK_FLD), &
723 maxval(tp%XHFLOOD, tpg%GMASK_FLD)
724 WRITE(
nlisting,*)
'Initial flood fraction : ',minval(tp%XFFLOOD, tpg%GMASK_FLD), &
725 maxval(tp%XFFLOOD, tpg%GMASK_FLD)
726 WRITE(
nlisting,*)
'Initial flood volume m3/1E9 : ',minval(tp%XFLOOD_STO/(
xrholw*1.e9),tpg%GMASK_FLD), &
727 maxval(tp%XFLOOD_STO/(
xrholw*1.e9),tpg%GMASK_FLD)
728 WRITE(
nlisting,*)
'Initial flood length (km): ',minval(tp%XFLOOD_LEN/1.e3, tpg%GMASK_FLD), &
729 maxval(tp%XFLOOD_LEN/1.e3, tpg%GMASK_FLD)
730 WRITE(
nlisting,*)
'Initial flood WIDTH (km) : ',minval(tp%XWFLOOD/1.e3, tpg%GMASK_FLD), &
731 maxval(tp%XWFLOOD/1.e3, tpg%GMASK_FLD)
753 ytitle =
'TRIP high frequency outputs' 757 nlisting,yfile,klon,klat,ytitle,yunittime,.true.)
764 ytitle =
'TRIP run mean outputs' 765 WRITE(ytime,
'(i4.4,i2.2)') kyear, kmonth
766 yunittime =
'months since '//ytime(1:4)//
'-'//ytime(5:len_trim(ytime))//
'-15' 768 nlisting,yfile,klon,klat,ytitle,yunittime,.true.)
777 ytitle =
'TRIP restart variables' 780 nlisting,yfile_restart,klon,klat,ytitle,yunittime,.false.)
795 CHARACTER(LEN=*),
INTENT(OUT) :: HTIMEUNIT
796 REAL,
INTENT(OUT) :: PTIME_DIAG
798 INTEGER,
DIMENSION(3) :: ITIME, IDATE
802 REAL(KIND=JPRB) :: ZHOOK_HANDLE
804 IF (
lhook)
CALL dr_hook(
'INIT_TRIP:OUTPUT_DATE',0,zhook_handle)
806 IF (ptstep_diag == floor(ptstep_diag/86400.)*86400)
THEN 807 htimeunit =
'days since ' 809 ELSEIF (ptstep_diag == floor(ptstep_diag/3600.)*3600)
THEN 810 htimeunit =
'hours since ' 812 ELSEIF (ptstep_diag == floor(ptstep_diag/60.)*60)
THEN 813 htimeunit =
'minutes since ' 816 htimeunit =
'seconds since ' 825 itime(1)=floor(isec/3600.)
826 itime(2)=floor((isec-itime(1)*3600)/60.)
827 itime(3)=isec-itime(1)*3600-itime(2)*60
836 IF (
lhook)
CALL dr_hook(
'INIT_TRIP:OUTPUT_DATE',1,zhook_handle)
840 SUBROUTINE write_time(ITIME,ISPACE,HSEP,HTDATE)
842 INTEGER,
INTENT(IN) :: ITIME
843 INTEGER,
INTENT(IN) :: ISPACE
844 CHARACTER(LEN=*),
INTENT(IN) :: HSEP
845 CHARACTER(LEN=*),
INTENT(INOUT) :: HTDATE
846 CHARACTER(LEN=10) :: YPAS
847 REAL(KIND=JPRB) :: ZHOOK_HANDLE
849 IF (
lhook)
CALL dr_hook(
'INIT_TRIP:WRITE_TIME',0,zhook_handle)
850 IF (itime.LT.10)
THEN 851 WRITE(ypas,
'(i1)') itime
853 htdate=
trim(htdate)//
" 0"//
trim(ypas)//hsep
855 htdate=
trim(htdate)//
"0"//
trim(ypas)//hsep
858 IF (itime.LT.100)
THEN 859 WRITE(ypas,
'(i2)') itime
861 WRITE(ypas,
'(i4)') itime
864 htdate=
trim(htdate)//
" "//
trim(ypas)//hsep
866 htdate=
trim(htdate)//
trim(ypas)//hsep
869 IF (
lhook)
CALL dr_hook(
'INIT_TRIP:WRITE_TIME',1,zhook_handle)
static const char * trim(const char *name, int *n)
subroutine init_trip_diag(TPDG, TPG, KLISTING, HFILE, KLON, KLAT, HTITLE, HTIMEU
subroutine init_trip_cpl_esm(TP, TPG, KLON, KLAT)
subroutine write_time(ITIME, ISPACE, HSEP, HTDATE)
subroutine setnext(KLON, KLAT, KGRCN, KNEXTX, KNEXTY, GMLON, GMLAT)
subroutine trip_hs_vel(PTSTEP, OMASK_VEL, PLEN, PWIDTH, PSLOPEBED, PN, PSURF_STO, PHS, PVEL)
subroutine init_restart_trip(TPG, KLISTING, HFILE, KLON, KLAT, HTITLE, HTI
subroutine get_trip_grid(PTRIP_GRID, PLONMIN, PLONMAX, PLATMIN, PLATMAX, PRES, KLON, KLAT, PLON, PLAT)
subroutine output_date(HTIMEUNIT, PTIME_DIAG)
subroutine init_trip(TPDG, TP, TPG, KYEAR, KMONTH, KDAY, PTIME, KLON, KLAT, PTSTEP_RUN, PTSTEP_DIAG, ORESTART, OXIOS)
character(len=3) cgroundw
intent(out) overrides sub arrays one Sort by the least significant key first sum(iindex(1:n))
subroutine alloc_trip_diag(TPDG, KLON, KLAT)
subroutine abort_trip(YTEXT)
subroutine get_lonlat_trip(TPG, KLON, KLAT, PLON, PLAT)