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 :: atmosmesh_init
58 procedure :: atmosmesh_final
60 procedure(atmosmesh_setup_restartfile2),
public,
deferred :: setup_restartfile2
61 procedure(atmosmesh_calc_uvmet),
public,
deferred :: calc_uvmet
62 generic :: setup_restartfile => setup_restartfile1, setup_restartfile2
63 procedure(atmosmesh_setup_vcoord),
public,
deferred :: setup_vcoordinate
64 procedure :: read_topography_file => atmosmesh_read_topography_file
71 class(
atmosmesh),
target,
intent(inout) :: this
73 integer,
intent(in) :: var_num
77 subroutine atmosmesh_setup_restartfile2( this, restart_file, &
78 in_basename, in_postfix_timelabel, &
79 out_basename, out_postfix_timelabel, &
80 out_dtype, out_title, var_num, dim_name_postfix )
83 class(
atmosmesh),
target,
intent(inout) :: this
85 character(*),
intent(in) :: in_basename
86 logical,
intent(in) :: in_postfix_timelabel
87 character(*),
intent(in) :: out_basename
88 logical,
intent(in) :: out_postfix_timelabel
89 character(*),
intent(in) :: out_title
90 character(*),
intent(in) :: out_dtype
91 integer,
intent(in) :: var_num
92 character(*),
intent(in) :: dim_name_postfix
93 end subroutine atmosmesh_setup_restartfile2
96 subroutine atmosmesh_calc_uvmet( this, U, V, &
100 class(
atmosmesh),
target,
intent(in) :: this
105 end subroutine atmosmesh_calc_uvmet
108 subroutine atmosmesh_setup_vcoord( this )
110 class(
atmosmesh),
target,
intent(inout) :: this
111 end subroutine atmosmesh_setup_vcoord
134 subroutine atmosmesh_init( this, mesh )
140 class(
atmosmesh),
target,
intent(inout) :: this
146 call this%ModelMesh3D_Init( mesh )
152 call mesh%GetMesh2D( mesh2d )
153 call this%topography%Init(
"topo", mesh2d )
156 end subroutine atmosmesh_init
159 subroutine atmosmesh_final(this)
165 call this%topography%Final()
166 call this%ModelMesh3D_Final()
168 call this%element%Final()
169 call this%element_v1D%Final()
172 end subroutine atmosmesh_final
175 subroutine atmosmesh_read_topography_file( this, &
176 TOPO_IN_BASENAME, TOPO_IN_VARNAME, mesh2D, dom_zmin )
183 class(
atmosmesh),
target,
intent(inout) :: this
184 character(*),
intent(in) :: topo_in_basename
185 character(*),
intent(in) :: topo_in_varname
186 class(
meshbase2d),
intent(in),
target :: mesh2d
187 real(rp),
intent(in) :: dom_zmin
191 integer :: idom, ke2d
195 if ( trim(topo_in_basename) /=
'' )
then
196 log_info(
"ATMOS_MESH_setup",*)
'Read topography data'
200 call file_topo%Init(1, mesh2d=mesh2d )
202 call file_topo%Init(1, meshcubedsphere2d=mesh2d )
205 call file_topo%Open( topo_in_basename, myrank=prc_myrank )
206 call file_topo%Read_Var( mftype2d_xy, topo_in_varname, this%topography%topo )
207 call file_topo%Close()
208 call file_topo%Final()
210 log_info(
"ATMOS_MESH_setup",*)
'No topography data is specified. Set the topography to a constant value: ', dom_zmin
212 do idom=1, mesh2d%LOCAL_MESH_NUM
213 lcmesh2d => mesh2d%lcmesh_list(idom)
215 do ke2d=lcmesh2d%NeS, lcmesh2d%NeE
216 this%topography%topo%local(idom)%val(:,ke2d) = dom_zmin
222 end subroutine atmosmesh_read_topography_file
integer, parameter, public atm_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.