11#include "scaleFElib.h"
21 use scale_tracer,
only: qa
78 integer,
parameter :: ATM_VARS_CONTAINER_LIST_MAX = 16
85 logical :: init_containers_item_flag(atm_vars_container_list_max)
103 integer,
allocatable :: diagvars2d_histid(:)
104 integer,
allocatable :: diagvars3d_histid(:)
108 character(len=H_MID) :: phy_preproc_file_basename
110 logical :: check_range
111 logical :: check_total
114 procedure :: init => atmosvars_init
115 procedure :: final => atmosvars_final
116 procedure :: setup_container => atmosvars_setup_container
117 procedure :: get_container => atmosvars_get_container
118 procedure :: calc_diagnostics => atmosvars_calculatediagnostics
119 procedure :: calc_diagvar => atmosvars_calcdiagvar
120 procedure :: calc_diagvar2d => atmosvars_calcdiagvar2d
121 procedure :: preprocoperationforphys => atmosvars_preprocoperationforphys
122 procedure :: history => atmosvars_history
123 procedure :: check => atmosvars_check
124 procedure :: monitor => atmosvars_monitor
125 procedure :: read_restart_file => atmosvars_read_restart_file
126 procedure :: write_restart_file_prep => atmosvars_write_restart_file_prep
127 procedure :: write_restart_file => atmosvars_write_restart_file
128 procedure :: write_restart_file_post => atmosvars_write_restart_file_post
129 procedure :: regist_physvar_manager => atmosvars_regist_physvar_manager
150 real(rp),
parameter :: progvars_check_max(
prgvar_num) = (/ 1.0_rp, 100.0_rp, 200.0_rp, 200.0_rp, 200.0_rp /)
175 variableinfo(
atmos_diagvars_w_id ,
'W' ,
'velocity w' ,
'm/s' , 3,
'XYZ',
'upward_air_velocity' ), &
176 variableinfo(
atmos_diagvars_t_id ,
'T' ,
'temperature' ,
'K' , 3,
'XYZ',
'air_temperature' ), &
180 variableinfo(
atmos_diagvars_rh_id ,
'RH',
'relative humidity(liq)',
'%', 3,
'XYZ',
'relative_humidity' ), &
193 variableinfo(
atmos_diagvars_rain_id,
'RAIN',
'surface rain flux' ,
'kg/m2/s', 2,
'XY',
'rainfall_flux' ), &
194 variableinfo(
atmos_diagvars_snow_id,
'SNOW',
'surface snow flux' ,
'kg/m2/s', 2,
'XY',
'snowfall_flux' ) /
201 private :: vars_calc_diagnosevar2d_lc
205 integer,
private,
parameter :: im_qdry = 1
206 integer,
private,
parameter :: im_qtot = 2
207 integer,
private,
parameter :: im_engt = 3
208 integer,
private,
parameter :: im_engp = 4
209 integer,
private,
parameter :: im_engk = 5
210 integer,
private,
parameter :: im_engi = 6
211 integer,
private,
parameter :: dvm_nmax = 6
212 integer,
private :: dv_monit_id(dvm_nmax)
221 subroutine atmosvars_init( this, atm_mesh )
225 monitor_reg => file_monitor_meshfield_reg
228 class(
atmosvars),
target,
intent(inout) :: this
229 class(
atmosmesh),
target,
intent(inout) :: atm_mesh
232 logical :: reg_file_hist
238 logical :: check_range = .false.
239 logical :: check_total = .false.
241 character(len=H_MID) :: phy_preproc_file_basename =
'phy_preoperation'
243 namelist / param_atmos_vars / &
244 phy_preproc_file_basename, &
248 character(len=H_LONG) :: in_basename =
''
249 logical :: in_postfix_timelabel = .false.
250 character(len=H_LONG) :: out_basename =
''
251 logical :: out_postfix_timelabel = .true.
252 character(len=H_MID) :: out_title =
''
253 character(len=H_SHORT) :: out_dtype =
'DEFAULT'
255 namelist / param_atmos_vars_restart / &
257 in_postfix_timelabel, &
259 out_postfix_timelabel, &
264 logical :: is_specified
270 log_info(
'AtmosVars_Init',*)
274 read(io_fid_conf,nml=param_atmos_vars,iostat=ierr)
276 log_info(
"ATMOS_vars_setup",*)
'Not found namelist. Default used.'
277 elseif( ierr > 0 )
then
278 log_error(
"ATMOS_vars_setup",*)
'Invalid names in namelist PARAM_ATMOS_VARS. Check!'
281 log_nml(param_atmos_vars)
283 this%phy_preproc_file_basename = phy_preproc_file_basename
286 this%mesh => atm_mesh
287 mesh3d => atm_mesh%ptr_mesh
288 call mesh3d%GetMesh2D( mesh2d )
293 this%init_containers_item_flag(:) = .false.
294 call this%Setup_container( 1, atm_mesh )
299 call diagvar_manager%Init()
302 reg_file_hist = .true.
304 call diagvar_manager%Regist( &
306 diag_vars3d(iv), reg_file_hist )
308 this%DIAGVARS3D_HISTID(iv) = diag_vars3d(iv)%hist_id
310 call diagvar_manager%Final()
313 call diagvar_manager%Init()
316 reg_file_hist = .true.
318 call diagvar_manager%Regist( &
320 diag_vars2d(iv), reg_file_hist )
322 this%DIAGVARS2D_HISTID(iv) = diag_vars2d(iv)%hist_id
324 call diagvar_manager%Final()
328 is_specified = .true.
331 read(io_fid_conf,nml=param_atmos_vars_restart,iostat=ierr)
333 log_info(
"AtmosVars_Init",*)
'Not found namelist PARAM_ATMOS_VARS_RESTART. Default used.'
334 is_specified = .false.
335 elseif( ierr > 0 )
then
336 log_error(
"AtmosVars_Init",*)
'Not appropriate names in namelist PARAM_ATMOS_VARS_RESTART. Check!'
339 log_nml(param_atmos_vars_restart)
341 if (is_specified)
then
342 call atm_mesh%Setup_restartfile( this%restart_file, &
343 in_basename, in_postfix_timelabel, &
344 out_basename, out_postfix_timelabel, out_dtype, out_title, &
347 call atm_mesh%Setup_restartfile( this%restart_file, &
353 call monitor_reg(
'QTOT',
'water mass',
'kg', &
354 dv_monit_id(im_qtot), &
355 dim_type=
'ATM3D', is_tendency=.false. )
357 call monitor_reg(
'ENGT',
'total energy',
'J', &
358 dv_monit_id(im_engt), &
359 dim_type=
'ATM3D', is_tendency=.false. )
360 call monitor_reg(
'ENGP',
'potential energy',
'J', &
361 dv_monit_id(im_engp), &
362 dim_type=
'ATM3D', is_tendency=.false. )
363 call monitor_reg(
'ENGK',
'kinetic energy',
'J', &
364 dv_monit_id(im_engk), &
365 dim_type=
'ATM3D', is_tendency=.false. )
366 call monitor_reg(
'ENGI',
'internal energy',
'J', &
367 dv_monit_id(im_engi), &
368 dim_type=
'ATM3D', is_tendency=.false. )
373 this%check_range = check_range
374 this%check_total = check_total
375 log_info(
"ATMOS_vars_setup",*)
'Check value range of variables? : ', check_range
376 log_info(
"ATMOS_vars_setup",*)
'Check total value of variables? : ', check_total
380 nullify( this%ptr_MP_AUXVARS2D_manager )
381 nullify( this%ptr_CP_AUXVARS2D_manager )
384 end subroutine atmosvars_init
389 subroutine atmosvars_setup_container( this, container_type, atm_mesh )
391 class(
atmosvars),
intent(inout),
target :: this
392 integer,
intent(in) :: container_type
393 class(
atmosmesh),
target,
intent(inout) :: atm_mesh
397 log_error(
"ATMOS_vars_setup_container",*)
'container_type is out of range. Check!', container_type
401 if ( .not. this%init_containers_item_flag(container_type) )
then
402 log_info(
"ATMOS_vars_setup_container",*)
'container_type: ', container_type
404 this%init_containers_item_flag(container_type) = .true.
405 call this%container_list(container_type)%Init( container_type, this%phy_preproc_file_basename, atm_mesh )
408 this%container => this%container_list(container_type)
409 this%PROGVARS_manager => this%container%PROGVARS_manager
410 this%QTRCVARS_manager => this%container%QTRCVARS_manager
411 this%AUXVARS_manager => this%container%AUXVARS_manager
412 this%AUXVARS2D_manager => this%container%AUXVARS2D_manager
413 this%PHYTENDS_manager => this%container%PHYTENDS_manager
417 end subroutine atmosvars_setup_container
422 subroutine atmosvars_get_container( this, container_type, &
425 class(
atmosvars),
intent(inout),
target :: this
426 integer,
intent(in) :: container_type
431 log_error(
"ATMOS_vars_get_container",*)
'container_type is out of range. Check!', container_type
435 if ( this%init_containers_item_flag(container_type) )
then
436 container => this%container_list(container_type)
438 log_error(
"ATMOS_vars_get_container",*)
'Not initialized container. Check!'
442 end subroutine atmosvars_get_container
447 subroutine atmosvars_final( this )
454 log_info(
'AtmosVars_Final',*)
456 call this%restart_file%Final()
458 do i=1, atm_vars_container_list_max
459 if ( this%init_containers_item_flag(i) )
call this%container_list(i)%Final()
462 deallocate( this%DIAGVARS3D_HISTID )
465 end subroutine atmosvars_final
470 subroutine atmosvars_regist_physvar_manager( this, &
471 mp_AUXVARS2D_manager, cp_AUXVARS2D_manager )
474 class(
atmosvars),
target,
intent(inout) :: this
475 type(
modelvarmanager),
intent(in),
target,
optional:: mp_auxvars2d_manager
476 type(
modelvarmanager),
intent(in),
target,
optional:: cp_auxvars2d_manager
479 if (
present(mp_auxvars2d_manager) )
then
480 this%ptr_MP_AUXVARS2D_manager => mp_auxvars2d_manager
482 if (
present(cp_auxvars2d_manager) )
then
483 this%ptr_CP_AUXVARS2D_manager => cp_auxvars2d_manager
486 end subroutine atmosvars_regist_physvar_manager
491 subroutine atmosvars_history( this )
494 class(
atmosvars),
intent(inout),
target :: this
506 mesh3d => this%container%PROG_VARS(1)%mesh
507 call mesh3d%GetMesh2D(mesh2d)
510 call this%container%Calc_diagnostics()
513 hst_id = this%container%PROG_VARS(v)%hist_id
518 hst_id = this%container%QTRC_VARS(v)%hist_id
523 hst_id = this%container%AUX_VARS(v)%hist_id
527 hst_id = this%container%AUX_VARS2D(v)%hist_id
531 do v = 1, this%container%PHYTEND_NUM_TOT
532 hst_id = this%container%PHY_TEND(v)%hist_id
539 call tmp_field3d%Init(
"tmp_field",
"", mesh3d)
541 hst_id = this%DIAGVARS3D_HISTID(v)
542 if ( hst_id > 0 )
then
547 call tmp_field3d%Final()
550 call tmp_field2d%Init(
"tmp_field",
"", mesh2d)
552 hst_id = this%DIAGVARS2D_HISTID(v)
553 if ( hst_id > 0 )
then
558 call tmp_field2d%Final()
561 end subroutine atmosvars_history
566 subroutine atmosvars_read_restart_file( this, atmos_mesh, dyncore )
573 class(
atmosvars),
intent(inout),
target :: this
574 class(
atmosmesh),
intent(in) :: atmos_mesh
587 log_info(
"AtmosVars_Read_restart_file",*)
'Open restart file (ATMOS) '
590 call this%restart_file%Open()
595 call this%restart_file%Read_var( dimtype_xyz, this%container%PROG_VARS(iv)%varname, &
596 this%container%PROG_VARS(iv) )
599 call this%restart_file%Read_var( dimtype_xyz, this%container%AUX_VARS(iv)%varname, &
600 this%container%AUX_VARS(iv) )
603 call this%restart_file%Read_var( dimtype_xyz, this%container%QTRC_VARS(iv)%varname, &
604 this%container%QTRC_VARS(iv) )
608 log_info(
"AtmosVars_Read_restart_file",*)
'Close restart file (ATMOS) '
609 call this%restart_file%Close()
614 call this%container%Calc_SpecificHeat()
617 call dyncore%update_therm_hyd( this%container%AUXVARS_manager )
620 call dyncore%calc_pressure( this%container%AUX_VARS(
auxvar_pres_id), &
621 this%container%PROGVARS_manager, this%container%AUXVARS_manager )
625 mesh3d => phyd_ref%mesh
626 do domid=1, mesh3d%LOCAL_MESH_NUM
627 lcmesh3d => mesh3d%lcmesh_list(domid)
629 do ke=lcmesh3d%NeS, lcmesh3d%NeE
630 phyd_ref%local(domid)%val(:,ke) = 0.0_rp
636 call this%Check( force = .true. )
639 call this%Calc_diagnostics()
642 call this%container%AUXVARS_manager%MeshFieldComm_Exchange()
646 mesh3d, atmos_mesh%element3D_operation )
649 end subroutine atmosvars_read_restart_file
654 subroutine atmosvars_write_restart_file_prep( this )
655 use scale_tracer,
only: &
666 integer :: iv, rf_vid
670 log_info(
"AtmosVars_Write_restart_file",*)
'Create restart file (ATMOS) '
673 call this%Check( force = .true. )
676 call this%restart_file%Create()
677 call prc_mpibarrier()
685 call this%restart_file%Def_var( this%container%PROG_VARS(iv), &
686 prgvar_info(iv)%DESC, rf_vid, dimtype_xyz )
690 call this%restart_file%Def_var( this%container%AUX_VARS(iv), &
691 auxvar_info(iv)%DESC, rf_vid, dimtype_xyz )
695 call this%restart_file%Def_var( this%container%QTRC_VARS(iv), &
696 tracer_desc(iv), rf_vid, dimtype_xyz )
699 end subroutine atmosvars_write_restart_file_prep
704 subroutine atmosvars_write_restart_file( this )
708 integer :: iv, rf_vid
711 call this%restart_file%End_def()
716 call this%restart_file%Write_var(rf_vid, this%container%PROG_VARS(iv) )
718 do iv=1, auxvar_denshydro_id
719 rf_vid = prgvar_num + iv
720 call this%restart_file%Write_var(rf_vid, this%container%AUX_VARS(iv) )
724 call this%restart_file%Write_var(rf_vid, this%container%QTRC_VARS(iv) )
727 end subroutine atmosvars_write_restart_file
732 subroutine atmosvars_write_restart_file_post( this )
736 log_info(
"AtmosVars_Write_restart_file_post",*)
'Close restart file (ATMOS) '
738 call this%restart_file%Close()
740 end subroutine atmosvars_write_restart_file_post
745 subroutine atmosvars_check( this, force )
753 logical,
intent(in),
optional :: force
764 character(len=H_MID) :: varname
773 if (
present(force) )
then
776 check = this%check_range
780 mesh3d => this%container%PROG_VARS(1)%mesh
783 if ( iv == prgvar_therm_id ) cycle
785 var => this%container%PROG_VARS(iv)
786 do n=1, mesh3d%LOCAL_MESH_NUM
787 lcmesh => mesh3d%lcmesh_list(n)
788 elem => lcmesh%refElem
790 call var%GetLocalMeshField(n, lcfield)
792 write(varname,
'(a,i3.3,a)') var%varname//
'(domID=', n,
')'
795 call valcheck( elem%Np, 1, elem%Np, lcmesh%NeA, lcmesh%NeS, lcmesh%NeE, lcfield%val, &
803 call atmosvars_calcdiagvar( this, vel_fields(iv)%varname, vel_fields(iv) )
805 do ldomid=1, mesh3d%LOCAL_MESH_NUM
812 call vel_fields(iv)%Final()
816 call work%Init(
"tmp",
"", mesh3d)
821 end subroutine atmosvars_check
826 subroutine atmosvars_monitor( this )
830 call atmosvars_monitor_core( this%container )
832 end subroutine atmosvars_monitor
834 subroutine atmosvars_monitor_core( this )
849 mesh3d => this%PROG_VARS(1)%mesh
850 call work%Init(
"tmp",
"", mesh3d)
857 if ( this%QTRC_VARS(iv)%monitor_id > 0 )
then
858 do n=1, mesh3d%LOCAL_MESH_NUM
859 lcmesh => mesh3d%lcmesh_list(n)
861 do ke=lcmesh%NeS, lcmesh%NeE
862 work%local(n)%val(:,ke) = ( this%AUX_VARS(auxvar_denshydro_id)%local(n)%val(:,ke) &
863 + this%PROG_VARS(prgvar_ddens_id )%local(n)%val(:,ke) &
864 ) * this%QTRC_VARS(iv)%local(n)%val(:,ke)
870 if ( dv_monit_id(im_qtot) > 0 )
then
871 do n=1, mesh3d%LOCAL_MESH_NUM
872 lcmesh => mesh3d%lcmesh_list(n)
874 do ke=lcmesh%NeS, lcmesh%NeE
875 work%local(n)%val(:,ke) = ( this%AUX_VARS(auxvar_denshydro_id)%local(n)%val(:,ke) &
876 + this%PROG_VARS(prgvar_ddens_id )%local(n)%val(:,ke) &
877 ) * ( 1.0_rp - this%AUX_VARS(auxvar_qdry_id)%local(n)%val(:,ke) )
885 if ( dv_monit_id(im_engt) > 0 )
then
886 call this%Calc_diagVar(
'ENGT', work )
889 if ( dv_monit_id(im_engp) > 0 )
then
890 call this%Calc_diagVar(
'ENGP', work )
893 if ( dv_monit_id(im_engk) > 0 )
then
894 call this%Calc_diagVar(
'ENGK', work )
897 if ( dv_monit_id(im_engi) > 0 )
then
898 call this%Calc_diagVar(
'ENGI', work )
905 end subroutine atmosvars_monitor_core
910 subroutine atmosvars_preprocoperationforphys( this, dyncore )
920 if ( this%init_containers_item_flag(ic) )
then
921 call this%container_list(ic)%Preproc_operation_for_phys( this%container, dyncore )
925 end subroutine atmosvars_preprocoperationforphys
930 subroutine atmosvars_calculatediagnostics( this )
932 class(
atmosvars),
intent(inout),
target :: this
934 call this%container%Calc_diagnostics()
936 end subroutine atmosvars_calculatediagnostics
939 subroutine atmosvars_calcdiagvar( this, field_name, field_work )
942 character(*),
intent(in) :: field_name
945 call this%container%Calc_diagVar( field_name, field_work )
947 end subroutine atmosvars_calcdiagvar
950 subroutine atmosvars_calcdiagvar2d( this, field_name, field_work )
953 character(*),
intent(in) :: field_name
954 type(
meshfield2d),
intent(inout),
target :: field_work
961 field_work%varname = field_name
963 do n=1, field_work%mesh%LOCAL_MESH_NUM
964 lcmesh2d => field_work%mesh%lcmesh_list(n)
965 call vars_calc_diagnosevar2d_lc( field_name, field_work%local(n)%val, &
966 this%ptr_MP_AUXVARS2D_manager, this%ptr_CP_AUXVARS2D_manager, &
967 field_work%mesh, lcmesh2d, lcmesh2d%refElem2D )
971 end subroutine atmosvars_calcdiagvar2d
976 subroutine vars_calc_diagnosevar2d_lc( field_name, & ! (in)
978 mp_auxvars2d, cp_auxvars2d, mesh2d, lcmesh, elem )
988 character(*),
intent(in) :: field_name
989 real(rp),
intent(out) :: var_out(elem%np,lcmesh%nea)
996 logical :: sw_mp, sw_cp
1001 sw_mp =
associated(mp_auxvars2d)
1002 sw_cp =
associated(cp_auxvars2d)
1004 select case(trim(field_name))
1005 case(
'RAIN',
'SNOW')
1008 lcmesh%lcdomID, mesh2d, mp_auxvars2d, &
1009 sflx_rain_mp, sflx_snow_mp, sflx_engi_mp )
1013 lcmesh%lcdomID, mesh2d, cp_auxvars2d, &
1014 sflx_rain_cp, sflx_snow_cp, sflx_engi_cp )
1018 select case(trim(field_name))
1024 do ke=lcmesh%NeS, lcmesh%NeE
1026 var_out(p,ke) = 0.0_rp
1032 do ke=lcmesh%NeS, lcmesh%NeE
1034 var_out(p,ke) = var_out(p,ke) + sflx_rain_mp%val(p,ke)
1041 do ke=lcmesh%NeS, lcmesh%NeE
1043 var_out(p,ke) = var_out(p,ke) + sflx_rain_cp%val(p,ke)
1054 do ke=lcmesh%NeS, lcmesh%NeE
1056 var_out(p,ke) = 0.0_rp
1062 do ke=lcmesh%NeS, lcmesh%NeE
1064 var_out(p,ke) = var_out(p,ke) + sflx_snow_mp%val(p,ke)
1071 do ke=lcmesh%NeS, lcmesh%NeE
1073 var_out(p,ke) = var_out(p,ke) + sflx_snow_cp%val(p,ke)
1080 log_error(
"AtmosVars_calc_diagnoseVar2D_lc",*)
'The name of diagnostic variable is not suported. Check!', field_name
1085 end subroutine vars_calc_diagnosevar2d_lc
module Atmosphere / Physics / Cumulus Parameterization
subroutine, public atmosphycpvars_getlocalmeshfields_sfcflx(domid, mesh, sfcflx_list, sflx_rain, sflx_snow, sflx_engi)
module Atmosphere / Physics / Cloud Microphysics
subroutine, public atmosphympvars_getlocalmeshfields_sfcflx(domid, mesh, sfcflx_list, sflx_rain, sflx_snow, sflx_engi)
module Atmosphere / Variables
integer, parameter, public atmos_auxvars2d_num
subroutine, public atmosvars_getlocalmeshphytends(domid, mesh, phytends_list, dens_tp, momx_tp, momy_tp, momz_tp, rhot_tp, rhoh_p, rhoq_tp, lcmesh3d)
subroutine, public atmosvars_getlocalmeshsfcvar(domid, mesh, auxvars2d_list, prec, prec_engi, lcmesh2d)
subroutine, public atmosvars_getlocalmeshqtrc_qv(domid, mesh, trcvars_list, forcing_list, var, var_tp, lcmesh3d)
integer, parameter, public atm_vars_container_primary_id
subroutine, public atmosvars_getlocalmeshphyauxvars(domid, mesh, phyauxvars_list, pres, pt, lcmesh3d)
subroutine, public atmosvars_getlocalmeshprgvars(domid, mesh, prgvars_list, auxvars_list, ddens, momx, momy, momz, therm, dens_hyd, pres_hyd, rtot, cvtot, cptot, lcmesh3d)
subroutine, public atmosvars_getlocalmeshqtrcvarlist(domid, mesh, trcvars_list, varid_s, var_list, lcmesh3d)
subroutine, public atmosvars_getlocalmeshqtrcphytend(domid, mesh, phytends_list, qtrcid, rhoq_tp)
subroutine, public atmosvars_getlocalmeshprgvar(domid, mesh, prgvars_list, auxvars_list, varid, var, dens_hyd, pres_hyd, lcmesh3d)
subroutine, public atmosvars_getlocalmeshqtrcvar(domid, mesh, trcvars_list, varid, var, lcmesh3d)
module Atmosphere / Variables
integer, parameter, public atmos_diagvars2d_num
real(rp), dimension(prgvar_num), parameter progvars_check_min
integer, parameter, public atmos_diagvars_dens_id
integer, parameter, public atmos_diagvars_w_id
type(variableinfo), dimension(atmos_diagvars3d_num), public atmos_diagvars3d_vinfo
integer, parameter, public atmos_diagvars3d_num
integer, parameter, public atmos_diagvars_vmet_id
integer, parameter, public atmos_diagvars_rh_id
integer, parameter, public atmos_diagvars_engi_id
integer, parameter, public atmos_diagvars_umet_id
integer, parameter, public atmos_diagvars_qdry_id
integer, parameter, public atmos_diagvars_engk_id
type(variableinfo), dimension(atmos_diagvars2d_num), public atmos_diagvars2d_vinfo
integer, parameter, public atmos_diagvars_v_id
integer, parameter, public atmos_diagvars_t_id
integer, parameter, public atmos_diagvars_snow_id
integer, parameter, public atmos_diagvars_engt_id
integer, parameter, public atmos_diagvars_engp_id
integer, parameter, public atmos_diagvars_rain_id
integer, parameter, public atmos_diagvars_u_id
module FElib / Fluid dyn solver / Atmosphere / driver (3D nonhydrostatic model)
module FElib / Fluid dyn solver / Atmosphere / Nonhydrostatic model / Common
integer, parameter, public prgvar_scalar_num
integer, parameter, public phytend_momz_id
integer, parameter, public prgvar_momy_id
integer, parameter, public auxvar_cptot_id
integer, parameter, public prgvar_therm_id
integer, parameter, public auxvar_qdry_id
integer, parameter, public auxvar_cvtot_id
integer, parameter, public prgvar_ddens_id
integer, parameter, public prgvar_momz_id
integer, parameter, public phytend_rhot_id
integer, parameter, public phytend_momx_id
integer, parameter, public phytend_num
integer, parameter, public phytend_momy_id
integer, parameter, public prgvar_momx_id
integer, parameter, public auxvar_num
subroutine, public atm_dyn_dgm_nonhydro3d_common_get_varinfo(prgvar_info, auxvar_info, phytend_info)
Get variable information for atmospheric nonhydrostatic dynamical core.
integer, parameter, public auxvar_pt_id
integer, parameter, public prgvar_hvec_num
integer, parameter, public prgvar_num
integer, parameter, public phytend_rhoh_id
integer, parameter, public auxvar_preshydro_id
integer, parameter, public auxvar_thermhydro_id
integer, parameter, public auxvar_denshydro_id
integer, parameter, public phytend_dens_id
integer, parameter, public auxvar_rtot_id
integer, parameter, public auxvar_preshydro_ref_id
integer, parameter, public auxvar_pres_id
module FElib / Element / Base
module FElib / File / History
module FElib / File / Monitor
module FElib / File / Restart
type(file_restart_meshfield), public restart_file
An object to manage main restart file.
module FElib / Mesh / Local 2D
module FElib / Mesh / Local 3D
module FElib / Mesh / Local, Base
module FElib / Data / base
module FElib / Mesh / Base 2D
module FElib / Mesh / Base 3D
integer, public meshbase3d_dimtypeid_xyz
module FElib / Mesh / Base
module FElib / Data / base
module FElib / Data / Statistics
module FElib / Data / Communication base
FElib / model framework / variable manager.
Derived type to manage a computational mesh (base class)
Derived type to manage variables with atmospheric component.
Derived type to manage a set of variables (prognostic variables, tracer variables,...
Derived type to provide a driver of dynamical core with the atmospheric nonhydrostatic equations.
Derived type representing a 2D reference element.
Derived type representing a 3D reference element.
Derived type representing an arbitrary finite element.
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 local computational domain (base type)
Derived type representing a field with local mesh (base type)
Derived type to manage a computational mesh (base type for 2D domain)
Derived type to manage a computational mesh (base type for 3D domain)
Base type to manage a computational mesh.
Derived type representing a field with 2D mesh.
Derived type representing a field with 3D mesh.
Derived type representing a field (base type)
Container to save a pointer of MeshField(1D, 2D, 3D) object.