7 hprogram, hcoupling, ptimec, &
8 ptstep, kyear, kmonth, kday, ptime, ki, ksv, ksw, ptsun, pzenith, pzenith2, &
9 pazim, pzref, puref, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
10 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
11 psftq, psfth, psfts, psfco2, psfu, psfv, &
12 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
13 ppew_a_coef, ppew_b_coef, &
14 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
64 USE modd_csts, ONLY : xrd, xcpd, xp00, xtt, xtts, xttsi, xday
74 USE modi_ecume_seaflux
75 USE modi_coare30_seaflux
76 USE modi_add_forecast_to_date_surf
78 USE modi_diag_inline_seaflux_n
83 USE modi_interpol_sst_mth
84 USE modi_update_rad_sea
92 USE yomhook
,ONLY : lhook, dr_hook
93 USE parkind1
,ONLY : jprb
97 USE modi_coupling_iceflux_n
98 USE modi_seaice_gelato1d_n
100 USE modi_coupling_slt_n
108 TYPE(dst_t),
INTENT(INOUT) :: dst
109 TYPE(slt_t),
INTENT(INOUT) :: slt
111 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
112 CHARACTER(LEN=1),
INTENT(IN) :: hcoupling
115 REAL,
INTENT(IN) :: ptimec
116 INTEGER,
INTENT(IN) :: kyear
117 INTEGER,
INTENT(IN) :: kmonth
118 INTEGER,
INTENT(IN) :: kday
119 REAL,
INTENT(IN) :: ptime
120 INTEGER,
INTENT(IN) :: ki
121 INTEGER,
INTENT(IN) :: ksv
122 INTEGER,
INTENT(IN) :: ksw
123 REAL,
DIMENSION(KI),
INTENT(IN) :: ptsun
124 REAL,
INTENT(IN) :: ptstep
125 REAL,
DIMENSION(KI),
INTENT(IN) :: pzref
126 REAL,
DIMENSION(KI),
INTENT(IN) :: puref
128 REAL,
DIMENSION(KI),
INTENT(IN) :: pta
129 REAL,
DIMENSION(KI),
INTENT(IN) :: pqa
130 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
131 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: psv
134 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: hsv
135 REAL,
DIMENSION(KI),
INTENT(IN) :: pu
136 REAL,
DIMENSION(KI),
INTENT(IN) :: pv
137 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: pdir_sw
139 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: psca_sw
141 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
142 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
143 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith2
144 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
145 REAL,
DIMENSION(KI),
INTENT(IN) :: plw
147 REAL,
DIMENSION(KI),
INTENT(IN) :: pps
148 REAL,
DIMENSION(KI),
INTENT(IN) :: ppa
149 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
150 REAL,
DIMENSION(KI),
INTENT(IN) :: psnow
151 REAL,
DIMENSION(KI),
INTENT(IN) :: prain
153 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfth
154 REAL,
DIMENSION(KI),
INTENT(OUT) :: psftq
155 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfu
156 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfv
157 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfco2
158 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: psfts
160 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptrad
161 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: pdir_alb
162 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: psca_alb
163 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
165 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
166 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0
167 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0h
168 REAL,
DIMENSION(KI),
INTENT(OUT) :: pqsurf
170 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_a_coef
171 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_b_coef
172 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_a_coef
173 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_a_coef
174 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_b_coef
175 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_b_coef
176 CHARACTER(LEN=2),
INTENT(IN) :: htest
180 REAL,
DIMENSION(KI,KSW) :: zdir_alb
181 REAL,
DIMENSION(KI,KSW) :: zsca_alb
183 REAL,
DIMENSION(KI) :: zexna
184 REAL,
DIMENSION(KI) :: zexns
185 REAL,
DIMENSION(KI) :: zu
186 REAL,
DIMENSION(KI) :: zv
187 REAL,
DIMENSION(KI) :: zwind
188 REAL,
DIMENSION(KI) :: zcd
189 REAL,
DIMENSION(KI) :: zcd_ice
190 REAL,
DIMENSION(KI) :: zcdn
191 REAL,
DIMENSION(KI) :: zcdn_ice
192 REAL,
DIMENSION(KI) :: zch
193 REAL,
DIMENSION(KI) :: zch_ice
194 REAL,
DIMENSION(KI) :: zce
195 REAL,
DIMENSION(KI) :: zce_ice
196 REAL,
DIMENSION(KI) :: zri
197 REAL,
DIMENSION(KI) :: zri_ice
198 REAL,
DIMENSION(KI) :: zresa_sea
199 REAL,
DIMENSION(KI) :: zresa_sea_ice
200 REAL,
DIMENSION(KI) :: zustar
201 REAL,
DIMENSION(KI) :: zustar_ice
202 REAL,
DIMENSION(KI) :: zz0
203 REAL,
DIMENSION(KI) :: zz0_ice
204 REAL,
DIMENSION(KI) :: zz0h
205 REAL,
DIMENSION(KI) :: zz0h_ice
206 REAL,
DIMENSION(KI) :: zz0w
207 REAL,
DIMENSION(KI) :: zqsat
208 REAL,
DIMENSION(KI) :: zqsat_ice
210 REAL,
DIMENSION(KI) :: zsfth
211 REAL,
DIMENSION(KI) :: zsftq
212 REAL,
DIMENSION(KI) :: zsfu
213 REAL,
DIMENSION(KI) :: zsfv
215 REAL,
DIMENSION(KI) :: zsfth_ice
216 REAL,
DIMENSION(KI) :: zsftq_ice
217 REAL,
DIMENSION(KI) :: zsfu_ice
218 REAL,
DIMENSION(KI) :: zsfv_ice
220 REAL,
DIMENSION(KI) :: zhu
221 REAL,
DIMENSION(KI) :: zqa
222 REAL,
DIMENSION(KI) :: zemis
223 REAL,
DIMENSION(KI) :: ztrad
225 REAL,
DIMENSION(KI) :: zsst
226 REAL,
DIMENSION(KI) :: zmask
228 REAL :: zconvertfacm0_slt, zconvertfacm0_dst
229 REAL :: zconvertfacm3_slt, zconvertfacm3_dst
230 REAL :: zconvertfacm6_slt, zconvertfacm6_dst
232 INTEGER :: isize_water
239 REAL(KIND=JPRB) :: zhook_handle
243 IF (lhook) CALL dr_hook(
'COUPLING_SEAFLUX_N',0,zhook_handle)
244 IF (htest/=
'OK')
THEN
245 CALL
abor1_sfx(
'COUPLING_SEAFLUXN: FATAL ERROR DURING ARGUMENT TRANSFER')
262 zresa_sea(:) = xundef
268 zsftq_ice(:) = xundef
269 zsfth_ice(:) = xundef
275 zresa_sea_ice= xundef
276 zustar_ice(:) = xundef
279 zqsat_ice(:) = xundef
283 zdir_alb(:,:) = xundef
284 zsca_alb(:,:) = xundef
288 zexns(:) = (pps(:)/xp00)**(xrd/xcpd)
289 zexna(:) = (ppa(:)/xp00)**(xrd/xcpd)
293 zu(:)=pu(:)-sm%S%XUMER(:)
294 zv(:)=pv(:)-sm%S%XVMER(:)
300 zwind(:) = sqrt(zu(:)**2+zv(:)**2)
306 zqa(:) = pqa(:) / prhoa(:)
312 sm%S%TTIME%TIME = sm%S%TTIME%TIME + ptstep
319 IF (sm%S%LHANDLE_SIC)
THEN
321 isize_water =
SIZE(zmask)
323 zsst(:)=max(sm%S%XSST(:), xttsi)
329 WHERE ( sm%S%XSIC(:) > 0. ) zmask(:)=1.
331 WHERE ( sm%S%XSST(:) - xtts <= 10. ) zmask(:)=1.
332 IF (sm%S%LINTERPOL_SIC)
WHERE (sm%S%XFSIC(:) > 0. ) zmask(:)=1.
333 IF (sm%S%LINTERPOL_SIT)
WHERE (sm%S%XFSIT(:) > 0. ) zmask(:)=1.
335 zsst(:) = sm%S%XSST(:)
336 zmask(:) = sm%S%XSST(:) - xtts
337 isize_water = count(zmask(:)>=0.)
338 isize_ice =
SIZE(sm%S%XSST) - isize_water
341 SELECT CASE (sm%S%CSEA_FLUX)
344 pta, zexna, prhoa, zsst, zexns, zqa, prain, &
346 zwind, pzref, puref, &
347 pps, sm%S%LHANDLE_SIC, zqsat, &
348 zsfth, zsftq, zustar, &
349 zcd, zcdn, zch, zri, zresa_sea, zz0h )
351 CALL
mr98(sm%S%XZ0, &
352 pta, zexna, prhoa, sm%S%XSST, zexns, zqa, &
354 zwind, pzref, puref, &
356 zsfth, zsftq, zustar, &
357 zcd, zcdn, zch, zri, zresa_sea, zz0h )
359 CASE (
'ECUME ',
'ECUME6')
360 CALL
ecume_seaflux(sm%S%XZ0, zmask, isize_water, isize_ice, &
361 pta, zexna ,prhoa, zsst, sm%S%XSSS, zexns, zqa, &
363 zwind, pzref, puref, pps, ppa, &
364 sm%S%XICHCE, sm%S%LPRECIP, sm%S%LPWEBB, sm%S%LPWG, sm%S%NZ0, &
365 sm%S%LHANDLE_SIC, zqsat, zsfth, zsftq, zustar, &
366 zcd, zcdn, zch, zce, zri, zresa_sea, zz0h, &
367 sm%S%LPERTFLUX, sm%S%XPERTFLUX, sm%S%CSEA_FLUX )
370 zmask, isize_water, isize_ice, &
371 pta, zexna ,prhoa, zsst, zexns, zqa, prain, &
373 zwind, pzref, puref, &
375 zsfth, zsftq, zustar, &
376 zcd, zcdn, zch, zce, zri, zresa_sea, zz0h )
383 iswb =
SIZE(psw_bands)
386 zdir_alb(:,jswb) = sm%S%XDIR_ALB(:)
387 zsca_alb(:,jswb) = sm%S%XSCA_ALB(:)
390 IF (sm%S%LHANDLE_SIC)
THEN
391 zemis(:) = (1 - sm%S%XSIC(:)) * xemiswat + sm%S%XSIC(:) * xemiswatice
392 ztrad(:) = (((1 - sm%S%XSIC(:)) * xemiswat * sm%S%XSST (:)**4 + &
393 sm%S%XSIC(:) * xemiswatice * sm%S%XTICE(:)**4)/ &
396 ztrad(:) = sm%S%XSST (:)
397 zemis(:) = sm%S%XEMIS(:)
405 IF(lcpl_seaice.OR.sm%S%LHANDLE_SIC)
THEN
407 zqa, prain, psnow, zwind, pzref, puref, &
408 pps, sm%S%XSST, xtts, zsfth_ice, zsftq_ice, &
409 sm%S%LHANDLE_SIC, zmask, zqsat_ice, zz0_ice, &
410 zustar_ice, zcd_ice, zcdn_ice, zch_ice, &
411 zri_ice, zresa_sea_ice, zz0h_ice )
438 psfco2(:) = - zwind(:)**2 * 1.13e-3 * 8.7 * 44.e-3 / ( 365*24*3600 )
445 IF (sm%CHS%SVS%NBEQ>0)
THEN
446 IF (sm%CHS%CCH_DRY_DEP ==
"WES89")
THEN
449 psv(:,sm%CHS%SVS%NSV_CHSBEG:sm%CHS%SVS%NSV_CHSEND), &
450 sm%CHS%SVS%CSV(sm%CHS%SVS%NSV_CHSBEG:sm%CHS%SVS%NSV_CHSEND), &
451 sm%CHS%XDEP(:,1:sm%CHS%SVS%NBEQ) )
453 psfts(:,sm%CHS%SVS%NSV_CHSBEG:sm%CHS%SVS%NSV_CHSEND) = - psv(:,sm%CHS%SVS%NSV_CHSBEG:sm%CHS%SVS%NSV_CHSEND) &
454 * sm%CHS%XDEP(:,1:sm%CHS%SVS%NBEQ)
455 IF (sm%CHS%SVS%NAEREQ > 0 )
THEN
456 CALL
ch_aer_dep(psv(:,sm%CHS%SVS%NSV_AERBEG:sm%CHS%SVS%NSV_AEREND),&
457 psfts(:,sm%CHS%SVS%NSV_AERBEG:sm%CHS%SVS%NSV_AEREND),&
458 zustar,zresa_sea,pta,prhoa)
462 psfts(:,sm%CHS%SVS%NSV_CHSBEG:sm%CHS%SVS%NSV_CHSEND) =0.
463 IF (sm%CHS%SVS%NSV_AEREND.GT.sm%CHS%SVS%NSV_AERBEG) psfts(:,sm%CHS%SVS%NSV_AERBEG:sm%CHS%SVS%NSV_AEREND) =0.
467 IF (sm%CHS%SVS%NSLTEQ>0)
THEN
468 islt = sm%CHS%SVS%NSV_SLTEND - sm%CHS%SVS%NSV_SLTBEG + 1
474 psfts(:,sm%CHS%SVS%NSV_SLTBEG:sm%CHS%SVS%NSV_SLTEND) )
477 IF (sm%CHS%SVS%NDSTEQ>0)
THEN
478 CALL
dslt_dep(psv(:,sm%CHS%SVS%NSV_DSTBEG:sm%CHS%SVS%NSV_DSTEND), psfts(:,sm%CHS%SVS%NSV_DSTBEG:sm%CHS%SVS%NSV_DSTEND), &
479 zustar, zresa_sea, pta, prhoa, dst%XEMISSIG_DST, dst%XEMISRADIUS_DST, &
480 jpmode_dst, xdensity_dst, xmolarweight_dst, zconvertfacm0_dst, &
481 zconvertfacm6_dst, zconvertfacm3_dst, lvarsig_dst, lrgfix_dst, &
485 psfts(:,sm%CHS%SVS%NSV_DSTBEG:sm%CHS%SVS%NSV_DSTEND), &
487 dst%XEMISRADIUS_DST, &
493 lvarsig_dst, lrgfix_dst )
497 IF (sm%CHS%SVS%NSLTEQ>0)
THEN
498 CALL
dslt_dep(psv(:,sm%CHS%SVS%NSV_SLTBEG:sm%CHS%SVS%NSV_SLTEND), psfts(:,sm%CHS%SVS%NSV_SLTBEG:sm%CHS%SVS%NSV_SLTEND), &
499 zustar, zresa_sea, pta, prhoa, slt%XEMISSIG_SLT, slt%XEMISRADIUS_SLT, &
500 jpmode_slt, xdensity_slt, xmolarweight_slt, zconvertfacm0_slt, &
501 zconvertfacm6_slt, zconvertfacm3_slt, lvarsig_slt, lrgfix_slt, &
505 psfts(:,sm%CHS%SVS%NSV_SLTBEG:sm%CHS%SVS%NSV_SLTEND), &
507 slt%XEMISRADIUS_SLT, &
513 lvarsig_slt, lrgfix_slt )
521 ptstep, pta, zqa, ppa, pps, prhoa, pu, &
522 pv, pzref, puref, zcd, zcdn, zch, zce, zri, zhu, &
523 zz0h, zqsat, zsfth, zsftq, zsfu, zsfv, &
524 pdir_sw, psca_sw, plw, zdir_alb, zsca_alb, &
525 zemis, ztrad, prain, psnow, &
526 zcd_ice, zcdn_ice, zch_ice, zce_ice, zri_ice, &
527 zz0_ice, zz0h_ice, zqsat_ice, zsfth_ice, zsftq_ice, &
534 IF (sm%S%LHANDLE_SIC)
THEN
535 psfth(:) = zsfth(:) * ( 1 - sm%S%XSIC (:)) + zsfth_ice(:) * sm%S%XSIC(:)
536 psftq(:) = zsftq(:) * ( 1 - sm%S%XSIC (:)) + zsftq_ice(:) * sm%S%XSIC(:)
537 psfu(:) = zsfu(:) * ( 1 - sm%S%XSIC (:)) + zsfu_ice(:) * sm%S%XSIC(:)
538 psfv(:) = zsfv(:) * ( 1 - sm%S%XSIC (:)) + zsfv_ice(:) * sm%S%XSIC(:)
552 IF (sm%S%LINTERPOL_SSS .AND. mod(sm%S%TTIME%TIME,xday) == 0.)
THEN
554 sm%S%TTIME%TDATE%YEAR,sm%S%TTIME%TDATE%MONTH,sm%S%TTIME%TDATE%DAY,
'S',sm%S%XSSS)
555 IF (any(sm%S%XSSS(:)<0.0))
THEN
556 CALL
abor1_sfx(
'COUPLING_SEAFLUX_N: XSSS should be >=0')
564 IF (sm%S%LHANDLE_SIC)
THEN
565 IF (sm%S%LINTERPOL_SIC)
THEN
566 IF ((mod(sm%S%TTIME%TIME,xday) == 0.) .OR. (ptimec <= ptstep ))
THEN
569 sm%S%TTIME%TDATE%YEAR,sm%S%TTIME%TDATE%MONTH,sm%S%TTIME%TDATE%DAY,
'C',sm%S%XFSIC)
570 IF (any(sm%S%XFSIC(:)>1.0).OR.any(sm%S%XFSIC(:)<0.0))
THEN
571 CALL
abor1_sfx(
'COUPLING_SEAFLUX_N: FSIC should be >=0 and <=1')
575 IF (sm%S%LINTERPOL_SIT)
THEN
576 IF ((mod(sm%S%TTIME%TIME,xday) == 0.) .OR. (ptimec <= ptstep ))
THEN
579 sm%S%TTIME%TDATE%YEAR,sm%S%TTIME%TDATE%MONTH,sm%S%TTIME%TDATE%DAY,
'H',sm%S%XFSIT)
580 IF (any(sm%S%XFSIT(:)<0.0))
THEN
581 CALL
abor1_sfx(
'COUPLING_SEAFLUX_N: XFSIT should be >=0')
585 IF (sm%S%CSEAICE_SCHEME==
'GELATO')
THEN
587 hprogram,ptimec, ptstep, sm%S%TGLT, sm%S%XSST, sm%S%XSSS, &
588 sm%S%XFSIC, sm%S%XFSIT, sm%S%XSIC, sm%S%XTICE, sm%S%XICE_ALB)
598 IF (sm%O%LMERCATOR)
THEN
601 IF (sm%DTS%LSST_DATA)
THEN
603 sm%OR%XSEAT_REL(:,nockmin+1), sm%S%TTIME)
606 sm%OR%XSEAT_REL(:,nockmin+1) = sm%OR%XSEAT_REL(:,nockmin+1) - xtt
609 CALL
mod1d_n(sm%DGO, sm%O, sm%OR, sm%SG, sm%S, &
610 hprogram,ptime,zemis(:),zdir_alb(:,1:ksw),zsca_alb(:,1:ksw),&
611 plw(:),psca_sw(:,1:ksw),pdir_sw(:,1:ksw),psfth(:), &
612 psftq(:),psfu(:),psfv(:),prain(:),sm%S%XSST(:))
614 ELSEIF(sm%DTS%LSST_DATA)
THEN
619 sm%S%XSST, sm%S%TTIME)
621 ELSEIF (sm%S%LINTERPOL_SST.AND.mod(sm%S%TTIME%TIME,xday) == 0.)
THEN
626 sm%S%TTIME%TDATE%YEAR,sm%S%TTIME%TDATE%MONTH,sm%S%TTIME%TDATE%DAY,
'T',sm%S%XSST)
636 IF (sm%S%LHANDLE_SIC)
THEN
637 IF (sm%S%CSEAICE_SCHEME/=
'GELATO')
THEN
640 sm%S%XICE_ALB=xalbseaice
642 ptsurf(:) = sm%S%XSST (:) * ( 1 - sm%S%XSIC (:)) + sm%S%XTICE(:) * sm%S%XSIC(:)
643 pqsurf(:) = zqsat(:) * ( 1 - sm%S%XSIC (:)) + zqsat_ice(:) * sm%S%XSIC(:)
644 zz0w(:) = ( 1 - sm%S%XSIC(:) ) * 1.0/(log(puref(:)/zz0(:)) **2) + &
645 sm%S%XSIC(:) * 1.0/(log(puref(:)/zz0_ice(:))**2)
646 pz0(:) = puref(:) * exp( - sqrt( 1./ zz0w(:) ))
647 zz0w(:) = ( 1 - sm%S%XSIC(:) ) * 1.0/(log(pzref(:)/zz0h(:)) **2) + &
648 sm%S%XSIC(:) * 1.0/(log(pzref(:)/zz0h_ice(:))**2)
649 pz0h(:) = pzref(:) * exp( - sqrt( 1./ zz0w(:) ))
651 ptsurf(:) = sm%S%XSST (:)
653 pz0(:) = sm%S%XZ0 (:)
662 CALL
update_rad_sea(sm%S%CSEA_ALB,sm%S%XSST,pzenith2,xtts,sm%S%XEMIS, &
663 sm%S%XDIR_ALB,sm%S%XSCA_ALB,pdir_alb,psca_alb,&
664 pemis,ptrad,sm%S%LHANDLE_SIC,sm%S%XTICE,sm%S%XSIC, &
669 IF (lhook) CALL dr_hook(
'COUPLING_SEAFLUX_N',1,zhook_handle)
679 REAL,
DIMENSION(KI),
INTENT(IN) :: pcd
680 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfu
681 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfv
683 REAL,
DIMENSION(KI) :: zustar2
684 REAL,
DIMENSION(KI) :: zwork
686 REAL(KIND=JPRB) :: zhook_handle
688 IF (lhook) CALL dr_hook(
'COUPLING_SEAFLUX_N: SEA_MOMENTUM_FLUXES',0,zhook_handle)
693 IF(cimplicit_wind==
'OLD')
THEN
695 zustar2(:) = (pcd(:)*zwind(:)*ppew_b_coef(:)) / &
696 (1.0-prhoa(:)*pcd(:)*zwind(:)*ppew_a_coef(:))
699 zustar2(:) = (pcd(:)*zwind(:)*(2.*ppew_b_coef(:)-zwind(:))) /&
700 (1.0-2.0*prhoa(:)*pcd(:)*zwind(:)*ppew_a_coef(:))
702 zwork(:) = prhoa(:)*ppew_a_coef(:)*zustar2(:) + ppew_b_coef(:)
703 zwork(:) = max(zwork(:),0.)
705 WHERE(ppew_a_coef(:)/= 0.)
706 zustar2(:) = max( ( zwork(:) - ppew_b_coef(:) ) / (prhoa(:)*ppew_a_coef(:)), 0.)
714 psfu(:) = - prhoa(:) * zustar2(:) * zu(:) / zwind(:)
715 psfv(:) = - prhoa(:) * zustar2(:) * zv(:) / zwind(:)
718 IF (lhook) CALL dr_hook(
'COUPLING_SEAFLUX_N: SEA_MOMENTUM_FLUXES',1,zhook_handle)
732 REAL(KIND=JPRB) :: zhook_handle
734 IF (lhook) CALL dr_hook(
'COUPLING_SEAFLUX_N: COMPLEMENT_EACH_OTHER_FLUX',0,zhook_handle)
736 WHERE (sm%S%XSIC(:) == 1.)
749 WHERE (sm%S%XSIC(:) == 0.)
763 IF (lhook) CALL dr_hook(
'COUPLING_SEAFLUX_N: COMPLEMENT_EACH_OTHER_FLUX',1,zhook_handle)
subroutine update_rad_sea(HALB, PSST, PZENITH, PTT, PEMIS, PDIR_ALB, PSCA_ALB, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD, OHANDLE_SIC, PTICE, PSIC, PICE_ALB, PU, PV)
subroutine seaice_gelato1d_n(S, HPROGRAM, PTIMEC, PTSTEP, TPGLT, PSST, PSSS, PFSIC, PFSIT, PSIC, PTICE, PICE_ALB)
subroutine sea_momentum_fluxes(PCD, PSFU, PSFV)
subroutine sst_update(DTS, S, PSST, TTIME)
subroutine coupling_slt_n(SLT, KI, KSLT, PWIND, PSFSLT)
subroutine coupling_iceflux_n(KI, PTA, PEXNA, PRHOA, PTICE, PEXNS, PQA, PRAIN, PSNOW, PWIND, PZREF, PUREF, PPS, PTWAT, PTTS, PSFTH, PSFTQ, OHANDLE_SIC, PMASK, PQSAT, PZ0, PUSTAR, PCD, PCDN, PCH, PRI, PRESA, PZ0H)
subroutine ch_aer_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF)
subroutine coupling_seaflux_n(SM, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
subroutine diag_inline_seaflux_n(DGS, DGSI, S, PTSTEP, PTA, PQA, PPA, PPS, PRHOA, PZONA, PMERA, PHT, PHW, PCD, PCDN, PCH, PCE, PRI, PHU, PZ0H, PQSAT, PSFTH, PSFTQ, PSFZON, PSFMER, PDIR_SW, PSCA_SW, PLW, PDIR_ALB, PSCA_ALB, PEMIS, PTRAD, PRAIN, PSNOW, PCD_ICE, PCDN_ICE, PCH_ICE, PCE_ICE, PRI_ICE, PZ0_ICE, PZ0H_ICE, PQSAT_ICE, PSFTH_ICE, PSFTQ_ICE, PSFZON_ICE, PSFMER_ICE)
subroutine abor1_sfx(YTEXT)
subroutine complement_each_other_flux
subroutine mr98(PZ0SEA, PTA, PEXNA, PRHOA, PSST, PEXNS, PQA, PTT, PVMOD, PZREF, PUREF, PPS, PQSAT, PSFTH, PSFTQ, PUSTAR, PCD, PCDN, PCH, PRI, PRESA, PZ0HSEA)
subroutine massflux2momentflux(PFLUX, PRHODREF, PEMISRADIUS, PEMISSIG, KMDE, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX)
subroutine dslt_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF, PEMISSIG, PEMISRADIUS, KPMODE, PDENSITY, PMOLARWEIGHT, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX, HVERMOD)
subroutine interpol_sst_mth(S, KYEAR, KMONTH, KDAY, HFLAG, POUT)
subroutine add_forecast_to_date_surf(KYEAR, KMONTH, KDAY, PSEC)
subroutine ch_dep_water(PRESA, PUSTAR, PTA, PTRAD, PSV, HSV, PDEP)
subroutine mod1d_n(DGO, O, OR, SG, S, HPROGRAM, PTIME, PEMIS, PDIR_ALB, PSCA_ALB, PLW, PSCA_SW, PDIR_SW, PSFTH, PSFTQ, PSFU, PSFV, PRAIN, PSST)
subroutine ecume_seaflux(PZ0SEA, PMASK, KSIZE_WATER, KSIZE_ICE, PTA, PEXNA, PRHOA, PSST, PSSS, PEXNS, PQA, PRAIN, PSNOW, PVMOD, PZREF, PUREF, PPS, PPA, PICHCE, OPRECIP, OPWEBB, OPWG, KZ0, OHANDLE_SIC, PQSAT, PSFTH, PSFTQ, PUSTAR, PCD, PCDN, PCH, PCE, PRI, PRESA, PZ0HSEA, OPERTFLUX, PPERTFLUX, HECUME)
subroutine water_flux(PZ0SEA, PTA, PEXNA, PRHOA, PSST, PEXNS, PQA, PRR, PRS, PTT, PVMOD, PZREF, PUREF, PPS, OHANDLE_SIC, PQSAT, PSFTH, PSFTQ, PUSTAR, PCD, PCDN, PCH, PRI, PRESA, PZ0HSEA)
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)