Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion FElib/src/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.1.0
1.1.1
5 changes: 5 additions & 0 deletions HISTORY
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
= 2026-07-11 (1.1.1)
* Fix bugs
* Fix bugs introduced in new variable container framework.

= 2026-07-06 (1.1.0)

* New features
* Begin introducing OpenACC/GPU support in FElib and sample programs, including device-data management and NVIDIA-oriented build and run configurations.
* Add multigrid-method modules in the DG framework and sample programs for 2D and 3D Poisson problems.
* Add an atmospheric-variable container framework that enables physics components to use atmospheric states that may differ from those used by the DG dynamical core.
* Add preprocessing and smoothing options for atmospheric variables used in physics processes, including modal and quasi-global filtering strategies.
* Add a gray radiation scheme with optical-depth calculations, a radiation driver interface, history output, and a test case.
Expand Down
2 changes: 1 addition & 1 deletion model/atm_nonhydro3d/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.1.0
1.1.1
317 changes: 174 additions & 143 deletions model/atm_nonhydro3d/src/atmos/mod_atmos_phy_mp.F90

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions model/atm_nonhydro3d/src/atmos/mod_atmos_vars_container.F90
Original file line number Diff line number Diff line change
Expand Up @@ -801,7 +801,7 @@ subroutine AtmosVars_GetLocalMeshQTRC_Qv( domID, mesh, trcvars_list, forcing_lis
class(ModelVarManager), intent(inout) :: trcvars_list
class(ModelVarManager), intent(inout) :: forcing_list
class(LocalMeshFieldBase), pointer, intent(out) :: var
class(LocalMeshFieldBase), pointer, intent(out) :: var_tp
class(LocalMeshFieldBase), pointer, intent(out), optional :: var_tp
class(LocalMesh3D), pointer, intent(out), optional :: lcmesh3D

class(MeshFieldBase), pointer :: field
Expand All @@ -822,7 +822,7 @@ subroutine AtmosVars_GetLocalMeshQTRC_Qv( domID, mesh, trcvars_list, forcing_lis
call field%GetLocalMeshField(domID, var)

call forcing_list%Get(tend_iq, field)
call field%GetLocalMeshField(domID, var_tp)
if (present(var_tp)) call field%GetLocalMeshField(domID, var_tp)

if (present(lcmesh3D)) then
call mesh%GetLocalMesh( domID, lcmesh )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,11 @@ module mod_user
RHOH_p => PHYTEND_RHOH_ID

use mod_atmos_vars, only: &
AtmosVarsContainer, &
AtmosVars_GetLocalMeshPrgVars, &
AtmosVars_GetLocalMeshPhyAuxVars, &
AtmosVars_GetLocalMeshQTRC_Qv
AtmosVars_GetLocalMeshQTRC_Qv, &
ATM_VARS_CONTAINER_PRIMARY_ID

use mod_user_sub_BLmixing, only: &
USER_sub_BLmixing_Init, USER_sub_BLmixing_calc_tendency
Expand Down Expand Up @@ -121,6 +123,9 @@ module mod_user
logical :: APPLY_NewFilter
type(Filter) :: newFilter

integer :: BL_VARS_CONTAINER_ID
logical :: is_setup_bl_vars_container

contains

!OCL SERIAL
Expand Down Expand Up @@ -157,6 +162,7 @@ subroutine USER_setup( this, atm )
real(RP) :: FilterWidthFac
namelist / PARAM_USER / &
USER_do, &
BL_VARS_CONTAINER_ID, &
APPLY_NewFilter, FilterShape, FilterWidthFac
integer :: ierr

Expand All @@ -183,6 +189,8 @@ subroutine USER_setup( this, atm )
FilterShape = "GAUSSIAN"
FilterWidthFac = 1.0_RP

BL_VARS_CONTAINER_ID = ATM_VARS_CONTAINER_PRIMARY_ID

!--- read namelist
rewind(IO_FID_CONF)
read(IO_FID_CONF,nml=PARAM_USER,iostat=ierr)
Expand Down Expand Up @@ -213,6 +221,7 @@ subroutine USER_setup( this, atm )

!- Setup BL mixing
call USER_sub_BLmixing_Init( atm%mesh%ptr_mesh )
is_setup_bl_vars_container = .false.

!-
call newFilter%Init( FilterShape, FilterWidthFac, atm%mesh%ptr_mesh )
Expand All @@ -226,6 +235,7 @@ subroutine USER_calc_tendency( this, atm )
use scale_file_history_meshfield, only: &
FILE_HISTORY_meshfield_in
use scale_atm_dyn_dgm_nonhydro3d_common, only: &
PHYTEND_NUM1 => PHYTEND_NUM, &
DENS_p => PHYTEND_DENS_ID, &
MOMX_p => PHYTEND_MOMX_ID, &
MOMY_p => PHYTEND_MOMY_ID, &
Expand All @@ -236,23 +246,25 @@ subroutine USER_calc_tendency( this, atm )
class(User), intent(inout) :: this
class(AtmosComponent), intent(inout) :: atm

real(RP) :: dt
class(AtmosVarsContainer), pointer :: vars_container
class(AtmosVarsContainer), pointer :: vars_container_BL
!----------------------------

dt = atm%time_manager%dtsec
call atm%vars%Get_container( ATM_VARS_CONTAINER_PRIMARY_ID, vars_container )

! if ( APPLY_NewFilter ) then
! call newFilter%Apply( atm%vars%PHY_TEND(DENS_p), atm%mesh%ptr_mesh )
! call newFilter%Apply( atm%vars%PHY_TEND(MOMX_p), atm%mesh%ptr_mesh )
! call newFilter%Apply( atm%vars%PHY_TEND(MOMY_p), atm%mesh%ptr_mesh )
! call newFilter%Apply( atm%vars%PHY_TEND(MOMZ_p), atm%mesh%ptr_mesh )
! call newFilter%Apply( atm%vars%PHY_TEND(RHOT_p), atm%mesh%ptr_mesh )
! call newFilter%Apply( atm%vars%PHY_TEND(RHOH_p), atm%mesh%ptr_mesh )
! call newFilter%Apply( atm%vars%PHY_TEND(RHOH_p+1), atm%mesh%ptr_mesh )
! end if
if ( .not. is_setup_bl_vars_container ) then
call atm%vars%Setup_container( BL_VARS_CONTAINER_ID, atm%mesh )
is_setup_bl_vars_container = .true.

call atm%vars%container_list(BL_VARS_CONTAINER_ID)%Preproc_operation_for_phys( atm%vars%container, atm%dyn_proc%dyncore_driver )
end if
call atm%vars%Get_container( BL_VARS_CONTAINER_ID, vars_container_BL )

!-- Boundary layer mixing
call USER_sub_BLmixing_calc_tendency( atm%vars, &
call USER_sub_BLmixing_calc_tendency( &
vars_container%PHY_TEND(MOMX_p), vars_container%PHY_TEND(MOMY_p), &
vars_container%PHY_TEND(RHOT_p), vars_container%PHY_TEND(PHYTEND_NUM1+1), &
vars_container, vars_container_BL, &
atm%mesh%DOptrMat(3), atm%mesh%LiftOptrMat, atm%mesh%ptr_mesh )

return
Expand Down
Loading