7 PLW, PSFTH_ICE, PSFTQ_ICE, PDIR_SW, PSCA_SW, OSIC)
52 TYPE(
diag_t),
INTENT(INOUT) :: D
53 TYPE(
diag_t),
INTENT(INOUT) :: DI
55 REAL,
INTENT(IN) :: PTSTEP
56 REAL,
DIMENSION(:),
INTENT(IN) :: PSFTQ
57 REAL,
DIMENSION(:),
INTENT(IN) :: PRAIN
58 REAL,
DIMENSION(:),
INTENT(IN) :: PSNOW
59 REAL,
DIMENSION(:),
INTENT(IN) :: PLW
60 REAL,
DIMENSION(:),
INTENT(IN) :: PSFTH_ICE
61 REAL,
DIMENSION(:),
INTENT(IN) :: PSFTQ_ICE
62 REAL,
DIMENSION(:,:),
INTENT(IN):: PDIR_SW
63 REAL,
DIMENSION(:,:),
INTENT(IN):: PSCA_SW
64 LOGICAL,
INTENT(IN) :: OSIC
68 REAL,
DIMENSION(SIZE(S%XICE_ALB)) :: ZSWU, ZTICE4
75 REAL(KIND=JPRB) :: ZHOOK_HANDLE
77 IF (
lhook)
CALL dr_hook(
'DIAG_CPL_ESM_SEA',0,zhook_handle)
85 s%XCPL_SEA_WIND(:) = s%XCPL_SEA_WIND(:) + ptstep * sqrt(d%XZON10M(:)**2+d%XMER10M(:)**2)
89 s%XCPL_SEA_FWSU(:) = s%XCPL_SEA_FWSU(:) + ptstep * d%XFMU(:)
90 s%XCPL_SEA_FWSV(:) = s%XCPL_SEA_FWSV(:) + ptstep * d%XFMV(:)
91 s%XCPL_SEA_FWSM(:) = s%XCPL_SEA_FWSM(:) + ptstep * sqrt(d%XFMU(:)**2+d%XFMV(:)**2)
95 s%XCPL_SEA_SNET(:) = s%XCPL_SEA_SNET(:) + ptstep * (d%XSWD(:) - d%XSWU(:))
99 s%XCPL_SEA_HEAT(:) = s%XCPL_SEA_HEAT(:) + ptstep * (d%XGFLUX(:) + d%XSWU(:) - d%XSWD(:))
103 s%XCPL_SEA_EVAP(:) = s%XCPL_SEA_EVAP(:) + ptstep * psftq(:)
107 s%XCPL_SEA_RAIN(:) = s%XCPL_SEA_RAIN(:) + ptstep * prain(:)
108 s%XCPL_SEA_SNOW(:) = s%XCPL_SEA_SNOW(:) + ptstep * psnow(:)
115 ini =
SIZE(pdir_sw,1)
116 iswb =
SIZE(pdir_sw,2)
126 zswu(ji) = zswu(ji) + (pdir_sw(ji,jswb)+psca_sw(ji,jswb)) * s%XICE_ALB(ji)
131 s%XCPL_SEAICE_SNET(:) = s%XCPL_SEAICE_SNET(:) + ptstep * (d%XSWD(:) - zswu(:))
136 s%XCPL_SEAICE_HEAT(:) = s%XCPL_SEAICE_HEAT(:) + ptstep * &
137 ( plw(:) - di%XLWU(:) - psfth_ice(:) -
xlstt*psftq_ice(:) )
139 ztice4(:)=s%XTICE(:)**4
140 s%XCPL_SEAICE_HEAT(:) = s%XCPL_SEAICE_HEAT(:) + ptstep * (
xemiswatice*(plw(:)-
xstefan*ztice4(:)) &
141 - psfth_ice(:) -
xlstt*psftq_ice(:) )
146 s%XCPL_SEAICE_EVAP(:) = s%XCPL_SEAICE_EVAP(:) + ptstep * psftq_ice(:)
150 IF (
lhook)
CALL dr_hook(
'DIAG_CPL_ESM_SEA',1,zhook_handle)
subroutine diag_cpl_esm_sea(S, D, DI, PTSTEP, PSFTQ, PRAIN, PSNOW, PLW, PSFTH_ICE, PSFTQ_ICE, PDIR_SW, PSCA_SW, OSIC)