SCALE-RM
Functions/Subroutines | Variables
scale_ocean_phy_roughness Module Reference

module ocean / physics / surface roughness length More...

Functions/Subroutines

subroutine, public ocean_phy_roughness_setup
 
subroutine, public ocean_phy_roughness_const_setup
 
subroutine, public ocean_phy_roughness_seaice_setup
 
subroutine, public ocean_phy_roughness_const (OIA, OIS, OIE, OJA, OJS, OJE, Z0M, Z0H, Z0E)
 
subroutine, public ocean_phy_roughness_seaice (OIA, OIS, OIE, OJA, OJS, OJE, Z0M, Z0H, Z0E)
 

Variables

real(rp), public ocean_phy_roughness_visck = 1.5E-5_RP
 
real(rp), public ocean_phy_roughness_ustar_min = 1.0E-3_RP
 
real(rp), public ocean_phy_roughness_z0m_min = 1.0E-5_RP
 
real(rp), public ocean_phy_roughness_z0h_min = 1.0E-5_RP
 
real(rp), public ocean_phy_roughness_z0e_min = 1.0E-5_RP
 
real(rp), public ocean_phy_roughness_z0m = 1.0E-5_RP
 
real(rp), public ocean_phy_roughness_z0h = 1.0E-5_RP
 
real(rp), public ocean_phy_roughness_z0e = 1.0E-5_RP
 
real(rp), public ocean_phy_roughness_seaice_z0m = 2.0E-2_RP
 
real(rp), public ocean_phy_roughness_seaice_z0h = 2.0E-3_RP
 
real(rp), public ocean_phy_roughness_seaice_z0e = 2.0E-3_RP
 

Detailed Description

module ocean / physics / surface roughness length

Description
surface roughness length common module
Author
Team SCALE
NAMELIST
  • PARAM_OCEAN_PHY_ROUGHNESS
    nametypedefault valuecomment
    OCEAN_PHY_ROUGHNESS_VISCK real(RP) 1.5E-5_RP kinematic viscosity [m2/s]
    OCEAN_PHY_ROUGHNESS_USTAR_MIN real(RP) 1.0E-3_RP minimum friction velocity [m/s]
    OCEAN_PHY_ROUGHNESS_Z0M_MIN real(RP) 1.0E-5_RP minimum roughness length for momentum [m]
    OCEAN_PHY_ROUGHNESS_Z0H_MIN real(RP) 1.0E-5_RP minimum roughness length for heat [m]
    OCEAN_PHY_ROUGHNESS_Z0E_MIN real(RP) 1.0E-5_RP minimum roughness length for moisture [m]

  • PARAM_OCEAN_PHY_ROUGHNESS_const
    nametypedefault valuecomment
    OCEAN_PHY_ROUGHNESS_Z0M real(RP) 1.0E-5_RP constant roughness length for momentum [m]
    OCEAN_PHY_ROUGHNESS_Z0H real(RP) 1.0E-5_RP constant roughness length for heat [m]
    OCEAN_PHY_ROUGHNESS_Z0E real(RP) 1.0E-5_RP constant roughness length for moisture [m]

  • PARAM_OCEAN_PHY_ROUGHNESS_seaice
    nametypedefault valuecomment
    OCEAN_PHY_ROUGHNESS_SEAICE_Z0M real(RP) 2.0E-2_RP seaice roughness length for momentum [m]
    OCEAN_PHY_ROUGHNESS_SEAICE_Z0H real(RP) 2.0E-3_RP seaice roughness length for heat [m]
    OCEAN_PHY_ROUGHNESS_SEAICE_Z0E real(RP) 2.0E-3_RP seaice roughness length for moisture [m]

History Output
No history output

Function/Subroutine Documentation

◆ ocean_phy_roughness_setup()

subroutine, public scale_ocean_phy_roughness::ocean_phy_roughness_setup ( )

Definition at line 63 of file scale_ocean_phy_roughness.F90.

References scale_io::io_fid_conf, ocean_phy_roughness_ustar_min, ocean_phy_roughness_visck, ocean_phy_roughness_z0e_min, ocean_phy_roughness_z0h_min, ocean_phy_roughness_z0m_min, and scale_prc::prc_abort().

Referenced by scale_ocean_phy_roughness_miller92::ocean_phy_roughness_miller92_setup(), and scale_ocean_phy_roughness_moon07::ocean_phy_roughness_moon07_setup().

