Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9aa8ae5
Remove setting of xao Av
rljacob Sep 26, 2025
3acde49
Use correct temporary array sizes
rljacob Sep 26, 2025
014ede2
first pass at atm spectral separation
iulian787 Sep 2, 2025
2f2054b
add more extension fields
iulian787 Sep 18, 2025
9d60313
get rid of _ext tags
iulian787 Sep 18, 2025
c2cfd43
initialize aream for land too
iulian787 Sep 19, 2025
23cfa9a
do not project aream for lnd for spectral case
iulian787 Sep 19, 2025
d2c84c4
spectral case fixes
iulian787 Sep 23, 2025
7c93be5
more spectral fixes
iulian787 Sep 23, 2025
d20ec58
io needs also spectral case changes
iulian787 Sep 24, 2025
3c12589
field norm8wt removed by mistake
iulian787 Sep 24, 2025
8073f1e
remove spectral mesh only method
iulian787 Sep 25, 2025
5622cb4
for spectral case, global size changes
iulian787 Sep 26, 2025
789b94a
replace dummy with ngv
iulian787 Oct 3, 2025
393ba25
scm land case fixes
iulian787 Oct 8, 2025
2538070
fix for conus case
iulian787 Oct 8, 2025
85ed4e5
retrieve moab matrices only when it makes sense
iulian787 Oct 8, 2025
1b130da
Isolate atm ops in prep_rof_mrg_moab with rof_heat
rljacob Oct 14, 2025
172c10e
add areafact_samegrid to component_init_areacor_moab
rljacob Oct 30, 2025
62024f3
Add more handling of single column mode for land
rljacob Nov 3, 2025
4055dfe
Cover scm for land in mb routines
rljacob Nov 3, 2025
666ce45
Zero Si_snowh for single_column
rljacob Nov 3, 2025
4630bc6
Set ent_type correctly for scm land
rljacob Nov 3, 2025
c07c3ae
Set ent_type correctly with land is single column
rljacob Nov 3, 2025
2aa691e
Change how mb_scm_land is set
rljacob Nov 6, 2025
88f92c7
Set mbGridType to 0 for mlnid
rljacob Nov 7, 2025
0771e5e
Make sure areas are initialized in areacor
rljacob Nov 10, 2025
17d4f6e
In atm merge, make sure arrays for other components are initialized
rljacob Nov 10, 2025
6e346b1
Make sure land fluxes are zero when no land model
rljacob Nov 12, 2025
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
9 changes: 6 additions & 3 deletions components/eam/src/cpl/atm_comp_mct.F90
Original file line number Diff line number Diff line change
Expand Up @@ -504,12 +504,15 @@ subroutine atm_init_mct( EClock, cdata_a, x2a_a, a2x_a, NLFilename )
call atm_export_moab(Eclock, cam_out)
#endif
else ! if (StepNo != 0) then

#ifdef HAVE_MOAB
call t_startf('atm_read_srfrest_moab')
call atm_read_srfrest_moab ( EClock )
call t_stopf('atm_read_srfrest_moab')
#else
call t_startf('atm_read_srfrest_mct')
call atm_read_srfrest_mct( EClock, x2a_a, a2x_a )
call t_stopf('atm_read_srfrest_mct')
#ifdef HAVE_MOAB
call atm_read_srfrest_moab ( EClock )

#endif

! Sent .true. as an optional argument so that restart_init is set to .true. in atm_import
Expand Down
4 changes: 2 additions & 2 deletions components/eam/src/dynamics/se/dyn_comp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ subroutine dyn_init1(fh, NLFileName, dyn_in, dyn_out)
use seq_comm_mct, only: MHID, MHFID ! id of homme moab coarse and fine applications
use seq_comm_mct, only: ATMID
use seq_comm_mct, only: mhpgid ! id of pgx moab application
use semoab_mod, only: create_moab_meshes
use semoab_mod, only: create_moab_pg_mesh
use iMOAB, only : iMOAB_RegisterApplication
use iso_c_binding
#endif
Expand Down Expand Up @@ -269,7 +269,7 @@ subroutine dyn_init1(fh, NLFileName, dyn_in, dyn_out)
end if

