SCALE-RM
Functions/Subroutines
scale_ocean_phy_albedo Module Reference

module ocean / physics / surface albedo More...

Functions/Subroutines

subroutine, public ocean_phy_albedo_const_setup
 
subroutine, public ocean_phy_albedo_seaice_setup
 
subroutine, public ocean_phy_albedo_const (OIA, OIS, OIE, OJA, OJS, OJE, SFC_albedo)
 
subroutine, public ocean_phy_albedo_seaice (OIA, OIS, OIE, OJA, OJS, OJE, SFC_albedo)
 

Detailed Description

module ocean / physics / surface albedo

Description
Ocean surface albedo common module
Author
Team SCALE
NAMELIST
  • PARAM_OCEAN_PHY_ALBEDO_const
    nametypedefault valuecomment
    OCEAN_PHY_ALBEDO_IR_DIR real(RP) 0.05_RP
    OCEAN_PHY_ALBEDO_IR_DIF real(RP) 0.05_RP
    OCEAN_PHY_ALBEDO_NIR_DIR real(RP) 0.07_RP
    OCEAN_PHY_ALBEDO_NIR_DIF real(RP) 0.06_RP
    OCEAN_PHY_ALBEDO_VIS_DIR real(RP) 0.07_RP
    OCEAN_PHY_ALBEDO_VIS_DIF real(RP) 0.06_RP

  • PARAM_OCEAN_PHY_ALBEDO_seaice
    nametypedefault valuecomment
    OCEAN_PHY_ALBEDO_SEAICE_IR_DIR real(RP) 0.05_RP
    OCEAN_PHY_ALBEDO_SEAICE_IR_DIF real(RP) 0.05_RP
    OCEAN_PHY_ALBEDO_SEAICE_NIR_DIR real(RP) 0.60_RP
    OCEAN_PHY_ALBEDO_SEAICE_NIR_DIF real(RP) 0.60_RP
    OCEAN_PHY_ALBEDO_SEAICE_VIS_DIR real(RP) 0.80_RP
    OCEAN_PHY_ALBEDO_SEAICE_VIS_DIF real(RP) 0.80_RP

History Output
No history output

Function/Subroutine Documentation

◆ ocean_phy_albedo_const_setup()

subroutine, public scale_ocean_phy_albedo::ocean_phy_albedo_const_setup

Definition at line 63 of file scale_ocean_phy_albedo.F90.

63  use scale_prc, only: &
64  prc_abort
65  implicit none
66 
67  namelist / param_ocean_phy_albedo_const / &
68  ocean_phy_albedo_ir_dir, &
69  ocean_phy_albedo_ir_dif, &
70  ocean_phy_albedo_nir_dir, &
71  ocean_phy_albedo_nir_dif, &
72  ocean_phy_albedo_vis_dir, &
73  ocean_phy_albedo_vis_dif
74 
75  integer :: ierr
76  !---------------------------------------------------------------------------
77 
78  log_newline
79  log_info("OCEAN_PHY_ALBEDO_const_setup",*) 'Setup'
80 
81  !--- read namelist
82  rewind(io_fid_conf)
83  read(io_fid_conf,nml=param_ocean_phy_albedo_const,iostat=ierr)
84  if( ierr < 0 ) then !--- missing
85  log_info("OCEAN_PHY_ALBEDO_const_setup",*) 'Not found namelist. Default used.'
86  elseif( ierr > 0 ) then !--- fatal error
87  log_error("OCEAN_PHY_ALBEDO_const_setup",*) 'Not appropriate names in namelist PARAM_OCEAN_PHY_ALBEDO_const. Check!'
88  call prc_abort
89  endif
90  log_nml(param_ocean_phy_albedo_const)
91 
92  return

References scale_io::io_fid_conf, 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_albedo_seaice_setup()

subroutine, public scale_ocean_phy_albedo::ocean_phy_albedo_seaice_setup

Definition at line 97 of file scale_ocean_phy_albedo.F90.

97  use scale_prc, only: &
98  prc_abort
99  implicit none
100 
101  namelist / param_ocean_phy_albedo_seaice / &
102  ocean_phy_albedo_seaice_ir_dir, &
103  ocean_phy_albedo_seaice_ir_dif, &
104  ocean_phy_albedo_seaice_nir_dir, &
105  ocean_phy_albedo_seaice_nir_dif, &
106  ocean_phy_albedo_seaice_vis_dir, &
107  ocean_phy_albedo_seaice_vis_dif
108 
109  integer :: ierr
110  !---------------------------------------------------------------------------
111 
112  log_newline
113  log_info("OCEAN_PHY_ALBEDO_seaice_setup",*) 'Setup'
114 
115  !--- read namelist
116  rewind(io_fid_conf)
117  read(io_fid_conf,nml=param_ocean_phy_albedo_seaice,iostat=ierr)
118  if( ierr < 0 ) then !--- missing
119  log_info("OCEAN_PHY_ALBEDO_seaice_setup",*) 'Not found namelist. Default used.'
120  elseif( ierr > 0 ) then !--- fatal error
121  log_error("OCEAN_PHY_ALBEDO_seaice_setup",*) 'Not appropriate names in namelist PARAM_OCEAN_PHY_ALBEDO_seaice. Check!'
122  call prc_abort
123  endif
124  log_nml(param_ocean_phy_albedo_seaice)
125 
126  return

