7 pt_wml,pt_bot,ph_ml,pct,pwater_depth)
39 USE yomhook
,ONLY : lhook, dr_hook
40 USE parkind1
,ONLY : jprb
49 REAL,
DIMENSION(:),
INTENT(IN) :: pt_wml
50 REAL,
DIMENSION(:),
INTENT(IN) :: pt_bot
51 REAL,
DIMENSION(:),
INTENT(IN) :: ph_ml
52 REAL,
DIMENSION(:),
INTENT(IN) :: pct
53 REAL,
DIMENSION(:),
INTENT(IN) :: pwater_depth
57 REAL,
DIMENSION(SIZE(DGMF%XZW_PROFILE),SIZE(PT_WML)) :: zcsi
58 REAL,
DIMENSION(SIZE(DGMF%XZW_PROFILE),SIZE(PT_WML)) :: zshape
61 REAL(KIND=JPRB) :: zhook_handle
65 IF (lhook) CALL dr_hook(
'DIAG_MISC_FLAKE_N',0,zhook_handle)
69 dgmf%XTW_PROFILE(:,:) = xundef
71 IF (dgmf%LWATER_PROFILE)
THEN
73 DO izw=1,
SIZE(dgmf%XZW_PROFILE)
74 WHERE (pwater_depth(:)==ph_ml(:))
77 zcsi(izw,:) = (dgmf%XZW_PROFILE(izw) - ph_ml(:))/(pwater_depth(:) - ph_ml(:))
79 zshape(izw,:) = (40./3.*pct-20./3.)*zcsi(izw,:)+(18.-30.*pct)*zcsi(izw,:)**2 &
80 + (20.*pct-12.)*zcsi(izw,:)**3+(5./3.-10./3.*pct)*zcsi(izw,:)**4
83 DO izw=1,
SIZE(dgmf%XZW_PROFILE)
84 WHERE (ph_ml(:) >= dgmf%XZW_PROFILE(izw))
85 dgmf%XTW_PROFILE(izw,:) = pt_wml(:)
86 ELSEWHERE (pwater_depth(:) >= dgmf%XZW_PROFILE(izw))
87 dgmf%XTW_PROFILE(izw,:) = pt_wml(:) - (pt_wml(:) - pt_bot(:)) * zshape(izw,:)
93 IF (lhook) CALL dr_hook(
'DIAG_MISC_FLAKE_N',1,zhook_handle)
subroutine diag_misc_flake_n(DGMF, PT_WML, PT_BOT, PH_ML, PCT, PWATER_DEPTH)