#ifdef HAVE_MOAB
call create_moab_meshes(par, elem, fv_nphys)
call create_moab_pg_mesh(par, elem, fv_nphys)
#endif
! Define the CAM grids (this has to be after dycore spinup).
! Physics-grid will be defined later by phys_grid_init
Expand Down
72 changes: 36 additions & 36 deletions components/eamxx/src/dynamics/homme/interface/phys_grid_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -552,7 +552,7 @@ subroutine phys_grid_init (pgN)
use seq_comm_mct, only: MHID, MHFID ! id of homme moab coarse and fine applications
use seq_comm_mct, only: ATMID
use seq_comm_mct, only: mhpgid ! id of pgx moab application
use semoab_mod, only: create_moab_meshes
use semoab_mod, only: create_moab_pg_mesh
use iMOAB, only : iMOAB_RegisterApplication
use iso_c_binding
#endif
Expand Down Expand Up @@ -625,45 +625,45 @@ subroutine phys_grid_init (pgN)
call compute_global_area (pg)
#ifdef HAVE_MOAB
if (pgN > 0) then
appname="HM_COARSE"//C_NULL_CHAR
ATM_ID1 = 120 !
ierr = iMOAB_RegisterApplication(appname, par%comm, ATM_ID1, MHID)
if (ierr > 0 ) &
call abortmp('Error: cannot register moab app')
if(par%masterproc) then
write(iulog,*) " "
write(iulog,*) "register MOAB app:", trim(appname), " MHID=", MHID
write(iulog,*) " "
endif
appname="HM_FINE"//C_NULL_CHAR
ATM_ID1 = 119 ! this number should not conflict with other components IDs; how do we know?
ierr = iMOAB_RegisterApplication(appname, par%comm, ATM_ID1, MHFID)
if (ierr > 0 ) &
call abortmp('Error: cannot register moab app for fine mesh')
if(par%masterproc) then
write(iulog,*) " "
write(iulog,*) "register MOAB app:", trim(appname), " MHFID=", MHFID
write(iulog,*) " "
endif
appname="HM_PGX"//C_NULL_CHAR
ATM_ID1 = ATMID(1) ! this number should not conflict with other components IDs; how do we know?
!
! in this case, we reuse the main atm id, mhid will not be used for intersection anymore
! still, need to be careful
ierr = iMOAB_RegisterApplication(appname, par%comm, ATM_ID1, mhpgid)
if (ierr > 0 ) &
call abortmp('Error: cannot register moab app for fine mesh')
if(par%masterproc) then
write(iulog,*) " "
write(iulog,*) "register MOAB app:", trim(appname), " MHPGID=", mhpgid
write(iulog,*) " "
endif
appname="HM_COARSE"//C_NULL_CHAR
ATM_ID1 = 120 !
ierr = iMOAB_RegisterApplication(appname, par%comm, ATM_ID1, MHID)
if (ierr > 0 ) &
call abortmp('Error: cannot register moab app')
if(par%masterproc) then
write(iulog,*) " "
write(iulog,*) "register MOAB app:", trim(appname), " MHID=", MHID
write(iulog,*) " "
endif
appname="HM_FINE"//C_NULL_CHAR
ATM_ID1 = 119 ! this number should not conflict with other components IDs; how do we know?
ierr = iMOAB_RegisterApplication(appname, par%comm, ATM_ID1, MHFID)
if (ierr > 0 ) &
call abortmp('Error: cannot register moab app for fine mesh')
if(par%masterproc) then
write(iulog,*) " "
write(iulog,*) "register MOAB app:", trim(appname), " MHFID=", MHFID
write(iulog,*) " "
endif
appname="HM_PGX"//C_NULL_CHAR
ATM_ID1 = ATMID(1) ! this number should not conflict with other components IDs; how do we know?
!
! in this case, we reuse the main atm id, mhid will not be used for intersection anymore
! still, need to be careful
ierr = iMOAB_RegisterApplication(appname, par%comm, ATM_ID1, mhpgid)
if (ierr > 0 ) &
call abortmp('Error: cannot register moab app for fine mesh')
if(par%masterproc) then
write(iulog,*) " "
write(iulog,*) "register MOAB app:", trim(appname), " MHPGID=", mhpgid
write(iulog,*) " "
endif
! instance distributed moab meshes from elem structures
! 1 ) spectral coarse mesh
! 2 ) GLL fine quad mesh (used mostly for visualization)
! 3 ) pgN FV type mesh, (most of the time pg2 mesh), used for coupling with other components;
call create_moab_meshes(par, elem, pgN)
endif
call create_moab_pg_mesh(par, elem, pgN)
endif
#endif
end subroutine phys_grid_init

Expand Down
Loading
Loading