-
Notifications
You must be signed in to change notification settings - Fork 157
Support for high-resolution WACCM-X #1317
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: cam_development
Are you sure you want to change the base?
Changes from 6 commits
8a4ebe7
f7df859
3a43669
fc250fe
3474843
9e914d7
32f6768
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3226,7 +3226,7 @@ Default: .false. | |
|
||
<entry id="zmconv_parcel_hscale" type="real" category="conv" | ||
group="zmconv_nl" valid_values="" > | ||
The fraction of the boundary layer (PBL) depth, over which to mix the initial ZM convective parcel properties (fraction). | ||
The fraction of the boundary layer (PBL) depth, over which to mix the initial ZM convective parcel properties (fraction). | ||
Default: 0.5 | ||
</entry> | ||
|
||
|
@@ -8191,6 +8191,15 @@ multiplied by a factor of se_molecular_diff. | |
Default: 0. | ||
</entry> | ||
|
||
<entry id="se_min_temperature" type="real" category="se" | ||
group="dyn_se_inparm" valid_values="" > | ||
Used by SE dycore to apply floor to temperature..... | ||
|
||
NEEDS TO BE FILLED IN | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just a reminder this does need to be filled in There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done |
||
|
||
Default: 0. | ||
</entry> | ||
|
||
<entry id="se_hypervis_subcycle_q" type="integer" category="se" | ||
group="dyn_se_inparm" valid_values="" > | ||
Number of hyperviscosity subcycles done in tracer advection code. | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
./xmlchange ROF_NCPL=\$ATM_NCPL |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
mfilt=1,1,1,1,1,1 | ||
ndens=1,1,1,1,1,1 | ||
nhtfrq=-1,-1,-1,-1,-1,-1 | ||
write_nstep0 = .true. | ||
|
||
avgflag_pertape= 'I', 'I', 'A', 'I', 'I' | ||
|
||
empty_htapes=.true. | ||
fincl1= 'Z3GM', 'T', 'U', 'V', 'OMEGA', 'ElecColDens', 'PS', 'O', 'O2', 'H', | ||
'QRS_TOT', 'QRL_TOT', 'KVM', 'EKGW', 'TTGW', 'UTGW_TOTAL', 'VTGW_TOTAL' | ||
fincl2= 'Z3GM', 'T', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'EDens', 'PS', 'O', 'O2', 'H', | ||
'OH', 'NO', 'O3', 'SIGMAHAL', 'SIGMAPED' | ||
fincl3 ='T_24_COS', 'T_24_SIN', 'T_12_COS', 'T_12_SIN', | ||
'U_24_COS', 'U_24_SIN', 'U_12_COS', 'U_12_SIN', | ||
'V_24_COS', 'V_24_SIN', 'V_12_COS', 'V_12_SIN', | ||
'QRS_TOT_12_SIN', 'QRS_TOT_12_COS' | ||
fincl4 = 'ED1', 'ED2', 'PHIM2D', 'PHIHM', 'HALL_CONDUCTANCE', 'PED_CONDUCTANCE' | ||
fincl5 = 'ElecColDens', 'PSL' | ||
fincl6 = ' ' | ||
fincl7 = ' ' | ||
fincl8 = ' ' | ||
fincl9 = ' ' | ||
fincl10= ' ' | ||
|
||
ionos_npes = 3200 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
!---------------------------------------------------------------------------------- | ||
! Users should add all user specific namelist changes below in the form of | ||
! namelist_var = new_namelist_value | ||
! | ||
! Include namelist variables for drv_flds_in ONLY if -megan and/or -drydep options | ||
! are set in the CLM_NAMELIST_OPTS env variable. | ||
! | ||
! EXCEPTIONS: | ||
! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting | ||
! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting | ||
! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting | ||
! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting | ||
! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting | ||
! Set irrigate by the CLM_BLDNML_OPTS -irrig setting | ||
! Set dtime with L_NCPL option | ||
! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options | ||
! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases | ||
! (includes $inst_string for multi-ensemble cases) | ||
! Set glc_grid with CISM_GRID option | ||
! Set glc_smb with GLC_SMB option | ||
! Set maxpatch_glcmec with GLC_NEC option | ||
! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable | ||
!---------------------------------------------------------------------------------- | ||
hist_nhtfrq = -1 | ||
hist_mfilt = 1 | ||
hist_ndens = 1 | ||
|
||
flanduse_timeseries = ' ' |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -444,7 +444,7 @@ subroutine advance_hypervis_dp(edge3,elem,fvm,hybrid,deriv,nt,qn0,nets,nete,dt2, | |
use dimensions_mod, only: nu_scale_top,nu_lev,kmvis_ref,kmcnd_ref,rho_ref,km_sponge_factor | ||
use dimensions_mod, only: nu_t_lev | ||
use control_mod, only: nu, nu_t, hypervis_subcycle,hypervis_subcycle_sponge, nu_p, nu_top | ||
use control_mod, only: molecular_diff,sponge_del4_lev | ||
use control_mod, only: molecular_diff,sponge_del4_lev, min_temperature | ||
use hybrid_mod, only: hybrid_t!, get_loop_ranges | ||
use element_mod, only: element_t | ||
use derivative_mod, only: derivative_t, laplace_sphere_wk, vlaplace_sphere_wk, vlaplace_sphere_wk_mol | ||
|
@@ -688,6 +688,18 @@ subroutine advance_hypervis_dp(edge3,elem,fvm,hybrid,deriv,nt,qn0,nets,nete,dt2, | |
enddo | ||
enddo | ||
enddo | ||
if (min_temperature>0._r8) then | ||
Comment on lines
690
to
+691
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I was checking that being outside the loop over There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. My change in within the substepping loop (within the ic loop). I assume the temperature floor should be applied each substep. @PeterHjortLauritzen had some comments in the issue on where the temperature floor should be applied. I would like his input on this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would follow DOE's implementation where the limiter is called in the last stage of the RK time-stepping: That said, I don't know if it matters ... what we do know is that this seems to be an instability in this version of spetral-elements so putting it in the time-stepping of the inviscid equations of motion seems like a good place ... More details from DOE here: |
||
! apply floor to temperature | ||
do ie=nets,nete | ||
do k=sponge_del4_lev+2,nlev | ||
do j=1,np | ||
do i=1,np | ||
elem(ie)%state%T(i,j,k,nt) = max(elem(ie)%state%T(i,j,k,nt),min_temperature) | ||
end do | ||
end do | ||
end do | ||
end do | ||
end if | ||
call tot_energy_dyn(elem,fvm,nets,nete,nt,qn0,'dAH') | ||
end do | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -116,6 +116,7 @@ subroutine dyn_readnl(NLFileName) | |
use control_mod, only: max_hypervis_courant, statediag_numtrac,refined_mesh | ||
use control_mod, only: molecular_diff, pgf_formulation, dribble_in_rsplit_loop | ||
use control_mod, only: sponge_del4_nu_div_fac, sponge_del4_nu_fac, sponge_del4_lev | ||
use control_mod, only: min_temperature | ||
use dimensions_mod, only: ne, npart | ||
use dimensions_mod, only: large_Courant_incr | ||
use dimensions_mod, only: fvm_supercycling, fvm_supercycling_jet | ||
|
@@ -173,6 +174,8 @@ subroutine dyn_readnl(NLFileName) | |
real(r8) :: se_molecular_diff | ||
integer :: se_pgf_formulation | ||
integer :: se_dribble_in_rsplit_loop | ||
real(r8) :: se_min_temperature = 0.0_r8 | ||
|
||
namelist /dyn_se_inparm/ & | ||
se_fine_ne, & ! For refined meshes | ||
se_ftype, & ! forcing type | ||
|
@@ -218,7 +221,8 @@ subroutine dyn_readnl(NLFileName) | |
se_kmax_jet, & | ||
se_molecular_diff, & | ||
se_pgf_formulation, & | ||
se_dribble_in_rsplit_loop | ||
se_dribble_in_rsplit_loop, & | ||
se_min_temperature | ||
!-------------------------------------------------------------------------- | ||
|
||
! defaults for variables not set by build-namelist | ||
|
@@ -293,6 +297,8 @@ subroutine dyn_readnl(NLFileName) | |
call MPI_bcast(se_molecular_diff, 1, mpi_real8, masterprocid, mpicom, ierr) | ||
call MPI_bcast(se_pgf_formulation, 1, mpi_integer, masterprocid, mpicom, ierr) | ||
call MPI_bcast(se_dribble_in_rsplit_loop, 1, mpi_integer, masterprocid, mpicom, ierr) | ||
call MPI_bcast(se_min_temperature, 1, mpi_real8, masterprocid, mpicom, ierr) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @nusbaume - Probably next time we are in the SE dycore code, we should add checks for the MPI calls |
||
|
||
if (se_npes <= 0) then | ||
call endrun('dyn_readnl: ERROR: se_npes must be > 0') | ||
end if | ||
|
@@ -361,6 +367,8 @@ subroutine dyn_readnl(NLFileName) | |
molecular_diff = se_molecular_diff | ||
pgf_formulation = se_pgf_formulation | ||
dribble_in_rsplit_loop = se_dribble_in_rsplit_loop | ||
min_temperature = se_min_temperature | ||
|
||
if (fv_nphys > 0) then | ||
! Use finite volume physics grid and CSLAM for tracer advection | ||
nphys_pts = fv_nphys*fv_nphys | ||
|
@@ -496,6 +504,11 @@ subroutine dyn_readnl(NLFileName) | |
se_write_restart_unstruct | ||
|
||
write(iulog, '(a,e9.2)') 'dyn_readnl: se_molecular_diff = ', molecular_diff | ||
|
||
if (min_temperature>0._r8) then | ||
write(iulog, '(a,e9.2)') 'dyn_readnl: se_min_temperature = ', min_temperature | ||
end if | ||
|
||
end if | ||
|
||
call native_mapping_readnl(NLFileName) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a reminder to deal with this file after it is discussed in the CSEG meeting