7 HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, &
8 KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, &
9 PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, &
10 PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, &
11 PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, &
12 PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, &
13 PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST )
77 USE modi_ecume_seaflux
78 USE modi_coare30_seaflux
79 USE modi_add_forecast_to_date_surf
81 USE modi_diag_inline_seaflux_n
86 USE modi_interpol_sst_mth
87 USE modi_update_rad_sea
100 USE modi_coupling_iceflux_n
101 USE modi_seaice_gelato1d_n
103 USE modi_coupling_slt_n
113 TYPE(
ocean_t),
INTENT(INOUT) :: O
115 TYPE(
grid_t),
INTENT(INOUT) :: G
117 TYPE(
dst_t),
INTENT(INOUT) :: DST
118 TYPE(
slt_t),
INTENT(INOUT) :: SLT
120 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
121 CHARACTER(LEN=1),
INTENT(IN) :: HCOUPLING
124 REAL,
INTENT(IN) :: PTIMEC
125 INTEGER,
INTENT(IN) :: KYEAR
126 INTEGER,
INTENT(IN) :: KMONTH
127 INTEGER,
INTENT(IN) :: KDAY
128 REAL,
INTENT(IN) :: PTIME
129 INTEGER,
INTENT(IN) :: KI
130 INTEGER,
INTENT(IN) :: KSV
131 INTEGER,
INTENT(IN) :: KSW
132 REAL,
DIMENSION(KI),
INTENT(IN) :: PTSUN
133 REAL,
INTENT(IN) :: PTSTEP
134 REAL,
DIMENSION(KI),
INTENT(IN) :: PZREF
135 REAL,
DIMENSION(KI),
INTENT(IN) :: PUREF
137 REAL,
DIMENSION(KI),
INTENT(IN) :: PTA
138 REAL,
DIMENSION(KI),
INTENT(IN) :: PQA
139 REAL,
DIMENSION(KI),
INTENT(IN) :: PRHOA
140 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: PSV
143 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: HSV
144 REAL,
DIMENSION(KI),
INTENT(IN) :: PU
145 REAL,
DIMENSION(KI),
INTENT(IN) :: PV
146 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: PDIR_SW
148 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: PSCA_SW
150 REAL,
DIMENSION(KSW),
INTENT(IN) :: PSW_BANDS
151 REAL,
DIMENSION(KI),
INTENT(IN) :: PZENITH
152 REAL,
DIMENSION(KI),
INTENT(IN) :: PZENITH2
153 REAL,
DIMENSION(KI),
INTENT(IN) :: PAZIM
154 REAL,
DIMENSION(KI),
INTENT(IN) :: PLW
156 REAL,
DIMENSION(KI),
INTENT(IN) :: PPS
157 REAL,
DIMENSION(KI),
INTENT(IN) :: PPA
158 REAL,
DIMENSION(KI),
INTENT(IN) :: PCO2
159 REAL,
DIMENSION(KI),
INTENT(IN) :: PSNOW
160 REAL,
DIMENSION(KI),
INTENT(IN) :: PRAIN
162 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFTH
163 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFTQ
164 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFU
165 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFV
166 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFCO2
167 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: PSFTS
169 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTRAD
170 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: PDIR_ALB
171 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: PSCA_ALB
172 REAL,
DIMENSION(KI),
INTENT(OUT) :: PEMIS
174 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTSURF
175 REAL,
DIMENSION(KI),
INTENT(OUT) :: PZ0
176 REAL,
DIMENSION(KI),
INTENT(OUT) :: PZ0H
177 REAL,
DIMENSION(KI),
INTENT(OUT) :: PQSURF
179 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEW_A_COEF
180 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEW_B_COEF
181 REAL,
DIMENSION(KI),
INTENT(IN) :: PPET_A_COEF
182 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEQ_A_COEF
183 REAL,
DIMENSION(KI),
INTENT(IN) :: PPET_B_COEF
184 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEQ_B_COEF
185 CHARACTER(LEN=2),
INTENT(IN) :: HTEST
189 REAL,
DIMENSION(KI,KSW) :: ZDIR_ALB
190 REAL,
DIMENSION(KI,KSW) :: ZSCA_ALB
192 REAL,
DIMENSION(KI) :: ZEXNA
193 REAL,
DIMENSION(KI) :: ZEXNS
194 REAL,
DIMENSION(KI) :: ZU
195 REAL,
DIMENSION(KI) :: ZV
196 REAL,
DIMENSION(KI) :: ZWIND
197 REAL,
DIMENSION(KI) :: ZCD
198 REAL,
DIMENSION(KI) :: ZCD_ICE
199 REAL,
DIMENSION(KI) :: ZCDN
200 REAL,
DIMENSION(KI) :: ZCDN_ICE
201 REAL,
DIMENSION(KI) :: ZCH
202 REAL,
DIMENSION(KI) :: ZCH_ICE
203 REAL,
DIMENSION(KI) :: ZCE
204 REAL,
DIMENSION(KI) :: ZCE_ICE
205 REAL,
DIMENSION(KI) :: ZRI
206 REAL,
DIMENSION(KI) :: ZRI_ICE
207 REAL,
DIMENSION(KI) :: ZRESA_SEA
208 REAL,
DIMENSION(KI) :: ZRESA_SEA_ICE
209 REAL,
DIMENSION(KI) :: ZUSTAR
210 REAL,
DIMENSION(KI) :: ZUSTAR_ICE
211 REAL,
DIMENSION(KI) :: ZZ0
212 REAL,
DIMENSION(KI) :: ZZ0_ICE
213 REAL,
DIMENSION(KI) :: ZZ0H
214 REAL,
DIMENSION(KI) :: ZZ0H_ICE
215 REAL,
DIMENSION(KI) :: ZZ0W
216 REAL,
DIMENSION(KI) :: ZQSAT
217 REAL,
DIMENSION(KI) :: ZQSAT_ICE
219 REAL,
DIMENSION(KI) :: ZSFTH
220 REAL,
DIMENSION(KI) :: ZSFTQ
221 REAL,
DIMENSION(KI) :: ZSFU
222 REAL,
DIMENSION(KI) :: ZSFV
224 REAL,
DIMENSION(KI) :: ZSFTH_ICE
225 REAL,
DIMENSION(KI) :: ZSFTQ_ICE
226 REAL,
DIMENSION(KI) :: ZSFU_ICE
227 REAL,
DIMENSION(KI) :: ZSFV_ICE
229 REAL,
DIMENSION(KI) :: ZHU
230 REAL,
DIMENSION(KI) :: ZQA
231 REAL,
DIMENSION(KI) :: ZEMIS
232 REAL,
DIMENSION(KI) :: ZTRAD
234 REAL,
DIMENSION(KI) :: ZSST
235 REAL,
DIMENSION(KI) :: ZMASK
237 REAL :: ZCONVERTFACM0_SLT, ZCONVERTFACM0_DST
238 REAL :: ZCONVERTFACM3_SLT, ZCONVERTFACM3_DST
239 REAL :: ZCONVERTFACM6_SLT, ZCONVERTFACM6_DST
241 INTEGER :: ISIZE_WATER
248 INTEGER :: IBEG, IEND
250 REAL(KIND=JPRB) :: ZHOOK_HANDLE
254 IF (
lhook)
CALL dr_hook(
'COUPLING_SEAFLUX_N',0,zhook_handle)
255 IF (htest/=
'OK')
THEN 256 CALL abor1_sfx(
'COUPLING_SEAFLUXN: FATAL ERROR DURING ARGUMENT TRANSFER')
304 zu(:)=pu(:)-s%XUMER(:)
305 zv(:)=pv(:)-s%XVMER(:)
311 zwind(:) = sqrt(zu(:)**2+zv(:)**2)
317 zqa(:) = pqa(:) / prhoa(:)
323 s%TTIME%TIME = s%TTIME%TIME + ptstep
330 IF (s%LHANDLE_SIC)
THEN 332 isize_water =
SIZE(zmask)
334 zsst(:)=max(s%XSST(:),
xttsi)
340 WHERE ( s%XSIC(:) > 0. ) zmask(:)=1.
342 WHERE ( s%XSST(:) -
xtts <= 10. ) zmask(:)=1.
343 IF (s%LINTERPOL_SIC)
WHERE (s%XFSIC(:) > 0. ) zmask(:)=1.
344 IF (s%LINTERPOL_SIT)
WHERE (s%XFSIT(:) > 0. ) zmask(:)=1.
347 zmask(:) = s%XSST(:) -
xtts 348 isize_water =
count(zmask(:)>=0.)
349 isize_ice =
SIZE(s%XSST) - isize_water
352 SELECT CASE (s%CSEA_FLUX)
354 CALL water_flux(s%XZ0, pta, zexna, prhoa, zsst, zexns, zqa, &
355 prain, psnow,
xtts, zwind, pzref, puref, &
356 pps, s%LHANDLE_SIC, zqsat, zsfth, zsftq, &
357 zustar, zcd, zcdn, zch, zri, zresa_sea, zz0h )
359 CALL mr98 (s%XZ0, pta, zexna, prhoa, s%XSST, zexns, zqa, &
360 xtts, zwind, pzref, puref, pps, zqsat, &
361 zsfth, zsftq, zustar, &
362 zcd, zcdn, zch, zri, zresa_sea, zz0h )
364 CASE (
'ECUME ',
'ECUME6')
366 pta, zexna ,prhoa, zsst, zexns, zqa, &
367 prain, psnow, zwind, pzref, puref, pps, ppa, &
368 zqsat, zsfth, zsftq, zustar, &
369 zcd, zcdn, zch, zce, zri, zresa_sea, zz0h )
372 pta, zexna ,prhoa, zsst, zexns, zqa, prain, &
373 psnow, zwind, pzref, puref, pps, zqsat, &
374 zsfth, zsftq, zustar, &
375 zcd, zcdn, zch, zce, zri, zresa_sea, zz0h )
382 iswb =
SIZE(psw_bands)
385 zdir_alb(:,jswb) = s%XDIR_ALB(:)
386 zsca_alb(:,jswb) = s%XSCA_ALB(:)
389 IF (s%LHANDLE_SIC)
THEN 390 zemis(:) = (1 - s%XSIC(:)) * xemiswat + s%XSIC(:) * xemiswatice
391 ztrad(:) = (((1 - s%XSIC(:)) * xemiswat * s%XSST (:)**4 + &
392 s%XSIC(:) * xemiswatice * s%XTICE(:)**4)/ zemis(:)) ** 0.25
394 ztrad(:) = s%XSST (:)
395 zemis(:) = s%XEMIS(:)
405 zqa, prain, psnow, zwind, pzref, puref, &
406 pps, s%XSST,
xtts, zsfth_ice, zsftq_ice, &
407 s%LHANDLE_SIC, zmask, zqsat_ice, zz0_ice, &
408 zustar_ice, zcd_ice, zcdn_ice, zch_ice, &
409 zri_ice, zresa_sea_ice, zz0h_ice )
436 psfco2(:) = - zwind(:)**2 * 1.13e-3 * 8.7 * 44.e-3 / ( 365*24*3600 )
443 IF (chs%SVS%NBEQ>0)
THEN 445 IF (chs%CCH_DRY_DEP ==
"WES89")
THEN 447 ibeg = chs%SVS%NSV_CHSBEG
448 iend = chs%SVS%NSV_CHSEND
450 CALL ch_dep_water (zresa_sea, zustar, pta, ztrad,psv(:,ibeg:iend), &
451 chs%SVS%CSV(ibeg:iend), chs%XDEP(:,1:chs%SVS%NBEQ) )
453 psfts(:,ibeg:iend) = - psv(:,ibeg:iend) * chs%XDEP(:,1:chs%SVS%NBEQ)
455 IF (chs%SVS%NAEREQ > 0 )
THEN 457 ibeg = chs%SVS%NSV_AERBEG
458 iend = chs%SVS%NSV_AEREND
460 CALL ch_aer_dep(psv(:,ibeg:iend),psfts(:,ibeg:iend),zustar,zresa_sea,pta,prhoa)
466 ibeg = chs%SVS%NSV_AERBEG
467 iend = chs%SVS%NSV_AEREND
469 psfts(:,ibeg:iend) =0.
470 IF (iend.GT.ibeg) psfts(:,ibeg:iend) =0.
476 IF (chs%SVS%NDSTEQ>0)
THEN 478 ibeg = chs%SVS%NSV_DSTBEG
479 iend = chs%SVS%NSV_DSTEND
481 CALL dslt_dep(psv(:,ibeg:iend), psfts(:,ibeg:iend), zustar, zresa_sea, pta, &
482 prhoa, dst%XEMISSIG_DST, dst%XEMISRADIUS_DST,
jpmode_dst, &
487 psfts(:,ibeg:iend), &
489 dst%XEMISRADIUS_DST, &
500 IF (chs%SVS%NSLTEQ>0)
THEN 502 ibeg = chs%SVS%NSV_SLTBEG
503 iend = chs%SVS%NSV_SLTEND
505 islt = iend - ibeg + 1
513 CALL dslt_dep(psv(:,ibeg:iend), psfts(:,ibeg:iend), zustar, zresa_sea, pta, &
514 prhoa, slt%XEMISSIG_SLT, slt%XEMISRADIUS_SLT,
jpmode_slt, &
519 psfts(:,ibeg:iend), &
521 slt%XEMISRADIUS_SLT, &
536 s, ptstep, pta, zqa, ppa, pps, prhoa, pu, &
537 pv, pzref, puref, zcd, zcdn, zch, zce, zri, zhu,&
538 zz0h, zqsat, zsfth, zsftq, zsfu, zsfv, &
539 pdir_sw, psca_sw, plw, zdir_alb, zsca_alb, &
540 zemis, ztrad, prain, psnow, &
541 zcd_ice, zcdn_ice, zch_ice, zce_ice, zri_ice, &
542 zz0_ice, zz0h_ice, zqsat_ice, zsfth_ice, &
543 zsftq_ice, zsfu_ice, zsfv_ice)
549 IF (s%LHANDLE_SIC)
THEN 550 psfth(:) = zsfth(:) * ( 1 - s%XSIC (:)) + zsfth_ice(:) * s%XSIC(:)
551 psftq(:) = zsftq(:) * ( 1 - s%XSIC (:)) + zsftq_ice(:) * s%XSIC(:)
552 psfu(:) = zsfu(:) * ( 1 - s%XSIC (:)) + zsfu_ice(:) * s%XSIC(:)
553 psfv(:) = zsfv(:) * ( 1 - s%XSIC (:)) + zsfv_ice(:) * s%XSIC(:)
567 IF (s%LINTERPOL_SSS .AND. mod(s%TTIME%TIME,
xday) == 0.)
THEN 569 IF (any(s%XSSS(:)<0.0))
THEN 570 CALL abor1_sfx(
'COUPLING_SEAFLUX_N: XSSS should be >=0')
578 IF (s%LHANDLE_SIC)
THEN 580 IF (s%LINTERPOL_SIC)
THEN 581 IF ((mod(s%TTIME%TIME,
xday) == 0.) .OR. (ptimec <= ptstep ))
THEN 584 IF (any(s%XFSIC(:)>1.0).OR.any(s%XFSIC(:)<0.0))
THEN 585 CALL abor1_sfx(
'COUPLING_SEAFLUX_N: FSIC should be >=0 and <=1')
590 IF (s%LINTERPOL_SIT)
THEN 591 IF ((mod(s%TTIME%TIME,
xday) == 0.) .OR. (ptimec <= ptstep ))
THEN 594 IF (any(s%XFSIT(:)<0.0))
THEN 595 CALL abor1_sfx(
'COUPLING_SEAFLUX_N: XFSIT should be >=0')
600 IF (s%CSEAICE_SCHEME==
'GELATO')
THEN 611 IF (o%LMERCATOR)
THEN 614 IF (dts%LSST_DATA)
THEN 621 CALL mod1d_n(dgs%GO, o, or, g%XLAT, s, &
622 hprogram,ptime,zemis(:),zdir_alb(:,1:ksw),zsca_alb(:,1:ksw),&
623 plw(:),psca_sw(:,1:ksw),pdir_sw(:,1:ksw),psfth(:), &
624 psftq(:),psfu(:),psfv(:),prain(:))
626 ELSEIF(dts%LSST_DATA)
THEN 632 ELSEIF (s%LINTERPOL_SST.AND.mod(s%TTIME%TIME,
xday) == 0.)
THEN 646 IF (s%LHANDLE_SIC)
THEN 647 IF (s%CSEAICE_SCHEME/=
'GELATO')
THEN 652 ptsurf(:) = s%XSST(:) * ( 1 - s%XSIC (:)) + s%XTICE(:) * s%XSIC(:)
653 pqsurf(:) = zqsat(:) * ( 1 - s%XSIC (:)) + zqsat_ice(:) * s%XSIC(:)
654 zz0w(:) = ( 1 - s%XSIC(:) ) * 1.0/(log(puref(:)/zz0(:)) **2) + &
655 s%XSIC(:) * 1.0/(log(puref(:)/zz0_ice(:))**2)
656 pz0(:) = puref(:) * exp( - sqrt( 1./ zz0w(:) ))
657 zz0w(:) = ( 1 - s%XSIC(:) ) * 1.0/(log(pzref(:)/zz0h(:)) **2) + &
658 s%XSIC(:) * 1.0/(log(pzref(:)/zz0h_ice(:))**2)
659 pz0h(:) = pzref(:) * exp( - sqrt( 1./ zz0w(:) ))
661 ptsurf(:) = s%XSST(:)
676 IF (
lhook)
CALL dr_hook(
'COUPLING_SEAFLUX_N',1,zhook_handle)
686 REAL,
DIMENSION(KI),
INTENT(IN) :: PCD
687 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFU
688 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFV
690 REAL,
DIMENSION(KI) :: ZUSTAR2
691 REAL,
DIMENSION(KI) :: ZWORK
693 REAL(KIND=JPRB) :: ZHOOK_HANDLE
695 IF (
lhook)
CALL dr_hook(
'COUPLING_SEAFLUX_N: SEA_MOMENTUM_FLUXES',0,zhook_handle)
702 zustar2(:) = (pcd(:)*zwind(:)*ppew_b_coef(:)) / &
703 (1.0-prhoa(:)*pcd(:)*zwind(:)*ppew_a_coef(:))
706 zustar2(:) = (pcd(:)*zwind(:)*(2.*ppew_b_coef(:)-zwind(:))) /&
707 (1.0-2.0*prhoa(:)*pcd(:)*zwind(:)*ppew_a_coef(:))
709 zwork(:) = prhoa(:)*ppew_a_coef(:)*zustar2(:) + ppew_b_coef(:)
710 zwork(:) = max(zwork(:),0.)
712 WHERE(ppew_a_coef(:)/= 0.)
713 zustar2(:) = max( ( zwork(:) - ppew_b_coef(:) ) / (prhoa(:)*ppew_a_coef(:)), 0.)
721 psfu(:) = - prhoa(:) * zustar2(:) * zu(:) / zwind(:)
722 psfv(:) = - prhoa(:) * zustar2(:) * zv(:) / zwind(:)
725 IF (
lhook)
CALL dr_hook(
'COUPLING_SEAFLUX_N: SEA_MOMENTUM_FLUXES',1,zhook_handle)
739 REAL(KIND=JPRB) :: ZHOOK_HANDLE
741 IF (
lhook)
CALL dr_hook(
'COUPLING_SEAFLUX_N: COMPLEMENT_EACH_OTHER_FLUX',0,zhook_handle)
743 WHERE (s%XSIC(:) == 1.)
756 WHERE (s%XSIC(:) == 0.)
770 IF (
lhook)
CALL dr_hook(
'COUPLING_SEAFLUX_N: COMPLEMENT_EACH_OTHER_FLUX',1,zhook_handle)
subroutine massflux2momentflux(PFLUX, PRHODREF, PEMISRADIUS, PEMISSIG, KMDE, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX)
character(len=3) cimplicit_wind
real, parameter xmolarweight_slt
subroutine sea_momentum_fluxes(PCD, PSFU, PSFV)
real, parameter xmolarweight_dst
subroutine coupling_slt_n(SLT, KI, KSLT, PWIND, PSFSLT)
real, parameter xdensity_dst
subroutine seaice_gelato1d_n(S, HPROGRAM, PTIMEC, PTSTEP)
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 sst_update(DTS, S, PSST)
subroutine abor1_sfx(YTEXT)
subroutine mod1d_n(DGO, O, OR, PLAT, S, HPROGRAM, PTIME, PEMIS, PDIR_ALB, PSCA_ALB, PLW, PSCA_SW, PDIR_SW, PSFTH, PSFTQ, PSFU, PSFV, PRAIN)
subroutine water_flux(PZ0SEA,
subroutine interpol_sst_mth(S, HFLAG)
subroutine complement_each_other_flux
subroutine update_rad_sea(S, PZENITH, PTT, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD, PU, PV)
subroutine ecume_seaflux(S, PMASK, KSIZE_WATER, KSIZE_ICE, PTA, PEXNA, PRHOA, PSST, PEXNS, PQA, PRAIN, PSNOW, PVMOD, PZREF, PUREF, PPS, PPA, PQSAT, PSFTH, PSFTQ, PUSTAR, PCD, PCDN, PCH, PCE, PRI, PRESA, PZ0HSEA)
subroutine dslt_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF, PEMISSIG, PEMISRADIUS, KPMODE, PDENSITY, PMOLARWEIGHT, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX, HVERMOD)
subroutine add_forecast_to_date_surf(KYEAR, KMONTH, KDAY, PSEC)
subroutine diag_inline_seaflux_n(DGO, D, DC, DI, DIC, DGMSI, 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)
real, parameter xdensity_slt
subroutine ch_dep_water(PRESA, PUSTAR, PTA, PTRAD, PSV, HSV, PDEP)
subroutine coupling_seaflux_n(CHS, DTS, DGS, O, OR, G, S, 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 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)