Skip to content

Commit 8258580

Browse files
committed
switch back to bilinear interpolation, setup some TEM defaults
modified: bld/build-namelist modified: bld/namelist_files/namelist_defaults_cam.xml modified: src/utils/ctem_diags_mod.F90 modified: src/utils/esmf_phys2lonlat_mod.F90
1 parent 6128154 commit 8258580

4 files changed

Lines changed: 34 additions & 12 deletions

File tree

bld/build-namelist

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,11 @@ if ($docosp) {
798798
add_default($nl, 'docosp', 'val'=>'.true.');
799799
}
800800

801+
# TEM diags
802+
if ($phys =~ /cam7/) {
803+
add_default($nl, 'ctem_diags_numlats');
804+
add_default($nl, 'cam_physics_mesh');
805+
}
801806

802807
# Constituents
803808
# ============

bld/namelist_files/namelist_defaults_cam.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,10 @@
951951
<cam_physics_mesh hgrid="ne30np4" npg="3">atm/cam/coords/ne30pg3_esmf_20200428.nc</cam_physics_mesh>
952952
<cam_physics_mesh hgrid="ne120np4" npg="3">share/meshes/ne120pg3_ESMFmesh_cdf5_c20211018.nc</cam_physics_mesh>
953953

954+
<!-- For ESMF regrid zonal-mean TEM diagnostics -->
955+
<ctem_diags_numlats hgrid="ne16np4">90</ctem_diags_numlats>
956+
<ctem_diags_numlats hgrid="ne30np4">180</ctem_diags_numlats>
957+
954958
<!-- For scaling lightning sources of NOx -->
955959
<lght_no_prd_factor >1.00D0</lght_no_prd_factor>
956960
<lght_no_prd_factor hgrid="ne30np4" >1.80D0</lght_no_prd_factor>

src/utils/ctem_diags_mod.F90

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module ctem_diags_mod
1414
use spmd_utils, only: masterproc
1515
use ref_pres, only: pref_mid
1616
use esmf_lonlat_grid_mod, only: beglon=>lon_beg, endlon=>lon_end, beglat=>lat_beg, endlat=>lat_end
17-
use cam_history, only: addfld, outfld, horiz_only
17+
use cam_history, only: addfld, outfld, horiz_only, add_default
1818
use cam_history_support, only : fillvalue
1919
use perf_mod, only: t_startf, t_stopf
2020
use cam_logfile, only: iulog
@@ -223,6 +223,17 @@ subroutine ctem_diags_init()
223223
call addfld ('PStem', horiz_only, 'A', 'Pa', 'Surface Pressure', gridname='ctem_lonlat')
224224
call addfld ('MSKtem',horiz_only, 'A', '1', 'TEM mask', gridname='ctem_lonlat' )
225225

226+
! default monthly-means
227+
call add_default('Uzm',1,' ')
228+
call add_default('Vzm',1,' ')
229+
call add_default('Wzm',1,' ')
230+
call add_default('THzm',1,' ')
231+
call add_default('VTHzm',1,' ')
232+
call add_default('WTHzm',1,' ')
233+
call add_default('UVzm',1,' ')
234+
call add_default('UWzm',1,' ')
235+
call add_default('PSzm',1,' ')
236+
226237
end subroutine ctem_diags_init
227238

228239
!-----------------------------------------------------------------------------

src/utils/esmf_phys2lonlat_mod.F90

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module esmf_phys2lonlat_mod
1313
use ESMF, only: ESMF_FieldCreate, ESMF_FieldRegridStore
1414
use ESMF, only: ESMF_FieldGet, ESMF_FieldRegrid
1515
use ESMF, only: ESMF_KIND_I4, ESMF_KIND_R8, ESMF_TYPEKIND_R8
16-
use ESMF, only: ESMF_REGRIDMETHOD_CONSERVE
16+
use ESMF, only: ESMF_REGRIDMETHOD_BILINEAR, ESMF_POLEMETHOD_ALLAVG, ESMF_EXTRAPMETHOD_NEAREST_IDAVG
1717
use ESMF, only: ESMF_TERMORDER_SRCSEQ, ESMF_MESHLOC_ELEMENT, ESMF_STAGGERLOC_CENTER
1818
use ESMF, only: ESMF_FieldDestroy, ESMF_RouteHandleDestroy
1919
use esmf_check_error_mod, only: check_esmf_error
@@ -101,19 +101,21 @@ subroutine esmf_phys2lonlat_init()
101101
call check_esmf_error(rc, subname//'ESMF_FieldCreate 2D lonlat fld ERROR')
102102

103103
call ESMF_FieldRegridStore(srcField=physfld_3d, dstField=lonlatfld_3d, &
104-
regridMethod=ESMF_REGRIDMETHOD_CONSERVE, &
105-
routeHandle=rh_phys2lonlat_3d, &
106-
srcTermProcessing=smm_srctermproc, &
107-
pipelineDepth=smm_pipelinedep, &
108-
rc=rc)
104+
regridMethod=ESMF_REGRIDMETHOD_BILINEAR, &
105+
polemethod=ESMF_POLEMETHOD_ALLAVG, &
106+
extrapMethod=ESMF_EXTRAPMETHOD_NEAREST_IDAVG, &
107+
routeHandle=rh_phys2lonlat_3d, factorIndexList=factorIndexList, &
108+
factorList=factorList, srcTermProcessing=smm_srctermproc, &
109+
pipelineDepth=smm_pipelinedep, rc=rc)
109110
call check_esmf_error(rc, subname//'ESMF_FieldRegridStore 3D routehandle ERROR')
110111

111112
call ESMF_FieldRegridStore(srcField=physfld_2d, dstField=lonlatfld_2d, &
112-
regridMethod=ESMF_REGRIDMETHOD_CONSERVE, &
113-
routeHandle=rh_phys2lonlat_2d, &
114-
srcTermProcessing=smm_srctermproc, &
115-
pipelineDepth=smm_pipelinedep, &
116-
rc=rc)
113+
regridMethod=ESMF_REGRIDMETHOD_BILINEAR, &
114+
polemethod=ESMF_POLEMETHOD_ALLAVG, &
115+
extrapMethod=ESMF_EXTRAPMETHOD_NEAREST_IDAVG, &
116+
routeHandle=rh_phys2lonlat_2d, factorIndexList=factorIndexList, &
117+
factorList=factorList, srcTermProcessing=smm_srctermproc, &
118+
pipelineDepth=smm_pipelinedep, rc=rc)
117119
call check_esmf_error(rc, subname//'ESMF_FieldRegridStore 3D routehandle ERROR')
118120

119121
end subroutine esmf_phys2lonlat_init

0 commit comments

Comments
 (0)