Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
85adf34
first pass at refactoring the nudging code
Oct 26, 2025
17770d2
fixed compiler issues
mvertens Oct 27, 2025
e7f5409
more refactor of code
Oct 27, 2025
3e6c6bd
migrated atm_stream_nuding.F90 code into nudging.F90 and added atm_sh…
mvertens Oct 29, 2025
8bb45f1
fixes to nudging for running
mvertens Oct 30, 2025
a10e8a5
introduced cam_esmf_mod in src/control to have access to the model_me…
mvertens Oct 30, 2025
f479a7c
Merge branch 'feature/refactor_nudging_temp' into feature/refactor_nu…
mvertens Nov 1, 2025
bb36e8e
introduced nudgeing datapath
mvertens Nov 5, 2025
bf6eac3
fixed problem in having nudging be one time step too far ahead
mvertens Nov 18, 2025
45bb124
more refactor of nudging code base
mvertens Nov 22, 2025
7ab3db0
more fixes to refactor of nudging
mvertens Nov 25, 2025
afa5c2b
mapalgo and tintalgo are now namelist input
mvertens Dec 8, 2025
e2289df
Merge commit 'bf6eac365dac2746dcb8e5e61d99af0645a6c9a2' into feature/…
mvertens Dec 19, 2025
06f1855
Merge commit '7ab3db06d8153e635e0b2ee5977e17295525d8a8' into feature/…
mvertens Dec 19, 2025
68cff4a
Merge commit 'afa5c2bc4cc2989e8a0c6a9de8d346e257042361' into feature/…
mvertens Dec 19, 2025
a50100a
new default settings for namelists - particularly nudging_align_year
mvertens Dec 11, 2025
93e6f46
fixed namelist checking to work only if nudge_model is on
mvertens Dec 12, 2025
9493bdb
fixed standard out issues from nudging
mvertens Dec 18, 2025
d0ae463
fixed log output
mvertens Dec 19, 2025
5c81892
fixed standard output
mvertens Dec 19, 2025
875a455
Merge remote-tracking branch 'mvertens/feature/refactor_nudging2' int…
mvertens Dec 20, 2025
e1e44e8
merged to head of noresm_develop
mvertens Dec 21, 2025
f2d10a2
fixed bug in stream_yearAlign for PS
mvertens Feb 5, 2026
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
49 changes: 38 additions & 11 deletions bld/namelist_files/namelist_definition.xml
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that since the Nudge_begin and Nudge_end variables are model times, we need begin and end variables that are specific to the nudging dataset being used (similar to other uses of CDEPS stream info):

<entry id="nudge_data_year_first" type="integer" category="nudging"
       group="nudging_nl" valid_values="" >
First year to use in Nudge_Filenames dataset.
Default: none

<entry id="nudge_data_year_last" type="integer" category="nudging"
       group="nudging_nl" valid_values="" >
Last year to use in Nudge_Filenames dataset.
Default: none
</entry>

Original file line number Diff line number Diff line change
Expand Up @@ -220,32 +220,35 @@
Default: FALSE
</entry>

<entry id="Nudge_Path" type="char*256" input_pathname="abs" category="nudging"
<entry id="Nudge_Datapath" type="char*256" category="nudging"
group="nudging_nl" valid_values="" >
Full pathname of analyses data to use for nudging.
(e.g. '/$DIN_LOC_ROOT/atm/cam/nudging/')
Full pathname of datapath where Nudge_Filenames are located.
Default: none
</entry>

<entry id="Nudge_File_Template" type="char*80" category="nudging"
<entry id="Nudge_Filenames" type="char*256(100)" category="nudging"
group="nudging_nl" valid_values="" >
Template for Nudging analyses file names.
(e.g. '%y/ERAI_ne30np4_L30.cam2.i.%y-%m-%d-%s.nc')
Filenames of analyses data to use for nudging.
Default: none
</entry>

