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, &
97 integer,
intent(in) :: oia, ois, oie
98 integer,
intent(in) :: oja, ojs, oje
100 real(
rp),
intent(in) :: uabs(oia,oja)
101 real(
rp),
intent(in) :: z1 (oia,oja)
102 logical,
intent(in) :: mask(oia,oja)
104 real(
rp),
intent(inout) :: z0m(oia,oja)
105 real(
rp),
intent(out) :: z0h(oia,oja)
106 real(
rp),
intent(out) :: z0e(oia,oja)
125 if ( mask(i,j) )
then
129 do ite = 1, ocean_phy_roughness_moon07_itelim
131 u10m = ustar / karman * log( 10.0_rp/z0m(i,j) )
133 if ( u10m <= 12.5_rp )
then
134 z0m(i,j) = 0.0185_rp * ustar**2 / grav
136 z0m(i,j) = ( 0.085_rp * ( - 0.56_rp * ustar**2 &
137 + 20.255_rp * ustar &
139 - 0.58_rp ) * 1.0e-3_rp