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
462 log_info(
"CPL_vars_finalize",*)
'Finalize'
599 real(
rp),
intent(in) :: temp (
ia,
ja)
600 real(
rp),
intent(in) :: pres (
ia,
ja)
601 real(
rp),
intent(in) :: w (
ia,
ja)
602 real(
rp),
intent(in) :: u (
ia,
ja)
603 real(
rp),
intent(in) :: v (
ia,
ja)
604 real(
rp),
intent(in) :: dens (
ia,
ja)
605 real(
rp),
intent(in) :: qv (
ia,
ja)
606 real(
rp),
intent(in) :: pbl (
ia,
ja)
607 real(
rp),
intent(in) :: sfc_dens (
ia,
ja)
608 real(
rp),
intent(in) :: sfc_pres (
ia,
ja)
610 real(
rp),
intent(in) :: cossza (
ia,
ja)
611 real(
rp),
intent(in) :: sflx_water (
ia,
ja)
612 real(
rp),
intent(in) :: sflx_engi (
ia,
ja)
613 logical,
intent(in) :: countup
615 integer :: i, j, idir, irgn
791 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
793 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
794 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
795 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
796 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
797 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
798 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
799 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
800 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
801 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
802 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
803 real(
rp),
intent(in) :: u10 (
ia,
ja)
804 real(
rp),
intent(in) :: v10 (
ia,
ja)
805 real(
rp),
intent(in) :: t2 (
ia,
ja)
806 real(
rp),
intent(in) :: q2 (
ia,
ja)
807 logical,
intent(in) :: mask (
ia,
ja)
808 logical,
intent(in) :: countup
810 integer :: i, j, iq, idir, irgn
824 if ( mask(i,j) )
then
905 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
907 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
908 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
909 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
910 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
911 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
912 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
913 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
914 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
915 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
916 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
917 real(
rp),
intent(in) :: u10 (
ia,
ja)
918 real(
rp),
intent(in) :: v10 (
ia,
ja)
919 real(
rp),
intent(in) :: t2 (
ia,
ja)
920 real(
rp),
intent(in) :: q2 (
ia,
ja)
921 logical,
intent(in) :: mask (
ia,
ja)
922 logical,
intent(in) :: countup
924 integer :: i, j, iq, idir, irgn
939 if ( mask(i,j) )
then
1023 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
1025 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
1026 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
1027 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
1028 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
1029 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
1030 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
1031 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
1032 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
1033 real(
rp),
intent(in) :: sflx_shex (
ia,
ja)
1034 real(
rp),
intent(in) :: sflx_lhex (
ia,
ja)
1035 real(
rp),
intent(in) :: sflx_qvex (
ia,
ja)
1036 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
1037 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
1038 real(
rp),
intent(in) :: u10 (
ia,
ja)
1039 real(
rp),
intent(in) :: v10 (
ia,
ja)
1040 real(
rp),
intent(in) :: t2 (
ia,
ja)
1041 real(
rp),
intent(in) :: q2 (
ia,
ja)
1042 logical,
intent(in) :: mask (
ia,
ja)
1043 logical,
intent(in) :: countup
1045 integer :: i, j, iq, idir, irgn
1059 if ( mask(i,j) )
then
1156 real(
rp),
intent(out) :: sfc_temp (
ia,
ja)
1158 real(
rp),
intent(out) :: sfc_z0m (
ia,
ja)
1159 real(
rp),
intent(out) :: sfc_z0h (
ia,
ja)
1160 real(
rp),
intent(out) :: sfc_z0e (
ia,
ja)
1161 real(
rp),
intent(out) :: sflx_mw (
ia,
ja)
1162 real(
rp),
intent(out) :: sflx_mu (
ia,
ja)
1163 real(
rp),
intent(out) :: sflx_mv (
ia,
ja)
1164 real(
rp),
intent(out) :: sflx_sh (
ia,
ja)
1165 real(
rp),
intent(out) :: sflx_lh (
ia,
ja)
1166 real(
rp),
intent(out) :: sflx_shex (
ia,
ja)
1167 real(
rp),
intent(out) :: sflx_lhex (
ia,
ja)
1168 real(
rp),
intent(out) :: sflx_qvex (
ia,
ja)
1169 real(
rp),
intent(out) :: sflx_gh (
ia,
ja)
1170 real(
rp),
intent(out) :: sflx_qtrc (
ia,
ja,
qa)
1171 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1172 real(
rp),
intent(out) :: u10 (
ia,
ja)
1173 real(
rp),
intent(out) :: v10 (
ia,
ja)
1174 real(
rp),
intent(out) :: t2 (
ia,
ja)
1175 real(
rp),
intent(out) :: q2 (
ia,
ja)
1177 integer :: i, j, idir, irgn, iq
1201 sfc_albedo(i,j,idir,irgn) = fact_ocean(i,j) *
ocn_sfc_albedo(i,j,idir,irgn) &
1207 sfc_z0m(i,j) = fact_ocean(i,j) *
ocn_sfc_z0m(i,j) &
1211 sfc_z0h(i,j) = fact_ocean(i,j) *
ocn_sfc_z0h(i,j) &
1215 sfc_z0e(i,j) = fact_ocean(i,j) *
ocn_sfc_z0e(i,j) &
1219 sflx_mw(i,j) = fact_ocean(i,j) *
ocn_sflx_mw(i,j) &
1223 sflx_mu(i,j) = fact_ocean(i,j) *
ocn_sflx_mu(i,j) &
1227 sflx_mv(i,j) = fact_ocean(i,j) *
ocn_sflx_mv(i,j) &
1231 sflx_shex(i,j) = real(ceiling(fact_urban(i,j)-eps), kind=
rp) *
urb_sflx_shex(i,j)
1233 sflx_lhex(i,j) = real(ceiling(fact_urban(i,j)-eps), kind=
rp) *
urb_sflx_lhex(i,j)
1235 sflx_qvex(i,j) = real(ceiling(fact_urban(i,j)-eps), kind=
rp) *
urb_sflx_qvex(i,j)
1237 sflx_sh(i,j) = fact_ocean(i,j) *
ocn_sflx_sh(i,j) &
1242 sflx_lh(i,j) = fact_ocean(i,j) *
ocn_sflx_lh(i,j) &
1247 sflx_gh(i,j) = fact_ocean(i,j) *
ocn_sflx_gh(i,j) &
1252 sflx_qtrc(i,j,iq) = fact_ocean(i,j) *
ocn_sflx_qtrc(i,j,iq) &
1256 sflx_qtrc(i,j,
i_qv) = sflx_qtrc(i,j,
i_qv) + sflx_qvex(i,j)
1262 u10(i,j) = fact_ocean(i,j) *
ocn_u10(i,j) &
1263 + fact_land(i,j) *
lnd_u10(i,j) &
1264 + fact_urban(i,j) *
urb_u10(i,j)
1266 v10(i,j) = fact_ocean(i,j) *
ocn_v10(i,j) &
1267 + fact_land(i,j) *
lnd_v10(i,j) &
1268 + fact_urban(i,j) *
urb_v10(i,j)
1270 t2(i,j) = fact_ocean(i,j) *
ocn_t2(i,j) &
1271 + fact_land(i,j) *
lnd_t2(i,j) &
1272 + fact_urban(i,j) *
urb_t2(i,j)
1274 q2(i,j) = fact_ocean(i,j) *
ocn_q2(i,j) &
1275 + fact_land(i,j) *
lnd_q2(i,j) &
1276 + fact_urban(i,j) *
urb_q2(i,j)
1306 real(
rp),
intent(out) :: temp (
ia,
ja)
1307 real(
rp),
intent(out) :: pres (
ia,
ja)
1308 real(
rp),
intent(out) :: w (
ia,
ja)
1309 real(
rp),
intent(out) :: u (
ia,
ja)
1310 real(
rp),
intent(out) :: v (
ia,
ja)
1311 real(
rp),
intent(out) :: dens (
ia,
ja)
1312 real(
rp),
intent(out) :: qv (
ia,
ja)
1313 real(
rp),
intent(out) :: pbl (
ia,
ja)
1314 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1315 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1317 real(
rp),
intent(out) :: cossza (
ia,
ja)
1318 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1319 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1321 integer :: i, j, idir, irgn
1377 real(
rp),
intent(out) :: temp (
ia,
ja)
1378 real(
rp),
intent(out) :: pres (
ia,
ja)
1379 real(
rp),
intent(out) :: w (
ia,
ja)
1380 real(
rp),
intent(out) :: u (
ia,
ja)
1381 real(
rp),
intent(out) :: v (
ia,
ja)
1382 real(
rp),
intent(out) :: dens (
ia,
ja)
1383 real(
rp),
intent(out) :: qv (
ia,
ja)
1384 real(
rp),
intent(out) :: pbl (
ia,
ja)
1385 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1386 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1388 real(
rp),
intent(out) :: cossza (
ia,
ja)
1389 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1390 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1392 integer :: i, j, idir, irgn
1448 real(
rp),
intent(out) :: temp (
ia,
ja)
1449 real(
rp),
intent(out) :: pres (
ia,
ja)
1450 real(
rp),
intent(out) :: w (
ia,
ja)
1451 real(
rp),
intent(out) :: u (
ia,
ja)
1452 real(
rp),
intent(out) :: v (
ia,
ja)
1453 real(
rp),
intent(out) :: dens (
ia,
ja)
1454 real(
rp),
intent(out) :: qv (
ia,
ja)
1455 real(
rp),
intent(out) :: pbl (
ia,
ja)
1456 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1457 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1459 real(
rp),
intent(out) :: cossza (
ia,
ja)
1460 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1461 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1463 integer :: i, j, idir, irgn
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0e
real(rp), dimension(:,:), allocatable, public urb_u10
real(rp), dimension(:,:), allocatable, public ocn_atm_qv
real(rp), dimension(:,:), allocatable, public lnd_sflx_mw
real(rp), dimension(:,:), allocatable, public lnd_sflx_gh
real(rp), dimension(:,:), allocatable, public ocn_atm_pbl
real(rp), dimension(:,:), allocatable, public ocn_sflx_sh
real(rp), dimension(:,:), allocatable, public lnd_sfc_temp
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)
real(rp), dimension(:,:), allocatable, public lnd_sflx_sh
real(rp), dimension(:,:), allocatable, public lnd_q2
real(rp), dimension(:,:), allocatable, public ocn_sflx_lh
real(rp), public cnt_putocn
real(rp), public cnt_putatm_urb
real(rp), dimension(:,:), allocatable, public urb_atm_sflx_water
real(rp), dimension(:,:), allocatable, public urb_atm_pres
real(rp), dimension(:,:), allocatable, public urb_sflx_engi
real(rp), dimension(:,:), allocatable, public ocn_v10
real(rp), dimension(:,:), allocatable, public ocn_atm_w
real(rp), public cnt_puturb
real(rp), dimension(:,:), allocatable, public ocn_t2
real(rp), dimension(:,:), allocatable, public lnd_atm_w
real(rp), dimension(:,:,:), allocatable, public lnd_sflx_qtrc
real(rp), dimension(:,:,:,:), allocatable, public ocn_sfc_albedo
real(rp), public cnt_putlnd
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0h
real(rp), dimension(:,:), allocatable, public lnd_sflx_mv
real(rp), dimension(:,:), allocatable, public ocn_atm_sflx_water
real(rp), dimension(:,:), allocatable, public lnd_atm_sflx_water
real(rp), dimension(:,:), allocatable, public lnd_atm_v
real(rp), dimension(:,:), allocatable, public urb_atm_dens
real(rp), dimension(:,:), allocatable, public urb_v10
real(rp), dimension(:,:), allocatable, public ocn_sflx_mv
real(rp), dimension(:,:), allocatable, public urb_sfc_z0e
real(rp), dimension(:,:), allocatable, public ocn_sflx_engi
real(rp), dimension(:,:), allocatable, public urb_sfc_temp
real(rp), dimension(:,:), allocatable, public urb_sflx_mv
real(rp), dimension(:,:,:), allocatable, public urb_sflx_qtrc
real(rp), dimension(:,:), allocatable, public lnd_atm_dens
real(rp), dimension(:,:), allocatable, public ocn_atm_sfc_dens
real(rp), public cnt_putatm_ocn
real(rp), dimension(:,:), allocatable, public urb_t2
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0h
real(rp), dimension(:,:), allocatable, public urb_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public ocn_sflx_mu
real(rp), dimension(:,:,:,:), allocatable, public ocn_atm_sflx_rad_dn
real(rp), dimension(:,:), allocatable, public urb_sflx_shex
real(rp), dimension(:,:), allocatable, public ocn_atm_v
real(rp), dimension(:,:,:), allocatable, public ocn_sflx_qtrc
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)
subroutine, public cpl_vars_setup
Setup.
real(rp), dimension(:,:), allocatable, public urb_atm_v
real(rp), dimension(:,:), allocatable, public lnd_sflx_lh
real(rp), dimension(:,:), allocatable, public urb_sflx_gh
real(rp), dimension(:,:,:,:), allocatable, public lnd_atm_sflx_rad_dn
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_v10
real(rp), dimension(:,:), allocatable, public urb_sflx_lhex
real(rp), dimension(:,:), allocatable, public urb_atm_temp
real(rp), dimension(:,:), allocatable, public lnd_sflx_engi
real(rp), dimension(:,:), allocatable, public urb_sflx_mu
real(rp), dimension(:,:), allocatable, public urb_sflx_lh
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_sflx_mw
real(rp), dimension(:,:), allocatable, public ocn_atm_pres
real(rp), dimension(:,:), allocatable, public ocn_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0m
real(rp), dimension(:,:), allocatable, public ocn_atm_u
real(rp), dimension(:,:), allocatable, public urb_atm_cossza
real(rp), dimension(:,:), allocatable, public lnd_atm_qv
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)
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 lnd_atm_pbl
real(rp), dimension(:,:), allocatable, public lnd_atm_sfc_dens
real(rp), dimension(:,:), allocatable, public urb_q2
subroutine, public cpl_vars_finalize
Finalize.
real(rp), dimension(:,:), allocatable, public ocn_sflx_mw
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_atm_pres
real(rp), dimension(:,:), allocatable, public ocn_atm_temp
real(rp), dimension(:,:), allocatable, public lnd_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public lnd_t2
real(rp), dimension(:,:), allocatable, public lnd_atm_sflx_engi
real(rp), dimension(:,:), allocatable, public urb_atm_w
real(rp), dimension(:,:,:,:), allocatable, public urb_sfc_albedo
real(rp), dimension(:,:), allocatable, public urb_sflx_sh
real(rp), dimension(:,:), allocatable, public lnd_atm_u
real(rp), dimension(:,:,:,:), allocatable, public lnd_sfc_albedo
real(rp), dimension(:,:), allocatable, public urb_atm_qv
real(rp), dimension(:,:), allocatable, public urb_sfc_z0m
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 ocn_q2
real(rp), dimension(:,:), allocatable, public urb_sflx_qvex
real(rp), dimension(:,:), allocatable, public lnd_atm_temp
real(rp), dimension(:,:), allocatable, public lnd_atm_cossza
real(rp), dimension(:,:), allocatable, public ocn_atm_sflx_engi
real(rp), public cnt_putatm_lnd
real(rp), dimension(:,:), allocatable, public urb_atm_sfc_dens
real(rp), dimension(:,:), allocatable, public lnd_sflx_mu
real(rp), dimension(:,:), allocatable, public ocn_atm_cossza
real(rp), dimension(:,:,:,:), allocatable, public urb_atm_sflx_rad_dn
real(rp), dimension(:,:), allocatable, public ocn_sfc_temp
real(rp), dimension(:,:), allocatable, public urb_atm_pbl
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0m
real(rp), dimension(:,:), allocatable, public urb_atm_sflx_engi
real(rp), dimension(:,:), allocatable, public urb_atm_u
real(rp), dimension(:,:), allocatable, public ocn_u10
real(rp), dimension(:,:), allocatable, public lnd_u10
real(rp), dimension(:,:), allocatable, public ocn_atm_dens
real(rp), dimension(:,:), allocatable, public ocn_sflx_gh
real(rp), dimension(:,:), allocatable, public urb_sfc_z0h
module atmosphere / grid / cartesC index
integer, public ie
end point of inner domain: x, local
integer, public je
end point of inner domain: y, local
integer, public is
start point of inner domain: x, local
integer, public js
start point of inner domain: y, local
module atmosphere / hydrometeor
real(rp), public lhf
latent heat of fusion for use [J/kg]
real(rp), public cv_ice
CV for ice [J/kg/K].
real(rp), public cv_water
CV for water [J/kg/K].
logical, public atmos_hydrometeor_dry
real(rp), public const_eps
small number
real(rp), public const_undef
module coupler / surface-atmospehre
integer, parameter, public i_r_ir
integer, parameter, public i_r_direct
integer, parameter, public n_rad_rgn
integer, parameter, public i_r_diffuse
integer, parameter, public n_rad_dir
integer, parameter, public i_r_vis
real(rp), dimension(:,:), allocatable, public landuse_fact_lake
lake factor
real(rp), dimension(:,:), allocatable, public landuse_fact_urban
urban factor
real(rp), dimension(:,:), allocatable, public landuse_fact_ocean
ocean factor
real(rp), dimension(:,:), allocatable, public landuse_fact_land
land factor
subroutine, public prc_abort
Abort Process.
integer, parameter, public rp
real(rp), dimension(qa_max), public tracer_engi0
real(rp), dimension(qa_max), public tracer_cv