63  use scale_prc, only: &
64  prc_abort
65  implicit none
66 
67  namelist / param_ocean_phy_roughness / &
68  ocean_phy_roughness_visck, &
69  ocean_phy_roughness_ustar_min, &
70  ocean_phy_roughness_z0m_min, &
71  ocean_phy_roughness_z0h_min, &
72  ocean_phy_roughness_z0e_min
73 
74  integer :: ierr
75  !---------------------------------------------------------------------------
76 
77  log_newline
78  log_info("OCEAN_PHY_ROUGHNESS_setup",*) 'Setup'
79 
80  !--- read namelist
81  rewind(io_fid_conf)
82  read(io_fid_conf,nml=param_ocean_phy_roughness,iostat=ierr)
83  if( ierr < 0 ) then !--- missing
84  log_info("OCEAN_PHY_ROUGHNESS_setup",*) 'Not found namelist. Default used.'
85  elseif( ierr > 0 ) then !--- fatal error
86  log_error("OCEAN_PHY_ROUGHNESS_setup",*) 'Not appropriate names in namelist PARAM_OCEAN_PHY_ROUGHNESS. Check!'
87  call prc_abort
88  endif
89  log_nml(param_ocean_phy_roughness)
90 
91  return
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:55
module PROCESS
Definition: scale_prc.F90:11
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_phy_roughness_const_setup()

subroutine, public scale_ocean_phy_roughness::ocean_phy_roughness_const_setup ( )

Definition at line 96 of file scale_ocean_phy_roughness.F90.

References scale_io::io_fid_conf, ocean_phy_roughness_z0e, ocean_phy_roughness_z0h, ocean_phy_roughness_z0m, and scale_prc::prc_abort().

Referenced by mod_ocean_driver::ocean_driver_setup().

96  use scale_prc, only: &
97  prc_abort
98  implicit none
99 
100  namelist / param_ocean_phy_roughness_const / &
101  ocean_phy_roughness_z0m, &
102  ocean_phy_roughness_z0h, &
103  ocean_phy_roughness_z0e
104 
105  integer :: ierr
106  !---------------------------------------------------------------------------
107 
108  log_newline
109  log_info("OCEAN_PHY_ROUGHNESS_const_setup",*) 'Setup'
110 
111  !--- read namelist
112  rewind(io_fid_conf)
113  read(io_fid_conf,nml=param_ocean_phy_roughness_const,iostat=ierr)
114  if( ierr < 0 ) then !--- missing
115  log_info("OCEAN_PHY_ROUGHNESS_const_setup",*) 'Not found namelist. Default used.'
116  elseif( ierr > 0 ) then !--- fatal error
117  log_error("OCEAN_PHY_ROUGHNESS_const_setup",*) 'Not appropriate names in namelist PARAM_OCEAN_PHY_ROUGHNESS_const. Check!'
118  call prc_abort
119  endif
120  log_nml(param_ocean_phy_roughness_const)
121 
122  return
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:55
module PROCESS
Definition: scale_prc.F90:11
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_phy_roughness_seaice_setup()

subroutine, public scale_ocean_phy_roughness::ocean_phy_roughness_seaice_setup ( )

Definition at line 127 of file scale_ocean_phy_roughness.F90.

References scale_io::io_fid_conf, ocean_phy_roughness_seaice_z0e, ocean_phy_roughness_seaice_z0h, ocean_phy_roughness_seaice_z0m, and scale_prc::prc_abort().

Referenced by mod_ocean_driver::ocean_driver_setup().

127  use scale_prc, only: &
128  prc_abort
129  implicit none
130 
131  namelist / param_ocean_phy_roughness_seaice / &
132  ocean_phy_roughness_seaice_z0m, &
133  ocean_phy_roughness_seaice_z0h, &
134  ocean_phy_roughness_seaice_z0e
135 
136  integer :: ierr
137  !---------------------------------------------------------------------------
138 
139  log_newline
140  log_info("OCEAN_PHY_ROUGHNESS_seaice_setup",*) 'Setup'
141 
142  !--- read namelist
143  rewind(io_fid_conf)
144  read(io_fid_conf,nml=param_ocean_phy_roughness_seaice,iostat=ierr)
145  if( ierr < 0 ) then !--- missing
146  log_info("OCEAN_PHY_ROUGHNESS_seaice_setup",*) 'Not found namelist. Default used.'
147  elseif( ierr > 0 ) then !--- fatal error
148  log_error("OCEAN_PHY_ROUGHNESS_seaice_setup",*) 'Not appropriate names in namelist PARAM_OCEAN_PHY_ROUGHNESS_seaice. Check!'
149  call prc_abort
150  endif
151  log_nml(param_ocean_phy_roughness_seaice)
152 
153  return
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:55
module PROCESS
Definition: scale_prc.F90:11
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ocean_phy_roughness_const()

