Skip to content
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

Enable aerosol cycling #314

Closed
WalterKolczynski-NOAA opened this issue Apr 17, 2021 · 0 comments
Closed

Enable aerosol cycling #314

WalterKolczynski-NOAA opened this issue Apr 17, 2021 · 0 comments
Assignees
Labels
coupled Issues related to the coupled branch feature New feature or request

Comments

@WalterKolczynski-NOAA
Copy link
Contributor

Restart capability is urgently needed for aerosols in order to properly run and evaluate the new system.

@WalterKolczynski-NOAA WalterKolczynski-NOAA added feature New feature or request coupled Issues related to the coupled branch labels Apr 17, 2021
@WalterKolczynski-NOAA WalterKolczynski-NOAA self-assigned this Apr 17, 2021
@WalterKolczynski-NOAA WalterKolczynski-NOAA changed the title Restore restart capability Enable aerosol cycling Jun 7, 2021
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 7, 2021
Replaces the old gfs_cyc method for determining cycling frequency with one that
explicitly sets the step length. In place of gfs_cyc there are two new variables
to determine step sizing: STEP_GFS and STEP_DA. Both are of the timedelta type.

STEP_GFS determines the frequency of GFS and defaults to 6 hours
STEP_DA determines the frequency of DA and also defaults to 6 hours

If STEP_GFS is set to 00:00:00, only the DA system is run
If STEP_DA is set to 00:00:00, only the GFS system is run (free-forecast mode)

Note that this new method currently requires the additional setting of STEP_DA
to zero, in addition to using free forecast layout.

If STEP_DA is non-zero, the first cycle is DA-only, so this should be kept in
mind when setting up your experiments (especially if you want GFS to run at
certain times of day). If both are non-zero, STEP_GFS should always be an
integer multiple of STEP_DA, otherwise unexpected behavior may occur. Other
than setting STEP_DA to zero for free forecast, STEP_DA is unlikely to be
changed from its default value in the near-future for GFS, but the new method
is flexible for any future incorporation of LAM system that requires faster DA
cycling.

Examples:

Full-cycling with DA & GFS:
STEP_GFS: !timedelta "06:00:00"
STEP_DA: !timedelta "06:00:00"
(since these are defaults, nothing needs to be placed in the case file, but you may
wish to for clarity)

Normal DA with GFS at each 00z starting 2013-04-01:
SDATE: 2013-03-31t18:00:00
STEP_GFS: !timedelta "24:00:00"

Free forecast with GFS every 24h at 00z starting 2013-04-01:
SDATE: 2013-04-01t00:00:00
STEP_GFS: !timedelta "24:00:00"
STEP_DA: !timedelta "00:00:00"

CROW ss updated to add a new tool that converts a timedelta to a string.

The wave model, which formerly used gfs_cyc to determine the wave cycling interval,
now determines WAVHCYC directly from STEP_GFS. Since this variable is only a number
of hours, this will only work for whole-hour GFS frequencies.

Case files have been updated to use the new settings in place of gfs_cyc, as well as
set STEP_DA to zero for free forecast cases. However, they have not all been tested.

Additional testing is needed to ensure these changes are fully operational for DA
cycling runs.

Refs: NOAA-EMC#260, NOAA-EMC#314
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 7, 2021
Replaces the old gfs_cyc method for determining cycling frequency with one that
explicitly sets the step length. In place of gfs_cyc there are two new variables
to determine step sizing: STEP_GFS and STEP_DA. Both are of the timedelta type.

STEP_GFS determines the frequency of GFS and defaults to 6 hours
STEP_DA determines the frequency of DA and also defaults to 6 hours

If STEP_GFS is set to 00:00:00, only the DA system is run
If STEP_DA is set to 00:00:00, only the GFS system is run (free-forecast mode)

Note that this new method currently requires the additional setting of STEP_DA
to zero, in addition to using free forecast layout.

If STEP_DA is non-zero, the first cycle is DA-only, so this should be kept in
mind when setting up your experiments (especially if you want GFS to run at
certain times of day). If both are non-zero, STEP_GFS should always be an
integer multiple of STEP_DA, otherwise unexpected behavior may occur. Other
than setting STEP_DA to zero for free forecast, STEP_DA is unlikely to be
changed from its default value in the near-future for GFS, but the new method
is flexible for any future incorporation of LAM system that requires faster DA
cycling.

Examples:

Full-cycling with DA & GFS:
STEP_GFS: !timedelta "06:00:00"
STEP_DA: !timedelta "06:00:00"
(since these are defaults, nothing needs to be placed in the case file, but you may
wish to for clarity)

Normal DA with GFS at each 00z starting 2013-04-01:
SDATE: 2013-03-31t18:00:00
STEP_GFS: !timedelta "24:00:00"

Free forecast with GFS every 24h at 00z starting 2013-04-01:
SDATE: 2013-04-01t00:00:00
STEP_GFS: !timedelta "24:00:00"
STEP_DA: !timedelta "00:00:00"

CROW ss updated to add a new tool that converts a timedelta to a string.

The wave model, which formerly used gfs_cyc to determine the wave cycling interval,
now determines WAVHCYC directly from STEP_GFS. Since this variable is only a number
of hours, this will only work for whole-hour GFS frequencies.

Case files have been updated to use the new settings in place of gfs_cyc, as well as
set STEP_DA to zero for free forecast cases. However, they have not all been tested.

