Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
149d2a8
Add 3-D grid analysis nudging FDDA to MPAS-A
jherwehe Oct 7, 2022
27022fd
Adding new init_case = 10 in init_atmosphere to generate FDDA input f…
maywswong Jul 15, 2025
dd27c4a
Changing FDDA stream variables from *_fdda_new to *_fdda.
maywswong Jul 17, 2025
7d37aa4
Changing th_fdda to theta_fdda
maywswong Jul 30, 2025
636fb1d
Moving FDDA scheme from the physics to the dynamics, implemented simi…
maywswong Jul 30, 2025
8047f3c
Moving FDDA tendency variables (rthfddaten, etc.) from the tend_physi…
maywswong Jul 30, 2025
4ba4a78
Moving FDDA tendency variables (rthfddaten, etc.) from the tend_physi…
maywswong Jul 30, 2025
9a6b6bf
Moving *_fdda_new, *_fdda_old variables into one variable *_fdda with…
maywswong Aug 1, 2025
3ae1014
Corrections from rebasing:
weiwangncar Aug 17, 2025
601cf8f
Merging modifications based on the EPA analysis nudging tool to V8.4.…
maywswong Jun 30, 2026
88159c8
* Removing uEdge_fdda, uReconstructX_fdda, uReconstructY_fdda, uRecon…
maywswong Jun 30, 2026
6feeb70
Removing mpas_log_write statements in core_atmosphere/dynamics/mpas_a…
maywswong Jun 30, 2026
1bca336
Added uReconstructX_fdda, etc. back to the fdda_state variable struct…
maywswong Jun 30, 2026
3348fcc
Output scalars_fdda, not qv_fdda.
maywswong Jun 30, 2026
2aec7d9
In Registry.xml, scalars_fdda is a var_array, not variable.
maywswong Jun 30, 2026
a16f533
Corrected typo in Registry.xml
maywswong Jun 30, 2026
cf6211b
Change the name of the namelist record for the nudging namelist confi…
maywswong Jul 1, 2026
6c57483
Merge branch 'master' of https://github.com/MPAS-Dev/MPAS-Model into …
maywswong Jul 1, 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
145 changes: 143 additions & 2 deletions src/core_atmosphere/Registry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,90 @@
possible_values=".true. or .false."/>
</nml_record>

<nml_record name="IAU" in_defaults="true">
<nml_record name="nudging" in_defaults="true">
<nml_option name="config_fdda_scheme" type="character" default_value="off" in_defaults="false"
units="-"
description="configuration for four-dimensional data assimilation"
possible_values="`suite',`analysis',`scaled',`off'"/>

<nml_option name="config_fdda_int" type="real" default_value="21600." in_defaults="false"
units="s"
description="nudging time interval"
possible_values="Positive real values"/>

<nml_option name="config_fdda_scale_min" type="real" default_value="0." in_defaults="false"
units="-"
description="nudging scale factor minimum"
possible_values="Positive real values"/>

<nml_option name="config_fdda_scale_max" type="real" default_value="100000." in_defaults="false"
units="-"
description="nudging scale factor maximum"
possible_values="Positive real values"/>

<nml_option name="config_fdda_t" type="logical" default_value="false" in_defaults="false"
units="-"
description="whether to enable temperature nudging"
possible_values=".true. or .false."/>

<nml_option name="config_fdda_t_coef" type="real" default_value="3.0e-4" in_defaults="false"
units="s^{-1}"
description="nudging coefficient for temperature"
possible_values="Positive real values"/>

<nml_option name="config_fdda_t_in_pbl" type="logical" default_value="true" in_defaults="false"
units="-"
description="whether to enable temperature nudging within the PBL"
possible_values=".true. or .false."/>

<nml_option name="config_fdda_t_min_layer" type="integer" default_value="0" in_defaults="false"
units="-"
description="model level above which nudging is enabled for temperature"
possible_values="Positive integers"/>

<nml_option name="config_fdda_q" type="logical" default_value="false" in_defaults="false"
units="-"
description="whether to enable water vapor nudging"
possible_values=".true. or .false."/>

<nml_option name="config_fdda_q_coef" type="real" default_value="3.0e-4" in_defaults="false"
units="s^{-1}"
description="nudging coefficient for water vapor"
possible_values="Positive real values"/>

<nml_option name="config_fdda_q_in_pbl" type="logical" default_value="true" in_defaults="false"
units="-"
description="whether to enable water vapor nudging within the PBL"
possible_values=".true. or .false."/>

<nml_option name="config_fdda_q_min_layer" type="integer" default_value="0" in_defaults="false"
units="-"
description="model level above which nudging is enabled for water vapor"
possible_values="Positive integers"/>

<nml_option name="config_fdda_uv" type="logical" default_value="false" in_defaults="false"
units="-"
description="whether to enable u and v nudging"
possible_values=".true. or .false."/>