subroutine, public scale_ocean_phy_roughness::ocean_phy_roughness_const ( integer, intent(in)  OIA,
integer, intent(in)  OIS,
integer, intent(in)  OIE,
integer, intent(in)  OJA,
integer, intent(in)  OJS,
integer, intent(in)  OJE,
real(rp), dimension(oia,oja), intent(out)  Z0M,
real(rp), dimension(oia,oja), intent(out)  Z0H,
real(rp), dimension(oia,oja), intent(out)  Z0E 
)

Definition at line 161 of file scale_ocean_phy_roughness.F90.

References ocean_phy_roughness_z0e, ocean_phy_roughness_z0e_min, ocean_phy_roughness_z0h, ocean_phy_roughness_z0h_min, ocean_phy_roughness_z0m, and ocean_phy_roughness_z0m_min.

Referenced by mod_ocean_driver::ocean_driver_calc_tendency().

161  implicit none
162 
163  integer, intent(in) :: oia, ois, oie
164  integer, intent(in) :: oja, ojs, oje
165  real(RP), intent(out) :: z0m(oia,oja) ! roughness length for momentum [m]
166  real(RP), intent(out) :: z0h(oia,oja) ! roughness length for heat [m]
167  real(RP), intent(out) :: z0e(oia,oja) ! roughness length for vapor [m]
168 
169  integer :: i, j
170  !---------------------------------------------------------------------------
171 
172  do j = ojs, oje
173  do i = ois, oie
174  z0m(i,j) = max( ocean_phy_roughness_z0m, ocean_phy_roughness_z0m_min )
175  z0h(i,j) = max( ocean_phy_roughness_z0h, ocean_phy_roughness_z0h_min )
176  z0e(i,j) = max( ocean_phy_roughness_z0e, ocean_phy_roughness_z0e_min )
177  enddo
178  enddo
179 
180  return
Here is the caller graph for this function:

◆ ocean_phy_roughness_seaice()

subroutine, public scale_ocean_phy_roughness::ocean_phy_roughness_seaice ( integer, intent(in)  OIA,
integer, intent(in)  OIS,
integer, intent(in)  OIE,
integer, intent(in)  OJA,
integer, intent(in)  OJS,
integer, intent(in)  OJE,
real(rp), dimension(oia,oja), intent(out)  Z0M,
real(rp), dimension(oia,oja), intent(out)  Z0H,
real(rp), dimension(oia,oja), intent(out)  Z0E 
)

Definition at line 188 of file scale_ocean_phy_roughness.F90.

References ocean_phy_roughness_seaice_z0e, ocean_phy_roughness_seaice_z0h, ocean_phy_roughness_seaice_z0m, ocean_phy_roughness_z0e_min, ocean_phy_roughness_z0h_min, and ocean_phy_roughness_z0m_min.

Referenced by mod_ocean_driver::ocean_driver_calc_tendency().

188  implicit none
189 
190  integer, intent(in) :: oia, ois, oie
191  integer, intent(in) :: oja, ojs, oje
192  real(RP), intent(out) :: z0m(oia,oja) ! roughness length for momentum [m]
193  real(RP), intent(out) :: z0h(oia,oja) ! roughness length for heat [m]
194  real(RP), intent(out) :: z0e(oia,oja) ! roughness length for vapor [m]
195 
196  integer :: i, j
197  !---------------------------------------------------------------------------
198 
199  do j = ojs, oje
200  do i = ois, oie
201  z0m(i,j) = max( ocean_phy_roughness_seaice_z0m, ocean_phy_roughness_z0m_min )
202  z0h(i,j) = max( ocean_phy_roughness_seaice_z0h, ocean_phy_roughness_z0h_min )
203  z0e(i,j) = max( ocean_phy_roughness_seaice_z0e, ocean_phy_roughness_z0e_min )
204  enddo
205  enddo
206 
207  return
Here is the caller graph for this function:

Variable Documentation

◆ ocean_phy_roughness_visck

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_visck = 1.5E-5_RP

Definition at line 45 of file scale_ocean_phy_roughness.F90.

