Go to the documentation of this file.
198 real(
rp) :: checkfact
202 log_info(
"CPL_vars_setup",*)
'Setup'
203 log_info(
"CPL_vars_setup",*)
'No namelists.'
207 if ( .NOT.
ocean_do .AND. checkfact > 0.0_rp )
then
208 log_error(
"CPL_vars_setup",*)
'Ocean fraction exists, but ocean component has not been called. Please check this inconsistency. STOP.', checkfact
214 if ( .NOT.
land_do .AND. checkfact > 0.0_rp )
then
215 log_error(
"CPL_vars_setup",*)
'Land fraction exists, but land component has not been called. Please check this inconsistency. STOP.', checkfact
221 if ( .NOT.
urban_do .AND. checkfact > 0.0_rp )
then
222 log_error(
"CPL_vars_setup",*)
'Urban fraction exists, but urban component has not been called. Please check this inconsistency. STOP.', checkfact
228 if ( .NOT.
lake_do .AND. checkfact > 0.0_rp )
then
229 log_error(
"CPL_vars_setup",*)
'Lake fraction exists, but lake component has not been called. Please check this inconsistency. STOP.', checkfact
466 log_info(
"CPL_vars_finalize",*)
'Finalize'
603 real(
rp),
intent(in) :: temp (
ia,
ja)
604 real(
rp),
intent(in) :: pres (
ia,
ja)
605 real(
rp),
intent(in) :: w (
ia,
ja)
606 real(
rp),
intent(in) :: u (
ia,
ja)
607 real(
rp),
intent(in) :: v (
ia,
ja)
608 real(
rp),
intent(in) :: dens (
ia,
ja)
609 real(
rp),
intent(in) :: qv (
ia,
ja)
610 real(
rp),
intent(in) :: pbl (
ia,
ja)
611 real(
rp),
intent(in) :: sfc_dens (
ia,
ja)
612 real(
rp),
intent(in) :: sfc_pres (
ia,
ja)
614 real(
rp),
intent(in) :: cossza (
ia,
ja)
615 real(
rp),
intent(in) :: sflx_water (
ia,
ja)
616 real(
rp),
intent(in) :: sflx_engi (
ia,
ja)
617 logical,
intent(in) :: countup
619 integer :: i, j, idir, irgn
795 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
797 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
798 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
799 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
800 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
801 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
802 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
803 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
804 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
805 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
806 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
807 real(
rp),
intent(in) :: u10 (
ia,
ja)
808 real(
rp),
intent(in) :: v10 (
ia,
ja)
809 real(
rp),
intent(in) :: t2 (
ia,
ja)
810 real(
rp),
intent(in) :: q2 (
ia,
ja)
811 logical,
intent(in) :: mask (
ia,
ja)
812 logical,
intent(in) :: countup
814 integer :: i, j, iq, idir, irgn
828 if ( mask(i,j) )
then
909 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
911 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
912 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
913 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
914 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
915 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
916 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
917 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
918 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
919 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
920 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
921 real(
rp),
intent(in) :: u10 (
ia,
ja)
922 real(
rp),
intent(in) :: v10 (
ia,
ja)
923 real(
rp),
intent(in) :: t2 (
ia,
ja)
924 real(
rp),
intent(in) :: q2 (
ia,
ja)
925 logical,
intent(in) :: mask (
ia,
ja)
926 logical,
intent(in) :: countup
928 integer :: i, j, iq, idir, irgn
943 if ( mask(i,j) )
then
1027 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
1029 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
1030 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
1031 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
1032 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
1033 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
1034 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
1035 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
1036 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
1037 real(
rp),
intent(in) :: sflx_shex (
ia,
ja)
1038 real(
rp),
intent(in) :: sflx_lhex (
ia,
ja)
1039 real(
rp),
intent(in) :: sflx_qvex (
ia,
ja)
1040 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
1041 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
1042 real(
rp),
intent(in) :: u10 (
ia,
ja)
1043 real(
rp),
intent(in) :: v10 (
ia,
ja)
1044 real(
rp),
intent(in) :: t2 (
ia,
ja)
1045 real(
rp),
intent(in) :: q2 (
ia,
ja)
1046 logical,
intent(in) :: mask (
ia,
ja)
1047 logical,
intent(in) :: countup
1049 integer :: i, j, iq, idir, irgn
1063 if ( mask(i,j) )
then
1160 real(
rp),
intent(out) :: sfc_temp (
ia,
ja)
1162 real(
rp),
intent(out) :: sfc_z0m (
ia,
ja)
1163 real(
rp),
intent(out) :: sfc_z0h (
ia,
ja)
1164 real(
rp),
intent(out) :: sfc_z0e (
ia,
ja)
1165 real(
rp),
intent(out) :: sflx_mw (
ia,
ja)
1166 real(
rp),
intent(out) :: sflx_mu (
ia,
ja)
1167 real(
rp),
intent(out) :: sflx_mv (
ia,
ja)
1168 real(
rp),
intent(out) :: sflx_sh (
ia,
ja)
1169 real(
rp),
intent(out) :: sflx_lh (
ia,
ja)
1170 real(
rp),
intent(out) :: sflx_shex (
ia,
ja)
1171 real(
rp),
intent(out) :: sflx_lhex (
ia,
ja)
1172 real(
rp),
intent(out) :: sflx_qvex (
ia,
ja)
1173 real(
rp),
intent(out) :: sflx_gh (
ia,
ja)
1174 real(
rp),
intent(out) :: sflx_qtrc (
ia,
ja,
qa)
1175 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1176 real(
rp),
intent(out) :: u10 (
ia,
ja)
1177 real(
rp),
intent(out) :: v10 (
ia,
ja)
1178 real(
rp),
intent(out) :: t2 (
ia,
ja)
1179 real(
rp),
intent(out) :: q2 (
ia,
ja)
1181 integer :: i, j, idir, irgn, iq
1205 sfc_albedo(i,j,idir,irgn) = fact_ocean(i,j) *
ocn_sfc_albedo(i,j,idir,irgn) &
1211 sfc_z0m(i,j) = fact_ocean(i,j) *
ocn_sfc_z0m(i,j) &
1215 sfc_z0h(i,j) = fact_ocean(i,j) *
ocn_sfc_z0h(i,j) &
1219 sfc_z0e(i,j) = fact_ocean(i,j) *
ocn_sfc_z0e(i,j) &
1223 sflx_mw(i,j) = fact_ocean(i,j) *
ocn_sflx_mw(i,j) &
1227 sflx_mu(i,j) = fact_ocean(i,j) *
ocn_sflx_mu(i,j) &
1231 sflx_mv(i,j) = fact_ocean(i,j) *
ocn_sflx_mv(i,j) &
1235 sflx_shex(i,j) = real(ceiling(fact_urban(i,j)-eps), kind=
rp) *
urb_sflx_shex(i,j)
1237 sflx_lhex(i,j) = real(ceiling(fact_urban(i,j)-eps), kind=
rp) *
urb_sflx_lhex(i,j)
1239 sflx_qvex(i,j) = real(ceiling(fact_urban(i,j)-eps), kind=
rp) *
urb_sflx_qvex(i,j)
1241 sflx_sh(i,j) = fact_ocean(i,j) *
ocn_sflx_sh(i,j) &
1246 sflx_lh(i,j) = fact_ocean(i,j) *
ocn_sflx_lh(i,j) &
1251 sflx_gh(i,j) = fact_ocean(i,j) *
ocn_sflx_gh(i,j) &
1256 sflx_qtrc(i,j,iq) = fact_ocean(i,j) *
ocn_sflx_qtrc(i,j,iq) &
1260 sflx_qtrc(i,j,
i_qv) = sflx_qtrc(i,j,
i_qv) + sflx_qvex(i,j)
1266 u10(i,j) = fact_ocean(i,j) *
ocn_u10(i,j) &
1267 + fact_land(i,j) *
lnd_u10(i,j) &
1268 + fact_urban(i,j) *
urb_u10(i,j)
1270 v10(i,j) = fact_ocean(i,j) *
ocn_v10(i,j) &
1271 + fact_land(i,j) *
lnd_v10(i,j) &
1272 + fact_urban(i,j) *
urb_v10(i,j)
1274 t2(i,j) = fact_ocean(i,j) *
ocn_t2(i,j) &
1275 + fact_land(i,j) *
lnd_t2(i,j) &
1276 + fact_urban(i,j) *
urb_t2(i,j)
1278 q2(i,j) = fact_ocean(i,j) *
ocn_q2(i,j) &
1279 + fact_land(i,j) *
lnd_q2(i,j) &
1280 + fact_urban(i,j) *
urb_q2(i,j)
1310 real(
rp),
intent(out) :: temp (
ia,
ja)
1311 real(
rp),
intent(out) :: pres (
ia,
ja)
1312 real(
rp),
intent(out) :: w (
ia,
ja)
1313 real(
rp),
intent(out) :: u (
ia,
ja)
1314 real(
rp),
intent(out) :: v (
ia,
ja)
1315 real(
rp),
intent(out) :: dens (
ia,
ja)
1316 real(
rp),
intent(out) :: qv (
ia,
ja)
1317 real(
rp),
intent(out) :: pbl (
ia,
ja)
1318 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1319 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1321 real(
rp),
intent(out) :: cossza (
ia,
ja)
1322 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1323 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1325 integer :: i, j, idir, irgn
1381 real(
rp),
intent(out) :: temp (
ia,
ja)
1382 real(
rp),
intent(out) :: pres (
ia,
ja)
1383 real(
rp),
intent(out) :: w (
ia,
ja)
1384 real(
rp),
intent(out) :: u (
ia,
ja)
1385 real(
rp),
intent(out) :: v (
ia,
ja)
1386 real(
rp),
intent(out) :: dens (
ia,
ja)
1387 real(
rp),
intent(out) :: qv (
ia,
ja)
1388 real(
rp),
intent(out) :: pbl (
ia,
ja)
1389 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1390 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1392 real(
rp),
intent(out) :: cossza (
ia,
ja)
1393 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1394 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1396 integer :: i, j, idir, irgn
1452 real(
rp),
intent(out) :: temp (
ia,
ja)
1453 real(
rp),
intent(out) :: pres (
ia,
ja)
1454 real(
rp),
intent(out) :: w (
ia,
ja)
1455 real(
rp),
intent(out) :: u (
ia,
ja)
1456 real(
rp),
intent(out) :: v (
ia,
ja)
1457 real(
rp),
intent(out) :: dens (
ia,
ja)
1458 real(
rp),
intent(out) :: qv (
ia,
ja)
1459 real(
rp),
intent(out) :: pbl (
ia,
ja)
1460 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1461 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1463 real(
rp),
intent(out) :: cossza (
ia,
ja)
1464 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1465 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1467 integer :: i, j, idir, irgn
real(rp), dimension(:,:), allocatable, public ocn_atm_cossza
real(rp), dimension(:,:), allocatable, public lnd_atm_qv
real(rp), dimension(:,:), allocatable, public ocn_atm_pres
real(rp), dimension(:,:), allocatable, public landuse_fact_lake
lake factor
integer, parameter, public n_rad_dir
real(rp), dimension(:,:), allocatable, public lnd_sflx_engi
real(rp), dimension(:,:), allocatable, public urb_sflx_shex
real(rp), dimension(:,:), allocatable, public urb_atm_w
real(rp), dimension(:,:), allocatable, public ocn_sflx_mu
real(rp), dimension(:,:), allocatable, public landuse_fact_ocean
ocean factor
real(rp), dimension(:,:), allocatable, public lnd_atm_sfc_dens
subroutine, public prc_abort
Abort Process.
integer, parameter, public i_r_direct
real(rp), dimension(:,:), allocatable, public ocn_sflx_lh
real(rp), dimension(:,:), allocatable, public ocn_sflx_mv
real(rp), dimension(:,:), allocatable, public lnd_sfc_temp
real(rp), public cnt_putocn
real(rp), dimension(:,:), allocatable, public urb_sflx_mv
real(rp), public cnt_putatm_urb
real(rp), dimension(:,:), allocatable, public urb_sflx_lh
integer, parameter, public i_r_diffuse
real(rp), dimension(:,:), allocatable, public urb_atm_v
real(rp), dimension(:,:), allocatable, public urb_atm_sfc_dens
integer, parameter, public i_r_ir
real(rp), public const_eps
small number
real(rp), dimension(:,:), allocatable, public ocn_atm_pbl
real(rp), dimension(:,:), allocatable, public ocn_atm_u
real(rp), dimension(:,:), allocatable, public lnd_sflx_mv
real(rp), dimension(:,:), allocatable, public lnd_atm_pres
module atmosphere / hydrometeor
real(rp), dimension(:,:,:,:), allocatable, public lnd_atm_sflx_rad_dn
real(rp), dimension(:,:), allocatable, public lnd_q2
real(rp), dimension(:,:), allocatable, public ocn_atm_w
real(rp), dimension(:,:), allocatable, public urb_sfc_z0h
real(rp), dimension(:,:), allocatable, public lnd_u10
real(rp), dimension(:,:), allocatable, public urb_atm_sflx_water
real(rp), public cnt_putlnd
logical, public atmos_hydrometeor_dry
real(rp), dimension(:,:), allocatable, public ocn_q2
real(rp), dimension(qa_max), public tracer_engi0
subroutine, public cpl_getsfc_atm(SFC_TEMP, SFC_albedo, SFC_Z0M, SFC_Z0H, SFC_Z0E, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_SHEX, SFLX_LHEX, SFLX_QVEX, SFLX_GH, SFLX_QTRC, SFLX_ENGI, U10, V10, T2, Q2)
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0e
real(rp), dimension(:,:), allocatable, public urb_sfc_z0m
real(rp), dimension(:,:), allocatable, public ocn_atm_qv
real(rp), dimension(:,:), allocatable, public lnd_t2
real(rp), dimension(:,:), allocatable, public lnd_atm_w
real(rp), dimension(:,:), allocatable, public ocn_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public urb_sflx_qvex
subroutine, public cpl_putatm(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_DENS, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_water, SFLX_ENGI, countup)
integer, parameter, public rp
real(rp), dimension(:,:), allocatable, public lnd_sflx_gh
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public ocn_sflx_sh
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0h
real(rp), dimension(:,:,:,:), allocatable, public urb_sfc_albedo
module atmosphere / grid / cartesC index
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0m
subroutine, public cpl_putocn(SFC_TEMP, SFC_albedo, SFC_Z0M, SFC_Z0H, SFC_Z0E, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_GH, SFLX_QTRC, U10, V10, T2, Q2, mask, countup)
real(rp), dimension(:,:), allocatable, public lnd_sflx_sh
real(rp), dimension(:,:), allocatable, public lnd_sflx_lh
real(rp), dimension(:,:), allocatable, public urb_atm_u
real(rp), dimension(:,:), allocatable, public lnd_sflx_mw
real(rp), dimension(qa_max), public tracer_cv
subroutine, public cpl_getatm_urb(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_DENS, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_water, SFLX_ENGI)
real(rp), dimension(:,:,:), allocatable, public lnd_sflx_qtrc
real(rp), dimension(:,:), allocatable, public urb_atm_pbl
real(rp), public cnt_putatm_ocn
real(rp), dimension(:,:), allocatable, public lnd_atm_cossza
real(rp), dimension(:,:), allocatable, public ocn_atm_sflx_water
integer, public is
start point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public ocn_atm_v
real(rp), dimension(:,:), allocatable, public ocn_sflx_mw
subroutine, public cpl_vars_setup
Setup.
real(rp), dimension(:,:), allocatable, public lnd_sflx_mu
real(rp), dimension(:,:), allocatable, public lnd_atm_sflx_water
real(rp), dimension(:,:), allocatable, public lnd_atm_v
real(rp), dimension(:,:), allocatable, public ocn_u10
real(rp), dimension(:,:), allocatable, public urb_u10
real(rp), dimension(:,:), allocatable, public landuse_fact_land
land factor
real(rp), dimension(:,:), allocatable, public ocn_sflx_engi
real(rp), dimension(:,:), allocatable, public urb_sflx_lhex
real(rp), dimension(:,:), allocatable, public urb_atm_cossza
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0m
real(rp), dimension(:,:), allocatable, public urb_sfc_z0e
real(rp), dimension(:,:), allocatable, public urb_atm_pres
real(rp), dimension(:,:), allocatable, public urb_sfc_temp
real(rp), dimension(:,:), allocatable, public lnd_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public urb_sflx_sh
real(rp), dimension(:,:), allocatable, public ocn_atm_dens
real(rp), dimension(:,:), allocatable, public lnd_atm_dens
module coupler / surface-atmospehre
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0e
subroutine, public cpl_puturb(SFC_TEMP, SFC_albedo, SFC_Z0M, SFC_Z0H, SFC_Z0E, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_SHEX, SFLX_LHEX, SFLX_QVEX, SFLX_GH, SFLX_QTRC, U10, V10, T2, Q2, mask, countup)
integer, public js
start point of inner domain: y, local
real(rp), dimension(:,:), allocatable, public ocn_t2
integer, parameter, public i_r_vis
real(rp), dimension(:,:), allocatable, public lnd_atm_pbl
real(rp), dimension(:,:), allocatable, public urb_sflx_gh
subroutine, public cpl_getatm_ocn(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_DENS, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_water, SFLX_ENGI)
real(rp), dimension(:,:), allocatable, public lnd_atm_sflx_engi
real(rp), public lhf
latent heat of fusion for use [J/kg]
subroutine, public cpl_vars_finalize
Finalize.
real(rp), dimension(:,:), allocatable, public urb_t2
real(rp), dimension(:,:), allocatable, public urb_atm_dens
real(rp), dimension(:,:), allocatable, public urb_sflx_mu
real(rp), dimension(:,:), allocatable, public lnd_atm_temp
real(rp), dimension(:,:), allocatable, public lnd_v10
real(rp), dimension(:,:), allocatable, public lnd_atm_u
real(rp), dimension(:,:), allocatable, public landuse_fact_urban
urban factor
real(rp), dimension(:,:), allocatable, public ocn_sflx_gh
real(rp), dimension(:,:), allocatable, public ocn_atm_temp
real(rp), dimension(:,:,:), allocatable, public ocn_sflx_qtrc
real(rp), dimension(:,:,:), allocatable, public urb_sflx_qtrc
real(rp), dimension(:,:), allocatable, public ocn_sfc_temp
real(rp), dimension(:,:), allocatable, public urb_atm_temp
real(rp), dimension(:,:), allocatable, public urb_q2
integer, parameter, public n_rad_rgn
real(rp), dimension(:,:), allocatable, public urb_atm_qv
real(rp), public const_undef
real(rp), dimension(:,:), allocatable, public ocn_atm_sfc_dens
real(rp), dimension(:,:), allocatable, public urb_atm_sfc_pres
subroutine, public cpl_putlnd(SFC_TEMP, SFC_albedo, SFC_Z0M, SFC_Z0H, SFC_Z0E, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_GH, SFLX_QTRC, U10, V10, T2, Q2, mask, countup)
real(rp), dimension(:,:,:,:), allocatable, public ocn_atm_sflx_rad_dn
real(rp), dimension(:,:,:,:), allocatable, public ocn_sfc_albedo
real(rp), dimension(:,:), allocatable, public ocn_atm_sflx_engi
real(rp), public cnt_putatm_lnd
real(rp), dimension(:,:), allocatable, public urb_sflx_mw
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0h
integer, public je
end point of inner domain: y, local
subroutine, public cpl_getatm_lnd(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_DENS, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_water, SFLX_ENGI)
real(rp), dimension(:,:), allocatable, public urb_sflx_engi
real(rp), public cv_water
CV for water [J/kg/K].
real(rp), public cnt_puturb
real(rp), dimension(:,:,:,:), allocatable, public lnd_sfc_albedo
real(rp), public cv_ice
CV for ice [J/kg/K].
real(rp), dimension(:,:), allocatable, public urb_v10
real(rp), dimension(:,:), allocatable, public ocn_v10
real(rp), dimension(:,:), allocatable, public urb_atm_sflx_engi
real(rp), dimension(:,:,:,:), allocatable, public urb_atm_sflx_rad_dn