11#include "scaleFElib.h"
52 integer :: vcoord_type_id
54 logical :: comm_use_mpi_pc
55 logical :: comm_use_mpi_pc_fujitsu_ext
57 procedure :: oceanmesh_init
58 procedure :: oceanmesh_final
60 procedure(oceanmesh_setup_restartfile2),
public,
deferred :: setup_restartfile2
61 procedure(oceanmesh_calc_uvmet),
public,
deferred :: calc_uvmet
62 generic :: setup_restartfile => setup_restartfile1, setup_restartfile2
63 procedure(oceanmesh_setup_vcoord),
public,
deferred :: setup_vcoordinate
64 procedure :: read_topography_file => oceanmesh_read_topography_file
71 class(
oceanmesh),
target,
intent(inout) :: this
73 integer,
intent(in) :: var_num
74 character(*),
intent(in) :: dim_name_postfix
78 subroutine oceanmesh_setup_restartfile2( this, restart_file, &
79 in_basename, in_postfix_timelabel, &
80 out_basename, out_postfix_timelabel, &
81 out_dtype, out_title, var_num, dim_name_postfix )
84 class(
oceanmesh),
target,
intent(inout) :: this
86 character(*),
intent(in) :: in_basename
87 logical,
intent(in) :: in_postfix_timelabel
88 character(*),
intent(in) :: out_basename
89 logical,
intent(in) :: out_postfix_timelabel
90 character(*),
intent(in) :: out_title
91 character(*),
intent(in) :: out_dtype
92 integer,
intent(in) :: var_num
93 character(*),
intent(in) :: dim_name_postfix
94 end subroutine oceanmesh_setup_restartfile2
97 subroutine oceanmesh_calc_uvmet( this, U, V, &
101 class(
oceanmesh),
target,
intent(in) :: this
106 end subroutine oceanmesh_calc_uvmet
109 subroutine oceanmesh_setup_vcoord( this )
111 class(
oceanmesh),
target,
intent(inout) :: this
112 end subroutine oceanmesh_setup_vcoord
135 subroutine oceanmesh_init( this, mesh )
141 class(
oceanmesh),
target,
intent(inout) :: this
147 call this%ModelMesh3D_Init( mesh )
153 call mesh%GetMesh2D( mesh2d )
154 call this%topography%Init(
"topo", mesh2d )
157 end subroutine oceanmesh_init
160 subroutine oceanmesh_final(this)
166 call this%topography%Final()
167 call this%ModelMesh3D_Final()
169 call this%element%Final()
170 call this%element_v1D%Final()
173 end subroutine oceanmesh_final
176 subroutine oceanmesh_read_topography_file( this, &
177 TOPO_IN_BASENAME, TOPO_IN_VARNAME, mesh2D, dom_zmin )
184 class(
oceanmesh),
target,
intent(inout) :: this
185 character(*),
intent(in) :: topo_in_basename
186 character(*),
intent(in) :: topo_in_varname
187 class(
meshbase2d),
intent(in),
target :: mesh2d
188 real(rp),
intent(in) :: dom_zmin
192 integer :: idom, ke2d
196 if ( trim(topo_in_basename) /=
'' )
then
197 log_info(
"OCEAN_MESH_setup",*)
'Read topography data'
201 call file_topo%Init(1, mesh2d=mesh2d )
203 call file_topo%Init(1, meshcubedsphere2d=mesh2d )
206 call file_topo%Open( topo_in_basename, myrank=prc_myrank )
207 call file_topo%Read_Var( mftype2d_xy, topo_in_varname, this%topography%topo )
208 call file_topo%Close()
209 call file_topo%Final()
211 log_info(
"OCEAN_MESH_setup",*)
'No topography data is specified. Set the topography to a constant value: ', dom_zmin
213 do idom=1, mesh2d%LOCAL_MESH_NUM
214 lcmesh2d => mesh2d%lcmesh_list(idom)
216 do ke2d=lcmesh2d%NeS, lcmesh2d%NeE
217 this%topography%topo%local(idom)%val(:,ke2d) = dom_zmin
223 end subroutine oceanmesh_read_topography_file
integer, parameter, public ocn_mesh_max_commnuicator_num
module FElib / Element / Base
module FElib / Element / hexahedron
module FElib / Element / line
module FElib / File / Base
module FElib / File / Monitor
module FElib / File / Restart
module FElib / Mesh / Local 2D
module FElib / Mesh / Local 3D
module FElib / Mesh / Base 2D
integer, public meshbase2d_dimtypeid_xy
module FElib / Mesh / Base 3D
module FElib / Mesh / Cubed-sphere 2D domain
module FElib / Mesh / Rectangle 2D domain
module FElib / Mesh / Topography
module FElib / Data / base
FElib / model framework / mesh manager.
FElib / model framework / variable manager.
Module common / sparsemat.
Derived type to manage a computational mesh (base class)
Derived type representing a 3D reference element.
Derived type representing a hexahedral element.
Derived type representing a line element.
Derived type to manage file output with MeshField data.
Derived type to manage restart file with each component.
Derived type representing a local mesh for 2D domain.
Derived type to manage a local 3D computational domain.
Derived type to manage a computational mesh (base type for 2D domain)
Derived type to manage a computational mesh (base type for 3D domain)
Derived type to manage a cubed-sphere 2D computational domain.
Derived type to manage a rectangular 2D computational domain.
Derived type to manage topography datat and setup vertical coordinate metric.
Derived type representing a field with 2D mesh.
Derived type representing a field with 3D mesh.
Derived type to manage a sparse matrix.