45 TYPE(
flake_t),
INTENT(INOUT) :: F
50 REAL,
DIMENSION(SIZE(DMF%XZW_PROFILE),SIZE(F%XT_WML)) :: ZCSI
51 REAL,
DIMENSION(SIZE(DMF%XZW_PROFILE),SIZE(F%XT_WML)) :: ZSHAPE
54 REAL(KIND=JPRB) :: ZHOOK_HANDLE
58 IF (
lhook)
CALL dr_hook(
'DIAG_MISC_FLAKE_N',0,zhook_handle)
62 dmf%XTW_PROFILE(:,:) =
xundef 64 IF (dmf%LWATER_PROFILE)
THEN 66 DO izw=1,
SIZE(dmf%XZW_PROFILE)
67 WHERE (f%XWATER_DEPTH(:)==f%XH_ML(:))
70 zcsi(izw,:) = (dmf%XZW_PROFILE(izw) - f%XH_ML(:))/(f%XWATER_DEPTH(:) - f%XH_ML(:))
72 zshape(izw,:) = (40./3.*f%XCT-20./3.)*zcsi(izw,:) + (18.-30.*f%XCT)*zcsi(izw,:)**2 &
73 + (20.*f%XCT-12.) *zcsi(izw,:)**3+(5./3.-10./3.*f%XCT)*zcsi(izw,:)**4
76 DO izw=1,
SIZE(dmf%XZW_PROFILE)
77 WHERE (f%XH_ML(:) >= dmf%XZW_PROFILE(izw))
78 dmf%XTW_PROFILE(izw,:) = f%XT_WML(:)
79 ELSEWHERE (f%XWATER_DEPTH(:) >= dmf%XZW_PROFILE(izw))
80 dmf%XTW_PROFILE(izw,:) = f%XT_WML(:) - (f%XT_WML(:) - f%XT_BOT(:)) * zshape(izw,:)
86 IF (
lhook)
CALL dr_hook(
'DIAG_MISC_FLAKE_N',1,zhook_handle)
subroutine diag_misc_flake_n(DMF, F)