7 PTA,PEXNA,PRHOA,PSST,PEXNS,PQA, &
8 PRAIN,PSNOW,PVMOD,PZREF,PUREF,PPS, &
9 PQSAT,PSFTH,PSFTQ,PUSTAR, &
10 PCD,PCDN,PCH,PCE,PRI,PRESA,PZ0HSEA )
73 REAL,
DIMENSION(:),
INTENT(IN) :: PMASK
74 INTEGER ,
INTENT(IN) :: KSIZE_WATER
75 INTEGER ,
INTENT(IN) :: KSIZE_ICE
77 REAL,
DIMENSION(:),
INTENT(IN) :: PTA
78 REAL,
DIMENSION(:),
INTENT(IN) :: PQA
79 REAL,
DIMENSION(:),
INTENT(IN) :: PEXNA
80 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
81 REAL,
DIMENSION(:),
INTENT(IN) :: PVMOD
82 REAL,
DIMENSION(:),
INTENT(IN) :: PZREF
83 REAL,
DIMENSION(:),
INTENT(IN) :: PUREF
84 REAL,
DIMENSION(:),
INTENT(IN) :: PSST
85 REAL,
DIMENSION(:),
INTENT(IN) :: PEXNS
86 REAL,
DIMENSION(:),
INTENT(IN) :: PPS
87 REAL,
DIMENSION(:),
INTENT(IN) :: PRAIN
88 REAL,
DIMENSION(:),
INTENT(IN) :: PSNOW
91 REAL,
DIMENSION(:),
INTENT(OUT) :: PSFTH
92 REAL,
DIMENSION(:),
INTENT(OUT) :: PSFTQ
93 REAL,
DIMENSION(:),
INTENT(OUT) :: PUSTAR
96 REAL,
DIMENSION(:),
INTENT(OUT) :: PQSAT
97 REAL,
DIMENSION(:),
INTENT(OUT) :: PCD
98 REAL,
DIMENSION(:),
INTENT(OUT) :: PCDN
99 REAL,
DIMENSION(:),
INTENT(OUT) :: PCH
100 REAL,
DIMENSION(:),
INTENT(OUT) :: PCE
101 REAL,
DIMENSION(:),
INTENT(OUT) :: PRI
102 REAL,
DIMENSION(:),
INTENT(OUT) :: PRESA
103 REAL,
DIMENSION(:),
INTENT(OUT) :: PZ0HSEA
107 INTEGER,
DIMENSION(KSIZE_WATER) :: IR_WATER
108 INTEGER,
DIMENSION(KSIZE_ICE) :: IR_ICE
110 REAL(KIND=JPRB) :: ZHOOK_HANDLE
116 IF (
lhook)
CALL dr_hook(
'MODI_COARE30_SEAFLUX:COARE30_SEAFLUX',0,zhook_handle)
123 IF (s%LHANDLE_SIC)
THEN 125 DO jj=1,
SIZE(psst(:))
131 DO jj=1,
SIZE(psst(:))
132 IF (pmask(jj) >=0.0 )
THEN 147 IF (ksize_water > 0 )
CALL treat_surf(ir_water,
'W')
154 IF ( (ksize_ice > 0 ) .AND. (.NOT. s%LHANDLE_SIC) )
CALL treat_surf(ir_ice,
'I')
157 IF (
lhook)
CALL dr_hook(
'MODI_COARE30_SEAFLUX:COARE30_SEAFLUX',1,zhook_handle)
164 INTEGER,
INTENT(IN),
DIMENSION(:) :: KMASK
165 CHARACTER(LEN=1),
INTENT(IN) :: YTYPE
167 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_TA
168 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_QA
169 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_EXNA
170 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_RHOA
171 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_VMOD
172 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_ZREF
173 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_UREF
174 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_SST
175 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_EXNS
176 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_PS
177 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_RAIN
178 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_SNOW
180 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_Z0SEA
183 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_SFTH
184 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_SFTQ
185 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_USTAR
188 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_QSAT
189 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_CD
190 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_CDN
191 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_CH
192 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_CE
193 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_RI
194 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_RESA
195 REAL,
DIMENSION(SIZE(KMASK)) :: ZW_Z0HSEA
197 REAL(KIND=JPRB) :: ZHOOK_HANDLE
199 IF (
lhook)
CALL dr_hook(
'COARE30_SEAFLUX:TREAT_SURF',0,zhook_handle)
202 zw_ta(jj) = pta(kmask(jj))
203 zw_qa(jj) = pqa(kmask(jj))
204 zw_exna(jj) = pexna(kmask(jj))
205 zw_rhoa(jj) = prhoa(kmask(jj))
206 zw_vmod(jj) = pvmod(kmask(jj))
207 zw_zref(jj) = pzref(kmask(jj))
208 zw_uref(jj) = puref(kmask(jj))
209 zw_sst(jj) = psst(kmask(jj))
210 zw_exns(jj) = pexns(kmask(jj))
211 zw_ps(jj) = pps(kmask(jj))
212 zw_rain(jj) = prain(kmask(jj))
213 zw_snow(jj) = psnow(kmask(jj))
214 zw_z0sea(jj)= s%XZ0(kmask(jj))
231 CALL coare30_flux(s, zw_z0sea,zw_ta,zw_exna,zw_rhoa,zw_sst,zw_exns,&
232 zw_qa,zw_vmod,zw_zref,zw_uref,zw_ps,zw_qsat,zw_sfth,zw_sftq,zw_ustar,&
233 zw_cd,zw_cdn,zw_ch,zw_ce,zw_ri,zw_resa,zw_rain,zw_z0hsea)
235 ELSEIF ( (ytype==
'I') .AND. (.NOT. s%LHANDLE_SIC))
THEN 237 CALL ice_sea_flux(zw_z0sea,zw_ta,zw_exna,zw_rhoa,zw_sst,zw_exns,zw_qa,zw_rain,zw_snow, &
238 zw_vmod,zw_zref,zw_uref,zw_ps,zw_qsat,zw_sfth,zw_sftq,zw_ustar,zw_cd, &
239 zw_cdn,zw_ch,zw_ri,zw_resa,zw_z0hsea)
244 s%XZ0(kmask(jj)) = zw_z0sea(jj)
245 psfth(kmask(jj)) = zw_sfth(jj)
246 psftq(kmask(jj)) = zw_sftq(jj)
247 pustar(kmask(jj)) = zw_ustar(jj)
248 pqsat(kmask(jj)) = zw_qsat(jj)
249 pcd(kmask(jj)) = zw_cd(jj)
250 pcdn(kmask(jj)) = zw_cdn(jj)
251 pch(kmask(jj)) = zw_ch(jj)
252 pce(kmask(jj)) = zw_ce(jj)
253 pri(kmask(jj)) = zw_ri(jj)
254 presa(kmask(jj)) = zw_resa(jj)
255 pz0hsea(kmask(jj)) = zw_z0hsea(jj)
257 IF (
lhook)
CALL dr_hook(
'COARE30_SEAFLUX:TREAT_SURF',1,zhook_handle)
subroutine treat_surf(KMASK, YTYPE)
subroutine ice_sea_flux(PZ0ICE,
subroutine coare30_seaflux(S, PMASK, KSIZE_WATER, KSIZE_ICE, PTA, PEXNA, PRHOA, PSST, PEXNS, PQA, PRAIN, PSNOW, PVMOD, PZREF, PUREF, PPS, PQSAT, PSFTH, PSFTQ, PUSTAR, PCD, PCDN, PCH, PCE, PRI, PRESA, PZ0HSEA)
subroutine coare30_flux(S, PZ0SEA, PTA, PEXNA, PRHOA, PSST, PEXNS, PQA, PVMOD, PZREF, PUREF, PPS, PQSAT, PSFTH, PSFTQ, PUSTAR, PCD, PCDN, PCH, PCE, PRI, PRESA, PRAIN, PZ0HSEA)