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-7_RP
 
real(rp), public ocean_phy_roughness_z0e_min = 1.0E-7_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-7_RP minimum roughness length for heat [m]
    OCEAN_PHY_ROUGHNESS_Z0E_MIN real(RP) 1.0E-7_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.

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

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().

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.

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

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().

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.

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

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().

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.

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  !$acc data copyout(Z0M,Z0H,Z0E)
172 
173  !$acc kernels
174  do j = ojs, oje
175  do i = ois, oie
176  z0m(i,j) = max( ocean_phy_roughness_z0m, ocean_phy_roughness_z0m_min )
177  z0h(i,j) = max( ocean_phy_roughness_z0h, ocean_phy_roughness_z0h_min )
178  z0e(i,j) = max( ocean_phy_roughness_z0e, ocean_phy_roughness_z0e_min )
179  enddo
180  enddo
181  !$acc end kernels
182 
183  !$acc end data
184  return

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().

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 192 of file scale_ocean_phy_roughness.F90.

192  implicit none
193 
194  integer, intent(in) :: OIA, OIS, OIE
195  integer, intent(in) :: OJA, OJS, OJE
196  real(RP), intent(out) :: Z0M(OIA,OJA) ! roughness length for momentum [m]
197  real(RP), intent(out) :: Z0H(OIA,OJA) ! roughness length for heat [m]
198  real(RP), intent(out) :: Z0E(OIA,OJA) ! roughness length for vapor [m]
199 
200  integer :: i, j
201  !---------------------------------------------------------------------------
202  !$acc data copyout(Z0M,Z0H,Z0E)
203 
204  !$acc kernels
205  do j = ojs, oje
206  do i = ois, oie
207  z0m(i,j) = max( ocean_phy_roughness_seaice_z0m, ocean_phy_roughness_z0m_min )
208  z0h(i,j) = max( ocean_phy_roughness_seaice_z0h, ocean_phy_roughness_z0h_min )
209  z0e(i,j) = max( ocean_phy_roughness_seaice_z0e, ocean_phy_roughness_z0e_min )
210  enddo
211  enddo
212  !$acc end kernels
213 
214  !$acc end data
215  return

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().

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.

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

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().

◆ 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.

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

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().

◆ 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.

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

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().

◆ ocean_phy_roughness_z0h_min

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

Definition at line 48 of file scale_ocean_phy_roughness.F90.

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

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().

◆ ocean_phy_roughness_z0e_min

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

Definition at line 49 of file scale_ocean_phy_roughness.F90.

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

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().

◆ 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.

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

Referenced by ocean_phy_roughness_const(), and ocean_phy_roughness_const_setup().

◆ 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.

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

Referenced by ocean_phy_roughness_const(), and ocean_phy_roughness_const_setup().

◆ 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.

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

Referenced by ocean_phy_roughness_const(), and ocean_phy_roughness_const_setup().

◆ 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.

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

Referenced by ocean_phy_roughness_seaice(), and ocean_phy_roughness_seaice_setup().

◆ 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.

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

Referenced by ocean_phy_roughness_seaice(), and ocean_phy_roughness_seaice_setup().

◆ 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.

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

Referenced by ocean_phy_roughness_seaice(), and ocean_phy_roughness_seaice_setup().

scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
scale_prc
module PROCESS
Definition: scale_prc.F90:11