<nml_option name="config_fdda_uv_coef" type="real" default_value="3.0e-4" in_defaults="false"
units="s^{-1}"
description="nudging coefficient for u and v"
possible_values="Positive real values"/>

<nml_option name="config_fdda_uv_in_pbl" type="logical" default_value="true" in_defaults="false"
units="-"
description="whether to enable u and v nudging within the PBL"
possible_values=".true. or .false."/>

<nml_option name="config_fdda_uv_min_layer" type="integer" default_value="0" in_defaults="false"
units="-"
description="model level above which nudging is enabled for u and v"
possible_values="Positive integers"/>

</nml_record>

<nml_record name="IAU" in_defaults="true">
<nml_option name="config_IAU_option" type="character" default_value="off"
units="-"
description="Incremental Analysis Update scheme"
Expand All @@ -429,7 +512,7 @@
units="s"
description="Length of window over which analysis increments are applied"
possible_values="Non-negative real values"/>
</nml_record>
</nml_record>

<nml_record name="assimilation" in_defaults="false">
<nml_option name="config_jedi_da" type="logical" default_value="false"
Expand Down Expand Up @@ -897,6 +980,14 @@
<var name="rnwfablten"/>
<var name="rthratensw"/>
<var name="rthratenlw"/>
<var name="rthfddaten"/>
<var name="rqvfddaten"/>
<var name="rufddaten"/>
<var name="rvfddaten"/>
<var name="theta_fdda"/>
<var name="qv_fdda"/>
<var name="u_fdda"/>
<var name="v_fdda"/>
<var name="sfc_albbck"/>
<var name="skintemp"/>
<var name="snow"/>
Expand Down Expand Up @@ -1170,6 +1261,18 @@
#endif
</stream>

<stream name="fdda"
type="input"
filename_template="x1.40962.fdda.nc"
input_interval="6:00:00"
immutable="true">

<var name="qv_fdda"/>
<var name="theta_fdda"/>
<var name="u_fdda"/>
<var name="v_fdda"/>
</stream>

<stream name="iau"
type="input"
filename_template="x1.40962.AmB.$Y-$M-$D_$h.$m.$s.nc"
Expand Down Expand Up @@ -1790,6 +1893,22 @@
#endif
</var_struct>

<var_struct name="fdda" time_levs="2">

<var name="qv_fdda" type="real" dimensions="nVertLevels nCells Time" units="kg kg^{-1}"
description="water vapor mixing ratio for FDDA grid nudging"/>

<var name="theta_fdda" type="real" dimensions="nVertLevels nCells Time" units="K"
description="potential temperature for FDDA grid nudging"/>

<var name="u_fdda" type="real" dimensions="nVertLevels nCells Time" units="m s^{-1}"
description="zonal wind component for FDDA grid nudging"/>

<var name="v_fdda" type="real" dimensions="nVertLevels nCells Time" units="m s^{-1}"
description="meridional wind component for FDDA grid nudging"/>

</var_struct>

<var_struct name="diag" time_levs="1">

<!-- coefficients for the vertical tridiagonal solve -->
Expand Down Expand Up @@ -2116,6 +2235,28 @@
#endif
</var_struct>

<!-- ================================================================================================== -->
<!-- TENDENCIES FROM FOUR DIMENSIONAL DATA ASSIMILATION: -->
<!-- ================================================================================================== -->
<var_struct name="tend_fdda" time_levs="1">
<var name="rthfddaten" type="real" dimensions="nVertLevels nCells Time" units="K s^{-1}"
description="tendency of potential temperature due to FDDA"/>

<var name="rqvfddaten" type="real" dimensions="nVertLevels nCells Time" units="kg kg^{-1} s^{-1}"
description="tendency of water vapor mixing ratio due to FDDA"/>

<var name="rufddaten" type="real" dimensions="nVertLevels nCells Time" units="m s^{-1}"
description="tendency of zonal wind component due to FDDA"/>

<var name="rvfddaten" type="real" dimensions="nVertLevels nCells Time" units="m s^{-1}"
description="tendency of meridional wind component due to FDDA"/>

<var name="rufddaten_Edge" type="real" dimensions="nVertLevels nEdges Time" units="m s^{-1}"
description="tendency of horizontal normal velocity due to FDDA"/>

</var_struct>


<!-- ===================================================================================== -->
<!-- Storage for lateral boundary conditions: -->
<!-- Time-level 1 contains tendencies for variables -->
Expand Down
2 changes: 1 addition & 1 deletion src/core_atmosphere/dynamics/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ OBJS = mpas_atm_time_integration.o \

all: $(OBJS)

mpas_atm_time_integration.o: mpas_atm_boundaries.o mpas_atm_iau.o mpas_atm_dissipation_models.o
mpas_atm_time_integration.o: mpas_atm_boundaries.o mpas_atm_iau.o mpas_atm_dissipation_models.o mpas_atm_fdda.o

mpas_atm_boundaries.o:

Expand Down
Loading