FE-Project
Loading...
Searching...
No Matches
mod_ocean_component Module Reference

module Oceanic component More...

Data Types

type  oceancomponent
 Derived type to manage oceanic component. More...

Functions/Subroutines

subroutine ocean_setup (this)
 Setup an object to mange oceanic component.

Detailed Description

module Oceanic component

Description
Oceanic component module
Author
Yuta Kawai, Team SCALE
NAMELIST
  • PARAM_OCEAN
    nametypedefault valuecomment
    ACTIVATE_FLAGlogical.false.Flag whether oceanic component is activated
    TIME_DTreal(DP)UNDEF8Timestep value of oceanic component
    TIME_DT_UNITcharacter(len=H_SHORT)'SEC'Timestep unit of oceanic component
    TIME_DT_RESTARTreal(DP)UNDEF8Timestep value when outputting restart file for oceanic component
    TIME_DT_RESTART_UNITcharacter(len=H_SHORT)'SEC'Timestep unit when outputting restart file for oceanic component
    OCEAN_MESH_TYPEcharacter(len=H_SHORT)'REGIONAL' !< Name of mesh type for oceanic component ('REGIONAL' or 'GLOBAL')
    OCEAN_DYN_DOlogical.true.Flag whether dynamics process is considered

History Output
No history output

Function/Subroutine Documentation

◆ ocean_setup()

subroutine mod_ocean_component::ocean_setup ( class(oceancomponent), intent(inout), target this)

Setup an object to mange oceanic component.

Definition at line 108 of file mod_ocean_component.F90.

109 use scale_const, only: &
110 undef8 => const_undef8
111
114 use scale_time_manager, only: &
116
117 implicit none
118
119 class(OceanComponent), intent(inout), target :: this
120
121 logical :: ACTIVATE_FLAG = .false. !< Flag whether oceanic component is activated
122
123 real(DP) :: TIME_DT = undef8 !< Timestep value of oceanic component
124 character(len=H_SHORT) :: TIME_DT_UNIT = 'SEC' !< Timestep unit of oceanic component
125 real(DP) :: TIME_DT_RESTART = undef8 !< Timestep value when outputting restart file for oceanic component
126 character(len=H_SHORT) :: TIME_DT_RESTART_UNIT = 'SEC' !< Timestep unit when outputting restart file for oceanic component
127
128 logical :: OCEAN_DYN_DO = .true. !< Flag whether dynamics process is considered
129 character(len=H_SHORT) :: OCEAN_MESH_TYPE = 'REGIONAL' !< Name of mesh type for oceanic component ('REGIONAL' or 'GLOBAL')
130
131
132 namelist / param_ocean / &
133 activate_flag, &
134 time_dt, &
135 time_dt_unit, &
136 time_dt_restart, &
137 time_dt_restart_unit, &
138 ocean_mesh_type, &
139 ocean_dyn_do
140
141 integer :: ierr
142 !--------------------------------------------------
143
144 log_info('OceanComponent_setup',*) 'Oceanic model components '
145
146 !--- read namelist
147 rewind(io_fid_conf)
148 read(io_fid_conf,nml=param_ocean,iostat=ierr)
149 if( ierr < 0 ) then !--- missing
150 log_info("Ocean_setup",*) 'Not found namelist. Default used.'
151 elseif( ierr > 0 ) then !--- fatal error
152 log_error("Ocean_setup",*) 'Not appropriate names in namelist PARAM_OCEAN. Check!'
153 call prc_abort
154 endif
155 log_nml(param_ocean)
156
157 !************************************************
158 call this%ModelComponent_Init('OCEAN', activate_flag )
159
160 if ( .not. activate_flag ) return
161
162 call prof_rapstart( 'Ocean_setup', 1)
163
164 !- Setup time manager
165
166 call this%time_manager%Init( this%GetComponentName(), &
167 time_dt, time_dt_unit, &
168 time_dt_restart, time_dt_restart_unit )
169
170 call time_manager_regist_component( this%time_manager )
171
172 !- Setup mesh & file I/O for oceanic component
173
174 this%mesh_type = ocean_mesh_type
175 select case( this%mesh_type )
176 case('REGIONAL')
177 call this%mesh_rm%Init()
178 call file_history_meshfield_setup( mesh3d_=this%mesh_rm%mesh, & ! (in)
179 dim_name_postfix_='_O', & ! (in)
180 registered_comp_id=this%vars%hist_comp_id ) ! (out)
181 this%mesh => this%mesh_rm
182 case('GLOBAL')
183 call this%mesh_gm%Init()
184 call file_history_meshfield_setup( meshcubedsphere3d_=this%mesh_gm%mesh, & ! (in)
185 dim_name_postfix_='_O', & ! (in)
186 registered_comp_id=this%vars%hist_comp_id ) ! (out)
187 this%mesh => this%mesh_gm
188 case default
189 log_error("Ocean_setup",*) 'Unsupported type of mesh is specified. Check!', this%mesh_type
190 call prc_abort
191 end select
192
193 !- setup common tools for oceanic model
194
195 !- Setup each processes in ocean model ------------------------------------
196
197 !- Setup the module for ocean / dynamics
198 call this%dyn_proc%ModelComponentProc_Init( 'OceanDyn', ocean_dyn_do )
199 call this%dyn_proc%setup( this%mesh, this%time_manager )
200
201 !- Setup
202
203 log_newline
204 log_info('OceanComponent_setup',*) 'Finish setup of each oceanic component.'
205
206 call prof_rapend( 'Ocean_setup', 1)
207
208 return
subroutine, public file_history_meshfield_setup(mesh1d_, mesh2d_, mesh3d_, meshcubedsphere2d_, meshcubedsphere3d_, dim_name_postfix_, registered_comp_id)
Setup a module for file history.
Module common / time.
subroutine, public time_manager_regist_component(tmanager_comp)

References scale_atm_phy_sf_bulk_simple::atmos_phy_sf_simple_flux(), mod_ocean_vars::atmvar2d_sflx_rd_lw_dif_id, mod_ocean_vars::atmvar2d_sflx_rd_sw_dir_id, mod_ocean_vars::auxvar2d_sfc_alb_vis_dir_id, scale_file_history_meshfield::file_history_meshfield_setup(), mod_ocean_vars::ocn_sflx_lh_id, mod_ocean_vars::ocn_sflx_mu_id, mod_ocean_vars::ocn_sflx_mv_id, mod_ocean_vars::ocn_sflx_mw_id, mod_ocean_vars::ocn_sflx_qv_id, mod_ocean_vars::ocn_sflx_sh_id, mod_ocean_vars::phytend_rhoh_id, and scale_time_manager::time_manager_regist_component().