45 integer,
private :: ocean_phy_roughness_moon07_itelim = 10
57 namelist / param_ocean_phy_roughness_moon07 / &
58 ocean_phy_roughness_moon07_itelim
68 read(
io_fid_conf,nml=param_ocean_phy_roughness_moon07,iostat=ierr)
70 log_info(
"OCEAN_PHY_ROUGHNESS_moon07_setup",*)
'Not found namelist. Default used.' 71 elseif( ierr > 0 )
then 72 log_error(
"OCEAN_PHY_ROUGHNESS_moon07_setup",*)
'Not appropriate names in namelist PARAM_OCEAN_PHY_ROUGHNESS_MOON07. Check!' 75 log_nml(param_ocean_phy_roughness_moon07)
82 OIA, OIS, OIE, OJA, OJS, OJE, &
95 integer,
intent(in) :: OIA, OIS, OIE
96 integer,
intent(in) :: OJA, OJS, OJE
98 real(RP),
intent(in) :: Uabs(oia,oja)
99 real(RP),
intent(in) :: Z1 (oia,oja)
101 real(RP),
intent(inout) :: Z0M(oia,oja)
102 real(RP),
intent(out) :: Z0H(oia,oja)
103 real(RP),
intent(out) :: Z0E(oia,oja)
106 real(RP) :: Ustar(oia,oja)
121 do ite = 1, ocean_phy_roughness_moon07_itelim
128 u10m = ustar(i,j) / karman * log( 10.0_rp/z0m(i,j) )
130 if ( u10m <= 12.5_rp )
then 133 z0m(i,j) = max( 1.0e-3_rp * ( 0.085_rp * ( -0.56_rp*ustar(i,j)**2 &
134 + 20.255_rp*ustar(i,j) &
135 + 2.458_rp ) - 0.58_rp ), &
real(rp), public ocean_phy_roughness_visck
integer, public io_fid_conf
Config file ID.
real(rp), public ocean_phy_roughness_ustar_min
real(rp), parameter, public const_karman
von Karman constant
real(rp), public const_grav
standard acceleration of gravity [m/s2]
real(rp), public ocean_phy_roughness_z0e_min
subroutine, public prc_abort
Abort Process.
module ocean / physics / surface roughness length / moon07
real(rp), public ocean_phy_roughness_z0m_min
subroutine, public ocean_phy_roughness_moon07(OIA, OIS, OIE, OJA, OJS, OJE, Uabs, Z1, Z0M, Z0H, Z0E)
subroutine, public ocean_phy_roughness_setup
subroutine, public ocean_phy_roughness_moon07_setup
module ocean / physics / surface roughness length
real(rp), public ocean_phy_roughness_z0h_min