Referenced by scale_ocean_phy_roughness_miller92::ocean_phy_roughness_miller92(), scale_ocean_phy_roughness_moon07::ocean_phy_roughness_moon07(), and ocean_phy_roughness_setup().

45  real(RP), public :: ocean_phy_roughness_visck = 1.5e-5_rp ! kinematic viscosity [m2/s]

◆ ocean_phy_roughness_ustar_min

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_ustar_min = 1.0E-3_RP

Definition at line 46 of file scale_ocean_phy_roughness.F90.

Referenced by scale_ocean_phy_roughness_miller92::ocean_phy_roughness_miller92(), scale_ocean_phy_roughness_moon07::ocean_phy_roughness_moon07(), and ocean_phy_roughness_setup().

46  real(RP), public :: ocean_phy_roughness_ustar_min = 1.0e-3_rp ! minimum friction velocity [m/s]

◆ ocean_phy_roughness_z0m_min

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_z0m_min = 1.0E-5_RP

Definition at line 47 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_const(), scale_ocean_phy_roughness_miller92::ocean_phy_roughness_miller92(), scale_ocean_phy_roughness_moon07::ocean_phy_roughness_moon07(), ocean_phy_roughness_seaice(), and ocean_phy_roughness_setup().

47  real(RP), public :: ocean_phy_roughness_z0m_min = 1.0e-5_rp ! minimum roughness length for momentum [m]

◆ ocean_phy_roughness_z0h_min

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_z0h_min = 1.0E-5_RP

Definition at line 48 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_const(), scale_ocean_phy_roughness_miller92::ocean_phy_roughness_miller92(), scale_ocean_phy_roughness_moon07::ocean_phy_roughness_moon07(), ocean_phy_roughness_seaice(), and ocean_phy_roughness_setup().

48  real(RP), public :: ocean_phy_roughness_z0h_min = 1.0e-5_rp ! minimum roughness length for heat [m]

◆ ocean_phy_roughness_z0e_min

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_z0e_min = 1.0E-5_RP

Definition at line 49 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_const(), scale_ocean_phy_roughness_miller92::ocean_phy_roughness_miller92(), scale_ocean_phy_roughness_moon07::ocean_phy_roughness_moon07(), ocean_phy_roughness_seaice(), and ocean_phy_roughness_setup().

49  real(RP), public :: ocean_phy_roughness_z0e_min = 1.0e-5_rp ! minimum roughness length for moisture [m]

◆ ocean_phy_roughness_z0m

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_z0m = 1.0E-5_RP

Definition at line 51 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_const(), and ocean_phy_roughness_const_setup().

51  real(RP), public :: ocean_phy_roughness_z0m = 1.0e-5_rp ! constant roughness length for momentum [m]

◆ ocean_phy_roughness_z0h

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_z0h = 1.0E-5_RP

Definition at line 52 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_const(), and ocean_phy_roughness_const_setup().

52  real(RP), public :: ocean_phy_roughness_z0h = 1.0e-5_rp ! constant roughness length for heat [m]

◆ ocean_phy_roughness_z0e

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_z0e = 1.0E-5_RP

Definition at line 53 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_const(), and ocean_phy_roughness_const_setup().

53  real(RP), public :: ocean_phy_roughness_z0e = 1.0e-5_rp ! constant roughness length for moisture [m]

◆ ocean_phy_roughness_seaice_z0m

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_seaice_z0m = 2.0E-2_RP

Definition at line 55 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_seaice(), and ocean_phy_roughness_seaice_setup().

55  real(RP), public :: ocean_phy_roughness_seaice_z0m = 2.0e-2_rp ! seaice roughness length for momentum [m]

◆ ocean_phy_roughness_seaice_z0h

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_seaice_z0h = 2.0E-3_RP

Definition at line 56 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_seaice(), and ocean_phy_roughness_seaice_setup().

56  real(RP), public :: ocean_phy_roughness_seaice_z0h = 2.0e-3_rp ! seaice roughness length for heat [m]

◆ ocean_phy_roughness_seaice_z0e

real(rp), public scale_ocean_phy_roughness::ocean_phy_roughness_seaice_z0e = 2.0E-3_RP

Definition at line 57 of file scale_ocean_phy_roughness.F90.

Referenced by ocean_phy_roughness_seaice(), and ocean_phy_roughness_seaice_setup().

57  real(RP), public :: ocean_phy_roughness_seaice_z0e = 2.0e-3_rp ! seaice roughness length for moisture [m]