7 htype,kdim,kmask,klu,kluout)
42 USE modi_convert_cover_frac
45 USE yomhook
,ONLY : lhook, dr_hook
46 USE parkind1
,ONLY : jprb
61 CHARACTER(LEN=*),
INTENT(IN) :: htype
62 INTEGER,
INTENT(IN) :: kdim
63 INTEGER,
DIMENSION(KDIM),
INTENT(OUT) :: kmask
64 INTEGER,
INTENT(INOUT) :: klu
65 INTEGER,
INTENT(IN) :: kluout
71 REAL(KIND=JPRB) :: zhook_handle
77 IF (lhook) CALL dr_hook(
'GET_SURF_MASK_N',0,zhook_handle)
78 IF (.NOT.
ASSOCIATED(u%XCOVER))
THEN
80 IF (lhook) CALL dr_hook(
'GET_SURF_MASK_N',1,zhook_handle)
89 ilu =
SIZE(u%XCOVER,1)
91 IF (klu==nundef .OR. klu==0) klu = ilu
94 WRITE(kluout,*)
'Error in initialization of masks for reading or writing'
95 WRITE(kluout,*)
'size expected for reading/writing from atmosphere files : ',klu
96 WRITE(kluout,*)
'size of surface array in module MODD_SURF_ATM : ',ilu
97 CALL
abor1_sfx(
'GET_SURF_MASK: ERROR IN INITIALIZATION OF MASK FOR READING OR WRITING')
102 IF (lhook) CALL dr_hook(
'GET_SURF_MASK_N',1,zhook_handle)
110 INTEGER,
INTENT(IN) :: klu
111 CHARACTER(LEN=*),
INTENT(IN) :: ytype
112 INTEGER,
DIMENSION(:),
INTENT(OUT) :: imask
114 REAL,
DIMENSION(KLU) :: zsea
115 REAL,
DIMENSION(KLU) :: znature
116 REAL,
DIMENSION(KLU) :: ztown
117 REAL,
DIMENSION(KLU) :: zwater
118 REAL,
DIMENSION(KLU) :: zland
119 REAL,
DIMENSION(KLU) :: zsurf
121 REAL(KIND=JPRB) :: zhook_handle
123 IF (lhook) CALL dr_hook(
'GET_SURF_MASK_N:GET_MASK',0,zhook_handle)
125 IF (ytype.NE.
'FULL' .AND. ytype.NE.
'EXTZON')
THEN
127 IF (.NOT.
ASSOCIATED(u%XSEA))
THEN
129 u%XCOVER,u%LCOVER,zsea,znature,ztown,zwater)
136 zland = znature + ztown
151 ilu2 = count(zsurf(:) > 0.)
162 IF (lhook) CALL dr_hook(
'GET_SURF_MASK_N:GET_MASK',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine get_surf_mask_n(DTCO, U, HTYPE, KDIM, KMASK, KLU, KLUOUT)
subroutine get_mask(KLU, YTYPE, IMASK)
subroutine get_1d_mask(KSIZE, KFRAC, PFRAC, KMASK)
subroutine convert_cover_frac(DTCO, PCOVER, OCOVER, PSEA, PNATURE, PTOWN, PWATER)