Additional testing is needed to ensure these changes are fully operational for DA
cycling runs.

Refs: NOAA-EMC#260, NOAA-EMC#314
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 7, 2021
Updates the restart_interval setting to make sure it always includes the
STEP_GFS time if GOCART is on. This is done using the advanced functionality
of restart_interval, which allows for an explicit list of restart times
instead of a single interval.

If STEP_GFS is a multiple of restart_interval, it is left unchanged.
If STEP_GFS is not a multiple of restart_interval, restart_interval is
converted to an explicit sequence of restart times, then STEP_GFS is added.
If restart_interval is already an explicit list, STEP_GFS is just added to it.
This may add a redundant restart time, but that is ignored by FV3.

In order to complete this update, the CROW type for restart_interval had to be
changed from int to string to accomodate lists of numbers. This has the added
benefit of allowing explicit definition of restart times in other applications
as well.

As part of this update, the values for restart_interval in the forecast config
were updated to use the appropriate settings rather than hardcoded values.
The default value for the gfs restart_interval was also changed from 6 to 0 to
maintain the previous behavior when the setting was ignored.

Refs: NOAA-EMC#314
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 7, 2021
Updates the restart_interval setting to make sure it always includes the
STEP_GFS time if GOCART is on. This is done using the advanced functionality
of restart_interval, which allows for an explicit list of restart times
instead of a single interval.

If STEP_GFS is a multiple of restart_interval, it is left unchanged.
If STEP_GFS is not a multiple of restart_interval, restart_interval is
converted to an explicit sequence of restart times, then STEP_GFS is added.
If restart_interval is already an explicit list, STEP_GFS is just added to it.
This may add a redundant restart time, but that is ignored by FV3.

In order to complete this update, the CROW type for restart_interval had to be
changed from int to string to accomodate lists of numbers. This has the added
benefit of allowing explicit definition of restart times in other applications
as well.

As part of this update, the values for restart_interval in the forecast config
were updated to use the appropriate settings rather than hardcoded values.
The default value for the gfs restart_interval was also changed from 6 to 0 to
maintain the previous behavior when the setting was ignored.

Refs: NOAA-EMC#314
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 7, 2021
A new init_chem job is added to the coupled workflow to cycle tracer
concentrations from the previous cycle's restart files. The new job
doesn't run for the first cycle (since there are no previous cycle
restart files to use). If aerosol initialization is desired for the
first cycle, they need to be added manually, though the new scripts
may be reutilized to do so.

Tracer concentrations are merely copied from the restart files to the
cold-start initial conditions. There is no adjustment to ensure mass
conservation or any other property. The list of tracers copied is
determined by the new parm/chem/gocart_tracer.list file, which is a
plain-text list of NetCDF variables to copy. If any are missing in the
restart files, the job will fail.

The NetCDF4 module for python3 is required for the init job to work.
This module is not part of the default installation of python on Hera
(though it is on WCOSS), so in addition to now loading python, the
base modulefile also adds the location of a personal copy of the
needed python module to the PYTHONPATH.

Most of the new scripts are recycled from the GEFS-aerosol development,
though this method was abandoned there in favor of true warm start for
the aerosol member.

Refs: NOAA-EMC#314
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 14, 2021
The print statement for the tracer (restart) file search was missing
an f, so variables were not being substituted.

Refs: NOAA-EMC#314
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 14, 2021
The restart_interval export needed to be enclosed in quotation marks
so bash will properly assign the whole list to the variable.

Refs: NOAA-EMC#314
WalterKolczynski-NOAA added a commit to WalterKolczynski-NOAA/global-workflow that referenced this issue Jun 16, 2021
FHCYC was being used to determine the forecast interval for the aerosol
cycling, but this appears to be an appropriate setting to use. Added a
new exported environment variable STEP_GFS, which is the number of hours
between GFS forecasts. While it is derived from the workflow STEP_GFS
setting, it is only the integer number of hours, not a timedelta like
the workflow setting. May want to revist this later to avoid confusion.

Additionally, the restart file written at the end of the forecast does
not have the timestamp as part of the filename like the intermediary
restart files do. The chem init script is adjusted to not use the time-
stamp when looking for the final restart file. And, since it now has to
read in FHMAX anyway, also added a short-circuit so the search doesn't
bother trying to search previous cycles that can't include the restart
time needed.

Refs: NOAA-EMC#314
kayeekayee pushed a commit to kayeekayee/global-workflow that referenced this issue May 30, 2024
…OAA-EMC#314)

Cumulus convection:
a) More strict convection trigger
b) Reduced entrainment rate below cloud base
c) Enhanced downdraft detrainments starting from 60mb above the ground surface
d) Reduced rain evaporation
e) Modification of cloud depth separating shallow convection from deep convection

PBL and surface layer:
a) Inclusion of wind shear effect reducing characteristic mixing length
b) Reduction of background diffusivity in the inversion layers as a function of surface roughness and green vegetation fraction
c) PBL updraft overshooting limited by bulk Richardson number-based-PBL depth
d) Inclusion of new canopy heat storage parameterization
e) Modification of thermal roughness calculation over land
f) Increase of momentum roughness length over sea
g) Inclusion of sea spray effect parameterization
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
coupled Issues related to the coupled branch feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant