SCALE-RM
Functions/Subroutines | Variables
scale_ocean_phy_tc Module Reference

module ocean / physics / surface thermal conductivity More...

Functions/Subroutines

subroutine, public ocean_phy_tc_seaice_setup
 
subroutine, public ocean_phy_tc_seaice (OIA, OIS, OIE, OJA, OJS, OJE, ICE_MASS, ICE_FRAC, mask, TC_dz)
 

Variables

real(rp), public ocean_phy_thermalcond_max = 10.0_RP
 
real(rp), public ocean_phy_thermalcond_seaice = 2.0_RP
 

Detailed Description

module ocean / physics / surface thermal conductivity

Description
surface thermal conductivity common module
Author
Team SCALE
NAMELIST
  • PARAM_OCEAN_PHY_TC_seaice
    nametypedefault valuecomment
    OCEAN_PHY_THERMALCOND_MAX real(RP) 10.0_RP maximum thermal conductivity / depth [J/m2/s/K]
    OCEAN_PHY_THERMALCOND_SEAICE real(RP) 2.0_RP thermal conductivity of sea ice [J/m/s/K]

History Output
No history output

Function/Subroutine Documentation

◆ ocean_phy_tc_seaice_setup()

subroutine, public scale_ocean_phy_tc::ocean_phy_tc_seaice_setup

Definition at line 49 of file scale_ocean_phy_tc.F90.

49  use scale_prc, only: &
50  prc_abort
51  implicit none
52 
53  namelist / param_ocean_phy_tc_seaice / &
54  ocean_phy_thermalcond_max, &
55  ocean_phy_thermalcond_seaice
56 
57  integer :: ierr
58  !---------------------------------------------------------------------------
59 
60  log_newline
61  log_info("OCEAN_PHY_TC_seaice_setup",*) 'Setup'
62 
63  !--- read namelist
64  rewind(io_fid_conf)
65  read(io_fid_conf,nml=param_ocean_phy_tc_seaice,iostat=ierr)
66  if( ierr < 0 ) then !--- missing
67  log_info("OCEAN_PHY_TC_seaice_setup",*) 'Not found namelist. Default used.'
68  elseif( ierr > 0 ) then !--- fatal error
69  log_error("OCEAN_PHY_TC_seaice_setup",*) 'Not appropriate names in namelist PARAM_OCEAN_PHY_TC_seaice. Check!'
70  call prc_abort
71  endif
72  log_nml(param_ocean_phy_tc_seaice)
73 
74  return

References scale_io::io_fid_conf, ocean_phy_thermalcond_max, ocean_phy_thermalcond_seaice, 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_tc_seaice()

subroutine, public scale_ocean_phy_tc::ocean_phy_tc_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(in)  ICE_MASS,
real(rp), dimension(oia,oja), intent(in)  ICE_FRAC,
logical, dimension (oia,oja), intent(in)  mask,
real(rp), dimension (oia,oja), intent(out)  TC_dz 
)

Definition at line 85 of file scale_ocean_phy_tc.F90.

85  use scale_const, only: &
86  eps => const_eps
87  use scale_ocean_phy_ice_simple, only: &
89  implicit none
90 
91  integer, intent(in) :: OIA, OIS, OIE
92  integer, intent(in) :: OJA, OJS, OJE
93  real(RP), intent(in) :: ICE_MASS(OIA,OJA) ! sea ice amount [kg/m2]
94  real(RP), intent(in) :: ICE_FRAC(OIA,OJA) ! sea ice area fraction [1]
95  logical, intent(in) :: mask (OIA,OJA)
96  real(RP), intent(out) :: TC_dz (OIA,OJA) ! thermal conductivity / depth [J/m2/s/K]
97 
98  real(RP) :: ice_depth
99  integer :: i, j
100  !---------------------------------------------------------------------------
101  !$acc data copyin(ICE_MASS,ICE_FRAC,mask) copyout(TC_dz)
102 
103  !$acc kernels
104  !$omp parallel do private(ice_depth)
105  do j = ojs, oje
106  do i = ois, oie
107  if ( mask(i,j) ) then
108  ice_depth = ice_mass(i,j) / ocean_phy_ice_density / max(ice_frac(i,j),eps)
109 
110  tc_dz(i,j) = ocean_phy_thermalcond_seaice / max(ice_depth*0.5_rp,eps) ! at the middle point of the layer
111 
112  tc_dz(i,j) = min( tc_dz(i,j), ocean_phy_thermalcond_max )
113  end if
114  enddo
115  enddo
116  !$acc end kernels
117 
118  !$acc end data
119  return

References scale_const::const_eps, scale_ocean_phy_ice_simple::ocean_phy_ice_density, ocean_phy_thermalcond_max, and ocean_phy_thermalcond_seaice.

Referenced by mod_ocean_driver::ocean_driver_calc_tendency().

Here is the caller graph for this function:

Variable Documentation

◆ ocean_phy_thermalcond_max

real(rp), public scale_ocean_phy_tc::ocean_phy_thermalcond_max = 10.0_RP

Definition at line 42 of file scale_ocean_phy_tc.F90.

42  real(RP), public :: OCEAN_PHY_thermalcond_max = 10.0_rp ! maximum thermal conductivity / depth [J/m2/s/K]

Referenced by ocean_phy_tc_seaice(), and ocean_phy_tc_seaice_setup().

◆ ocean_phy_thermalcond_seaice

real(rp), public scale_ocean_phy_tc::ocean_phy_thermalcond_seaice = 2.0_RP

Definition at line 43 of file scale_ocean_phy_tc.F90.

43  real(RP), public :: OCEAN_PHY_thermalcond_seaice = 2.0_rp ! thermal conductivity of sea ice [J/m/s/K]

Referenced by ocean_phy_tc_seaice(), and ocean_phy_tc_seaice_setup().

scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
scale_ocean_phy_ice_simple
module ocean / physics / ice / simple
Definition: scale_ocean_phy_ice_simple.F90:12
scale_ocean_phy_ice_simple::ocean_phy_ice_density
real(rp), public ocean_phy_ice_density
Definition: scale_ocean_phy_ice_simple.F90:45
scale_const::const_eps
real(rp), public const_eps
small number
Definition: scale_const.F90:35
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_const
module CONSTANT
Definition: scale_const.F90:11