6 SUBROUTINE pgd_flake (DTCO, FG, F, UG, U, USS, HPROGRAM,ORM_RIVER)
54 USE modd_data_cover_par
, ONLY : jpcover
64 USE modi_get_surf_size_n
67 USE modi_open_namelist
68 USE modi_close_namelist
70 USE modi_treat_global_lake_depth
78 USE modi_write_cover_tex_water
87 TYPE(
grid_t),
INTENT(INOUT) :: FG
88 TYPE(
flake_t),
INTENT(INOUT) :: F
91 TYPE(
sso_t),
INTENT(INOUT) :: USS
93 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
94 LOGICAL,
INTENT(IN) :: ORM_RIVER
103 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IWATER_STATUS
108 CHARACTER(LEN=28) :: YWATER_DEPTH
109 CHARACTER(LEN=28) :: YWATER_DEPTH_STATUS
110 CHARACTER(LEN=28) :: YWATER_FETCH
111 CHARACTER(LEN=28) :: YT_BS
112 CHARACTER(LEN=28) :: YDEPTH_BS
113 CHARACTER(LEN=28) :: YEXTCOEF_WATER
115 CHARACTER(LEN=6) :: YWATER_DEPTHFILETYPE
116 CHARACTER(LEN=6) :: YWATER_FETCHFILETYPE
117 CHARACTER(LEN=6) :: YT_BSFILETYPE
118 CHARACTER(LEN=6) :: YDEPTH_BSFILETYPE
119 CHARACTER(LEN=6) :: YEXTCOEF_WATERFILETYPE
121 REAL :: XUNIF_WATER_DEPTH
122 REAL :: XUNIF_WATER_FETCH
124 REAL :: XUNIF_DEPTH_BS
125 REAL :: XUNIF_EXTCOEF_WATER
127 REAL(KIND=JPRB) :: ZHOOK_HANDLE
129 NAMELIST/nam_data_flake/ ywater_depth, ywater_depth_status, ywater_depthfiletype
145 xunif_water_depth = 10.
146 xunif_water_fetch = 1000.
149 xunif_extcoef_water= 3.
152 ywater_depth_status =
' ' 158 ywater_depthfiletype =
' ' 159 ywater_fetchfiletype =
' ' 161 ydepth_bsfiletype =
' ' 162 yextcoef_waterfiletype =
' ' 173 CALL posnam(ilunam,
'NAM_DATA_FLAKE',gfound,iluout)
174 IF (gfound)
READ(unit=ilunam,nml=nam_data_flake)
190 ALLOCATE(f%LCOVER (jpcover))
191 ALLOCATE(f%XZS (fg%NDIM))
192 ALLOCATE(fg%XLAT (fg%NDIM))
193 ALLOCATE(fg%XLON (fg%NDIM))
194 ALLOCATE(fg%XMESH_SIZE (fg%NDIM))
196 CALL pack_pgd(dtco, u, hprogram,
'WATER ', fg, f%LCOVER, f%XCOVER, f%XZS
203 ALLOCATE(f%XWATER_DEPTH (fg%NDIM))
207 IF (
trim(ywater_depth_status)==
'')
THEN 208 WRITE(iluout,*)
'Depth Status file name not initialized' 209 WRITE(iluout,*)
'add YWATER_DEPTH_STATUS="GlobalLakeStatus" in NAM_DATA_FLAKE' 210 CALL abor1_sfx(
'PGD_FLAKE: STATUS INPUT FILE NAME NOT SET')
212 ALLOCATE(iwater_status(fg%NDIM))
214 hprogram,f%XWATER_DEPTH(:),iwater_status
216 WRITE(iluout,*)
'Wrong name for Depth Status file :',
' expected: ',
trim' input: ' 217 CALL abor1_sfx(
'PGD_FLAKE: WRONG STATUS INPUT FILE NAME')
222 IF(u%LECOCLIMAP.AND.(.NOT.orm_river))
THEN 223 WRITE(iluout,*)
'With this version of Flake, river must be removed' 224 WRITE(iluout,*)
'Indeed, river energy budget can not be computed ' 225 WRITE(iluout,*)
'using static lake scheme without 2D informations.' 226 WRITE(iluout,*)
'Please add LRM_RIVER = T in NAM_COVER ' 228 WRITE(iluout,*)
'If you still want to use Flake to comput river ' 229 WRITE(iluout,*)
'energy budget, please use the two files for the ' 232 CALL abor1_sfx(
'PGD_FLAKE: WITH THIS VERSION OF FLAKE, LRM_RIVER MUST BE TRUE' 237 hprogram,
'water depth',
'WAT',ywater_depth,ywater_depthfiletype
241 f%XWATER_DEPTH(:) = min(f%XWATER_DEPTH(:),xmax_depth)
242 WRITE(iluout,*)
'MAXIMUM LAKE DEPTH = ',xmax_depth
249 ALLOCATE(f%XWATER_FETCH (fg%NDIM))
253 hprogram,
'wind fetch',
'WAT',ywater_fetch,ywater_fetchfiletype
260 ALLOCATE(f%XT_BS (fg%NDIM))
264 hprogram,
'sediments bottom temperature ',
'WAT',yt_bs,yt_bsfiletype
271 ALLOCATE(f%XDEPTH_BS (fg%NDIM))
275 hprogram,
'depth of sediments layer',
'WAT',ydepth_bs,ydepth_bsfiletype
282 ALLOCATE(f%XEXTCOEF_WATER(fg%NDIM))
286 hprogram,
'water extinction coefficient',
'WAT', &
287 yextcoef_water,yextcoef_waterfiletype,xunif_extcoef_water
295 IF (
nrank==
npio)
CALL write_cover_tex_water
subroutine get_surf_size_n(DTCO, U, HTYPE, KL)
static const char * trim(const char *name, int *n)
subroutine pgd_flake(DTCO, FG, F, UG, U, USS, HPROGRAM, ORM_RIVER)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine pack_pgd(DTCO, U, HPROGRAM, HSURF, G, OCOVER, PCOVER,
subroutine abor1_sfx(YTEXT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine treat_global_lake_depth(DTCO, UG, U, USS, HPROGRAM, PDEPTH, KSTATUS)
character(len=80), parameter clakeldb
character(len=80), parameter cstatusldb
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)