<entry id="Nudge_Times_Per_Day" type="integer" category="nudging"
<entry id="Nudge_Meshfile" type="char*256" category="nudging"
group="nudging_nl" valid_values="" >
Number of analyses files per day.
(e.g. 4 --> 6 hourly analyses)
ESMF mesh file that corresponds to the nudging files
Default: none
</entry>

<entry id="Model_Times_Per_Day" type="integer" category="nudging"
<entry id="Nudge_lev_dimname" type="char*256" category="nudging"
group="nudging_nl" valid_values="" >
Name of vertical dimension in file.
Default: none
</entry>
Comment on lines +241 to +245

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this if we have Nudge_levname (introduced below)? You can easily find the dimension name from the variable name if needed (they should be the same for a coordinate variable).
In addition, it is not used anywhere in the code.
Please remove.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


<entry id="Model_Update_Times_Per_Day" type="integer" category="nudging"
group="nudging_nl" valid_values="" >
Number of time to update model data per day.
(e.g. 48 --> 1800 Second timestep)
Default: none
Default: 6
</entry>

<entry id="Nudge_Beg_Year" type="integer" category="nudging"
Expand Down Expand Up @@ -284,6 +287,12 @@
Default: none
</entry>

<entry id="Nudge_Align_Year" type="integer" category="nudging"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this name should follow the same convention as other CDEPS stream variables:

Suggested change
<entry id="Nudge_Align_Year" type="integer" category="nudging"
<entry id="Nudge_Year_Align" type="integer" category="nudging"

group="nudging_nl" valid_values="" >
Model year to align with Nudge_Beg_Year.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on comments above, I think this could be clarified:

Suggested change
Model year to align with Nudge_Beg_Year.
Model (simulation) year to align with nudge_data_year_first.
If this is set to Nudge_Beg_Year, then nudging will begin with the beginning of the dataset.
If this is set to some other year, there will be an offset between the model year and the year in the nudging data currently being used.

Default: none
</entry>

<entry id="Nudge_Force_Opt" type="integer" category="nudging"
group="nudging_nl" valid_values="" >
Select the form of nudging forcing, where (t'==Analysis times ; t==Model Times)
Expand All @@ -301,6 +310,24 @@
Default: 0
</entry>

<entry id="Nudge_Mapalgo" type="char*256" category="nudging"
group="nudging_nl" valid_values="bilinear,consf" >
Mapping algorithm to map nudge data to model grid.
Default: bilinear
</entry>

<entry id="Nudge_Taxmode" type="char*256" category="nudging"
group="nudging_nl" valid_values="limit,extend" >
Time extrapolation mode for time interpolation.
Default: limit
</entry>

<entry id="Nudge_levname" type="char*256" category="nudging"
group="nudging_nl" valid_values="" >
Name of vertical variable in Nudge_filenames.
Default: bilinear
</entry>

<entry id="Nudge_Uprof" type="integer" category="nudging"
group="nudging_nl" valid_values="" >
Profile index for U nudging.
Expand Down
1 change: 1 addition & 0 deletions src/cpl/nuopc/atm_comp_nuopc.F90
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ module atm_comp_nuopc
use ESMF , only : ESMF_DistGrid, ESMF_DistGridCreate
use ESMF , only : ESMF_Mesh, ESMF_MeshCreate, ESMF_MeshGet, ESMF_FILEFORMAT_ESMFMESH
use ESMF , only : ESMF_Clock, ESMF_ClockGet, ESMF_ClockSet, ESMF_ClockGetNextTime, ESMF_ClockAdvance
use ESMF , only : ESMF_CLockCreate

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not used anymore, please remove

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

use ESMF , only : ESMF_Time, ESMF_TimeGet
use ESMF , only : ESMF_Alarm, ESMF_ClockGetAlarm, ESMF_AlarmRingerOff, ESMF_AlarmIsRinging
use ESMF , only : ESMF_ClockGetAlarmList, ESMF_ALARMLIST_ALL, ESMF_AlarmSet
Expand Down
Loading