6 SUBROUTINE put_zs_n (F, IS, S, U, TOP, W, HPROGRAM,KI,PZS)
52 USE modi_put_zs_inland_water_n
54 USE modi_put_zs_nature_n
58 USE modi_put_zs_surf_atm_n
60 USE modi_put_zs_town_n
61 USE modi_get_size_full_n
70 TYPE(
flake_t),
INTENT(INOUT) :: F
77 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
78 INTEGER,
INTENT(IN) :: KI
79 REAL,
DIMENSION(KI),
INTENT(IN) :: PZS
85 REAL(KIND=JPRB) :: ZHOOK_HANDLE
98 IF (u%NSIZE_WATER > 0 .AND. u%CWATER/=
'NONE' .AND. u%CWATER/=
'FLUX')
CALL pack_zs'W' 103 IF (u%NSIZE_NATURE > 0 .AND. u%CNATURE/=
'NONE' .AND. u%CNATURE/=
'FLUX')
CALL pack_zs'N' 108 IF (u%NSIZE_TOWN > 0 .AND. u%CTOWN/=
'NONE' .AND. u%CTOWN/=
'FLUX')
CALL pack_zs'T' 113 IF (u%NSIZE_SEA > 0 .AND. u%CSEA/=
'NONE' .AND. u%CSEA/=
'FLUX')
CALL pack_zs'S' 119 SUBROUTINE pack_zs(KSIZE,KMASK,YTYPE)
121 INTEGER,
INTENT(IN) :: KSIZE
122 INTEGER,
POINTER,
DIMENSION(:) :: KMASK
123 CHARACTER(LEN=1),
INTENT(IN) :: YTYPE
125 REAL,
DIMENSION(KSIZE) :: ZP_ZS
126 INTEGER :: JJ, ISIZE_FULL
127 REAL(KIND=JPRB) :: ZHOOK_HANDLE
131 IF (
lhook)
CALL dr_hook(
'PUT_ZS_N:PACK_ZS',0,zhook_handle)
133 IF (.NOT.
ASSOCIATED(kmask))
THEN 134 ALLOCATE(kmask(ksize))
137 u%NSIZE_FULL = isize_full
139 CALL get_1d_mask( ksize, u%NSIZE_FULL, u%XWATER, kmask)
140 ELSEIF (ytype==
'N')
THEN 141 CALL get_1d_mask( ksize, u%NSIZE_FULL, u%XNATURE, kmask)
142 ELSEIF (ytype==
'T')
THEN 143 CALL get_1d_mask( ksize, u%NSIZE_FULL, u%XTOWN, kmask)
144 ELSEIF (ytype==
'S')
THEN 145 CALL get_1d_mask( ksize, u%NSIZE_FULL, u%XSEA, kmask)
151 zp_zs(jj) = pzs(kmask(jj))
156 ELSEIF (ytype==
'N')
THEN 158 ELSEIF (ytype==
'T')
THEN 160 ELSEIF (ytype==
'S')
THEN 164 IF (
lhook)
CALL dr_hook(
'PUT_ZS_N:PACK_ZS',1,zhook_handle)
subroutine put_zs_n(F, IS, S, U, TOP, W, HPROGRAM, KI, PZS)
subroutine put_zs_inland_water_n(F, W, HPROGRAM, KI, PZS, HWATER)
subroutine put_zs_nature_n(S, HPROGRAM, KI, PZS)
subroutine get_size_full_n(HPROGRAM, KDIM_FULL, KSIZE_FULL_IN, KSIZE
subroutine put_zs_sea_n(S, HPROGRAM, KI, PZS)
subroutine put_zs_surf_atm_n(U, HPROGRAM, KI, PZS)
subroutine get_1d_mask(KSIZE, KFRAC, PFRAC, KMASK)
subroutine put_zs_town_n(TOP, HPROGRAM, KI, PZS)
subroutine pack_zs(KSIZE, KMASK, YTYPE)