6 SUBROUTINE prep_flake (DTCO, USS, FG, F, SB, UG, U, GCP, &
7 HPROGRAM,HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
48 USE modi_prep_hor_flake_field
49 USE modi_prep_ver_flake
51 USE modi_prep_output_grid
69 USE modi_clean_prep_output_grid
79 TYPE(
sso_t),
INTENT(INOUT) :: USS
81 TYPE(
grid_t),
INTENT(INOUT) :: FG
82 TYPE(
flake_t),
INTENT(INOUT) :: F
88 type(
prep_ctl),
INTENT(INOUT) :: ydctl
90 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
91 CHARACTER(LEN=28),
INTENT(IN) :: HATMFILE
92 CHARACTER(LEN=6),
INTENT(IN) :: HATMFILETYPE
93 CHARACTER(LEN=28),
INTENT(IN) :: HPGDFILE
94 CHARACTER(LEN=6),
INTENT(IN) :: HPGDFILETYPE
101 REAL(KIND=JPRB) :: ZHOOK_HANDLE
110 CALL abor1_sfx(
'PREP_FLAKE: TWO STEP PREP NOT IMPLEMENTED')
117 isize =
SIZE(fg%XLAT)
127 hprogram,
'ZS ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
136 hprogram,
'TS ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
137 IF (gnovalue)
CALL abor1_sfx(
'PREP_FLAKE: AT LEAST TS SHOULD BE GIVEN!')
140 hprogram,
'T_SNOW ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
143 hprogram,
'T_ICE ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
146 hprogram,
'T_WML ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
148 ALLOCATE(f%XT_MNW(isize))
151 hprogram,
'T_BOT ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
154 hprogram,
'T_B1 ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
157 hprogram,
'CT ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
160 hprogram,
'H_SNOW ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
163 hprogram,
'H_ICE ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
166 hprogram,
'H_ML ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
169 hprogram,
'H_B1 ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gnovalue)
175 ALLOCATE(f%XTS(isize))
178 ALLOCATE(f%XT_SNOW(isize))
179 ALLOCATE(f%XT_ICE(isize))
180 ALLOCATE(f%XT_WML(isize))
181 ALLOCATE(f%XT_MNW(isize))
182 ALLOCATE(f%XT_BOT(isize))
183 ALLOCATE(f%XT_B1(isize))
184 ALLOCATE(f%XCT(isize))
185 ALLOCATE(f%XH_SNOW(isize))
186 ALLOCATE(f%XH_ICE(isize))
187 ALLOCATE(f%XH_ML(isize))
188 ALLOCATE(f%XH_B1(isize))
208 ALLOCATE(f%XZ0(
SIZE(f%XTS)))
213 ALLOCATE(f%XUSTAR(
SIZE(f%XTS)))
224 WRITE(iluout,*)
"WARNING: You want the vertical shift for lakes?" 225 WRITE(iluout,*)
"WARNING: Vertical shift for the lake temperature profile is impossible!" 226 WRITE(iluout,*)
"WARNING: So, set the default vertical profiles from the shifted surface temperature." 239 ELSEIF (.NOT.gnovalue)
THEN 240 f%XT_MNW(:)=f%XT_WML(:)-(f%XT_WML(:)-f%XT_BOT(:))*(1.-f%XH_ML(:)/f%XWATER_DEPTH(:))*f%XCT(:)
242 WRITE(iluout,*)
"WARNING! One of the lake profile variales was not indicated, so set the default profile!" 243 f%XT_WML=max(f%XTS(:),
xtt)
244 f%XT_SNOW=min(f%XTS(:),
xtt)
245 f%XT_ICE=min(f%XTS(:),
xtt)
253 f%XH_ML=f%XWATER_DEPTH/2.
254 f%XT_MNW=f%XT_WML-(f%XT_WML-f%XT_BOT)*(1.-f%XH_ML/f%XWATER_DEPTH)*f%XCT
259 f%XH_ML=f%XWATER_DEPTH
269 IF (f%LSBL)
CALL prep_sbl(isize, sb)
subroutine prep_sbl(KDIM, SB)
subroutine prep_ver_flake(F)
subroutine cli_lake(G, F)
subroutine clean_prep_output_grid
real, dimension(:), allocatable xzs_ls
subroutine abor1_sfx(YTEXT)
subroutine prep_output_grid(UG, G, KSIZE_FULL, KLUOUT)
logical function prep_ctl_can(YDCTL)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine prep_flake(DTCO, USS, FG, F, SB, UG, U, GCP, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, YDCTL)
subroutine prep_hor_flake_field(DTCO, UG, U, USS, GCP, KLAT, F, HPROGRAM, HSURF, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, ONOVALUE)