References scale_io::io_fid_conf, 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_albedo_const()

subroutine, public scale_ocean_phy_albedo::ocean_phy_albedo_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,n_rad_dir,n_rad_rgn), intent(out)  SFC_albedo 
)

Definition at line 134 of file scale_ocean_phy_albedo.F90.

134  implicit none
135 
136  integer, intent(in) :: OIA, OIS, OIE
137  integer, intent(in) :: OJA, OJS, OJE
138  real(RP), intent(out) :: SFC_albedo(OIA,OJA,N_RAD_DIR,N_RAD_RGN) ! surface albedo (0-1)
139 
140  integer :: i, j
141  !---------------------------------------------------------------------------
142  !$acc data copyout(SFC_albedo)
143 
144  !$acc kernels
145  do j = ojs, oje
146  do i = ois, oie
147  sfc_albedo(i,j,i_r_direct ,i_r_ir ) = ocean_phy_albedo_ir_dir
148  sfc_albedo(i,j,i_r_diffuse,i_r_ir ) = ocean_phy_albedo_ir_dif
149  sfc_albedo(i,j,i_r_direct ,i_r_nir) = ocean_phy_albedo_nir_dir
150  sfc_albedo(i,j,i_r_diffuse,i_r_nir) = ocean_phy_albedo_nir_dif
151  sfc_albedo(i,j,i_r_direct ,i_r_vis) = ocean_phy_albedo_vis_dir
152  sfc_albedo(i,j,i_r_diffuse,i_r_vis) = ocean_phy_albedo_vis_dif
153  enddo
154  enddo
155  !$acc end kernels
156 
157  !$acc end data
158  return

References scale_cpl_sfc_index::i_r_diffuse, scale_cpl_sfc_index::i_r_direct, scale_cpl_sfc_index::i_r_ir, scale_cpl_sfc_index::i_r_nir, and scale_cpl_sfc_index::i_r_vis.

Referenced by mod_ocean_driver::ocean_driver_calc_tendency().

Here is the caller graph for this function:

◆ ocean_phy_albedo_seaice()

subroutine, public scale_ocean_phy_albedo::ocean_phy_albedo_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,n_rad_dir,n_rad_rgn), intent(out)  SFC_albedo 
)

Definition at line 166 of file scale_ocean_phy_albedo.F90.

166  implicit none
167 
168  integer, intent(in) :: OIA, OIS, OIE
169  integer, intent(in) :: OJA, OJS, OJE
170  real(RP), intent(out) :: SFC_albedo(OIA,OJA,N_RAD_DIR,N_RAD_RGN) ! surface albedo (0-1)
171 
172  integer :: i, j
173  !---------------------------------------------------------------------------
174  !$acc data copyout(SFC_albedo)
175 
176  !$acc kernels
177  do j = ojs, oje
178  do i = ois, oie
179  sfc_albedo(i,j,i_r_direct ,i_r_ir ) = ocean_phy_albedo_seaice_ir_dir
180  sfc_albedo(i,j,i_r_diffuse,i_r_ir ) = ocean_phy_albedo_seaice_ir_dif
181  sfc_albedo(i,j,i_r_direct ,i_r_nir) = ocean_phy_albedo_seaice_nir_dir
182  sfc_albedo(i,j,i_r_diffuse,i_r_nir) = ocean_phy_albedo_seaice_nir_dif
183  sfc_albedo(i,j,i_r_direct ,i_r_vis) = ocean_phy_albedo_seaice_vis_dir
184  sfc_albedo(i,j,i_r_diffuse,i_r_vis) = ocean_phy_albedo_seaice_vis_dif
185  enddo
186  enddo
187  !$acc end kernels
188 
189  !$acc end data
190 
191  return

References scale_cpl_sfc_index::i_r_diffuse, scale_cpl_sfc_index::i_r_direct, scale_cpl_sfc_index::i_r_ir, scale_cpl_sfc_index::i_r_nir, and scale_cpl_sfc_index::i_r_vis.

Referenced by mod_ocean_driver::ocean_driver_calc_tendency().

Here is the caller graph for this function:
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
scale_prc
module PROCESS
Definition: scale_prc.F90:11