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

Updates to aerosol RTs - new dust and fcsav #1170

Merged
merged 47 commits into from
May 19, 2022
Merged

Updates to aerosol RTs - new dust and fcsav #1170

merged 47 commits into from
May 19, 2022

Conversation

bbakernoaa
Copy link
Collaborator

@bbakernoaa bbakernoaa commented Apr 12, 2022

PR Checklist

  • This PR is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR. Please consult the ufs-weather-model wiki if you are unsure how to do this.

  • This PR has been tested using a branch which is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR

  • An Issue describing the work contained in this PR has been created either in the subcomponent(s) or in the ufs-weather-model. The Issue should be created in the repository that is most relevant to the changes in contained in the PR. The Issue and the dependent sub-component PR
    are specified below.

  • Results for one or more of the regression tests change and the reasons for the changes are understood and explained below.

  • New or updated input data is required by this PR. If checked, please work with the code managers to update input data sets on all platforms.

Description

  • First there are new settings for dust aerosols that need to be updated in the tests/parm/gocart/AERO_ExtData.rc.

  • Second the tests/parm/gocart//DU2G_instance_DU.rc file needs an updated alpha scaling factor for the dust emission. Changes from 0.7 to 0.04

  • Adds convective wet scavenging for coupled model runs with aerosols. This doesn't impact other schemes and is done by exporting the variable FSCAV_AERO in the tests/tests/cpld* RT configuration files.

  • There are new input files that will need to be copied to the INPUT root outside of this repository.

    • cp /scratch1/NCEPDEV/rstprod/nexus_emissions/FENGSHA/FENGSHA_Albedo_drag_v1.nc /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/input-data-20211210/GOCART/ExtData/dust/
    • cp /scratch1/NCEPDEV/rstprod/nexus_emissions/FENGSHA/FENGSHA_SOILGRIDS2019_GEFSv12_v1.2.nc /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/input-data-20211210/GOCART/ExtData/dust/
    • cp /scratch1/NCEPDEV/rstprod/nexus_emissions/FENGSHA/randomforestensemble_uthres.nc /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/input-data-20211210/GOCART/ExtData/dust/

Issue(s) addressed

Testing

How were these changes tested? What compilers / HPCs was it tested with? Are the changes covered by regression tests? (If not, why? Do new tests need to be added?) Have regression tests and unit tests (utests) been run? On which platforms and with which compilers? (Note that unit tests can only be run on tier-1 platforms)

  • hera.intel
  • hera.gnu
  • orion.intel
  • cheyenne.intel
  • cheyenne.gnu
  • gaea.intel
  • jet.intel
  • wcoss_cray
  • wcoss_dell_p3
  • opnReqTest for newly added/changed feature
  • CI: 73062ee

bbakernoaa and others added 6 commits April 6, 2022 15:42
These changes brings the regression tests closer to the p8c target configuration. Changes include:

- Updating fractional clay and sand to the SOILGRIDSv2 data - REF: https://soil.copernicus.org/articles/7/217/2021/
- Silt isn't actually used in the scheme.  Set to /dev/null:0.0 to skip reading a file and instead fill with zeros
- SSM is no longer used as the albedo drag partition describes the same information to the scheme. Set to /dev/null:1.0 so that all values are unity
- `DU_RDRAG` now uses a three year climatology of the Chappel and Webb 2016 albedo drag partition derived from the latest 3 years of MODIS BRDF Albedo monthly averages
- `DU_UTHRES` now uses a more robust threshold velocity derived from known historical dust point observations using a data driven approach from the combination of a met reanalysis, SOILGRIDSv2, and a RandomForest ensemble
This updates the `alpha` parameter to be consistent with the latest dust code changes and inputs 

Note that gamma here doesn't matter because the `ssm=1` now in the `AERO_ExtData.rc` file
This fix adds the environment vairable FSCAV_AERO so that the
wet scavaging coeffients are not by default set to zero ensuring
that the convective parameterizations are fully tested when
aerosols are used.
@bbakernoaa
Copy link
Collaborator Author

@DeniseWorthen Can you point to where I should make this modification in default_vars.sh? I am not entirely familiar with this.

@DeniseWorthen
Copy link
Collaborator

DeniseWorthen commented Apr 13, 2022

@bbakernoaa You could add them here

All the coupled P8 tests will then use them.

EDIT: I see now that cplchm and the field table field_table_thompson_noaero_tke_GOCART were not made defaults in the commit to add aerosols. That should probably be fixed too.

@bbakernoaa
Copy link
Collaborator Author

@bbakernoaa You could add them here

All the coupled P8 tests will then use them.

EDIT: I see now that cplchm and the field table field_table_thompson_noaero_tke_GOCART were not made defaults in the commit to add aerosols. That should probably be fixed too.

should it be here though?

export FSCAV_AERO="'*:0.0'"

@DeniseWorthen
Copy link
Collaborator

@bbakernoaa You could add them here

All the coupled P8 tests will then use them.
EDIT: I see now that cplchm and the field table field_table_thompson_noaero_tke_GOCART were not made defaults in the commit to add aerosols. That should probably be fixed too.

should it be here though?

export FSCAV_AERO="'*:0.0'"

The earlier section is for FV3 standalone. If you scroll back, you will see it is in the block export_fv3. Placing it there would impact all standalone regression tests; the location I pointed you to is within the export_cpl block.

@bbakernoaa
Copy link
Collaborator Author

@DeniseWorthen Thanks just making sure.

@DeniseWorthen DeniseWorthen added the New Input Data Req'd This PR requires new data to be sync across platforms label Apr 13, 2022
@github-actions
Copy link

@bbakernoaa please bring these up to date with respective authoritative repositories

  • ufs-weather-model NOT up to date
  • fv3 NOT up to date
  • ww3 NOT up to date

@DeniseWorthen
Copy link
Collaborator

@bbakernoaa During the call, I was trying to understand whether we can combine your update to the gocart files that you are showing above at the time we update the ICs. Or, are the other updates listed here (to tests/parm) required at the same time as the update to input-data.

@bbakernoaa
Copy link
Collaborator Author

bbakernoaa commented Apr 13, 2022

@DeniseWorthen The updates to test/parm/gocart are updates to for the new dust input data. These could be combined with the ICs but they are really independent. My thought is that they are separate but we could do them serially or together.

Maybe I just don't understand the question completely.

@bbakernoaa
Copy link
Collaborator Author

@DeniseWorthen

Are you asking if we do

cp /scratch1/NCEPDEV/rstprod/nexus_emissions/FENGSHA/FENGSHA_Albedo_drag_v1.nc /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/input-data-20211210/GOCART/ExtData/dust/
cp /scratch1/NCEPDEV/rstprod/nexus_emissions/FENGSHA/FENGSHA_SOILGRIDS2019_GEFSv12_v1.2.nc /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/input-data-20211210/GOCART/ExtData/dust/
cp /scratch1/NCEPDEV/rstprod/nexus_emissions/FENGSHA/randomforestensemble_uthres.nc /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/input-data-20211210/GOCART/ExtData/dust/

will this change the current RTs? If so no. This will not impact the current regression tests since we did not change the tests/parm/gocart here. This would not overwrite anything in the ExtData/dust folder

@DeniseWorthen
Copy link
Collaborator

I'll be creating a new input-data directory for the P8c ICs as part of PR #909. I was hoping to combine your update to the input-data directory and avoid having to make another new input-data directory later.

You have a fix for scavenging, which I understand is independent (a namelist/bug fix).

But you're also updating two files in tests/parm. One looks like a tweak to a number (the scaling factor). Does the other change (tests/parm/gocart/AERO_ExtData.rc) depend on having the new input-data files in place? If the change to the AERO_ExtData.rc depends on the input data, I think I need to make that change as part of my PR to update to the P8c ICs.

@bbakernoaa
Copy link
Collaborator Author

@DeniseWorthen I think I understand what you are asking now. Yes this can be part of your other PR #909. This wouldn't be a problem and should be done before this change for the RTs so that the data is there.

@DeniseWorthen
Copy link
Collaborator

@bbakernoaa Great. Please make a PR to my PR #909 with the changes you need in tests/parm/gocart

@DeniseWorthen
Copy link
Collaborator

DeniseWorthen commented Apr 13, 2022

@bbakernoaa Sorry--I may be confused here. There are no existing files w/ those names in the current input data. But neither are there files which you appear to be changing (eg FENGSHA_DUST_INPUTS_v0.6.nc) in the current directory.
(I don't understand how the existing AERO_ExtData.rc is referencing files that don't exist in the dust subdirectory in the input-data directory.)

The only dust file currently present is gocart.dust_source.v5a.x1152_y721.nc. You are not replacing that file, just adding additional dust files. So I think there is nothing that needs to be done in my PR, correct?

@junwang-noaa
Copy link
Collaborator

@bbakernoaa The three files FENGSHA_Albedo_drag_v1.nc, FENGSHA_SOILGRIDS2019_GEFSv12_v1.2.nc and randomforestensemble_uthres.nc are under /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/input-data-20220414/GOCART/ExtData/dust.

Also if you'd like to change the FSCAV_AERO with same value for all the cpld aerosol tests and, you just need change in defaultvars.sh. You don't need to change it in each test unless the test is using a different setting. Thanks

@junwang-noaa junwang-noaa requested a review from lipan-NOAA May 6, 2022 16:32
@lipan-NOAA
Copy link
Collaborator

@DeniseWorthen @junwang-noaa @rmontuoro @bbakernoaa I am fine with this PR. Thanks.

@DeniseWorthen
Copy link
Collaborator

We probably have everything needed for the manually updating the INTEL develop-20220517. The auto-bl files haven't been moved (but I can see them) and I created baselines in order to test the new default vars. We can either manually combine those two directories and run auto-rt (after barry commits the new default-vars), or do the whole auto-bl.

@BrianCurtis-NOAA
Copy link
Collaborator

We probably have everything needed for the manually updating the INTEL develop-20220517. The auto-bl files haven't been moved (but I can see them) and I created baselines in order to test the new default vars. We can either manually combine those two directories and run auto-rt (after barry commits the new default-vars), or do the whole auto-bl.

Much faster copying the files over yourself and running the AutoRT RT task.

@DeniseWorthen
Copy link
Collaborator

OK, let me get stuff moved. I've pushed the default_var changes now.

@DeniseWorthen
Copy link
Collaborator

@MinsukJi-NOAA I think we need to re-run the GNU on Cheyenne as well, because I changed the c96 resources which are used by both the cpld_debug test and the GNU-based noaero tests.

@MinsukJi-NOAA
Copy link
Contributor

@MinsukJi-NOAA I think we need to re-run the GNU on Cheyenne as well, because I changed the c96 resources which are used by both the cpld_debug test and the GNU-based noaero tests.

@DeniseWorthen Okay. I will create both rt labels when the baseline is ready.

@DeniseWorthen
Copy link
Collaborator

@MinsukJi-NOAA I've moved everything. I think we're ready for cheyenne.intel and gnu auto-RT.

on-behalf-of @ufs-community <brian.curtis@noaa.gov>
@DeniseWorthen
Copy link
Collaborator

The cpl_mpi_p8 test has failed; I messed up the default vars for this test. I will need to re-run. A couple of other tests are just waiting in the Q.

@BrianCurtis-NOAA
Copy link
Collaborator

Automated RT Failure Notification
Machine: cheyenne
Compiler: intel
Job: RT
[RT] Repo location: /glade/scratch/epicufsrt/autort/tests/auto/pr/907781202/20220518110013/ufs-weather-model
[RT] Error: Test cpld_mpi_p8 004 failed in run_test failed
Please make changes and add the following label back: cheyenne-intel-RT

@MinsukJi-NOAA
Copy link
Contributor

@rmontuoro @lipan-NOAA @DeniseWorthen Please review the PR as it passed all regression tests and is ready for commit.

tests/rt.sh Outdated
@@ -531,10 +531,9 @@ mkdir ${LOG_DIR}
if [[ $ROCOTO == true ]]; then

ROCOTO_XML=${PATHRT}/rocoto_workflow.xml
ROCOTO_STATE=${PATHRT}/rocoto_workflow.state
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why is this line removed?

tests/rt.sh Outdated
ROCOTO_DB=${PATHRT}/rocoto_workflow.db

rm -f $ROCOTO_XML $ROCOTO_DB $ROCOTO_STATE *_lock.db
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why is $ROCOTO_STATE removed?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@DusanJovic-NOAA Honestly I don't know when that was changed. It may have come from when I pulled in the latest changes from the develop branch. Looking back a the log history I didn't modify that. I have no problem adding it back in if that is what we should do.

Copy link
Contributor

Choose a reason for hiding this comment

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

@DusanJovic-NOAA it seems to me that these lines were not there until @SamuelTrahanNOAA 's PR 1195.

Copy link
Contributor

Choose a reason for hiding this comment

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

@bbakernoaa Please revert those changes. It is okay to make these changes at this point in the commit since they do not affect the regression test results.

@MinsukJi-NOAA
Copy link
Contributor

@bbakernoaa Can you please address @DusanJovic-NOAA 's question on ROCOTO modification above?

@MinsukJi-NOAA MinsukJi-NOAA merged commit bea6b56 into ufs-community:develop May 19, 2022
@MinsukJi-NOAA
Copy link
Contributor

Additional tests were run for cpld_control_p8 on Hera. Previous observation still stands. Changes in this PR caused 13% increase in run time and 29% increase in memory.

The run directories are

  • /scratch1/NCEPDEV/stmp2/Minsuk.Ji/FV3_RT/cpld_control_p8_base without the changes in this PR
  • /scratch1/NCEPDEV/stmp2/Minsuk.Ji/FV3_RT/cpld_control_p8_change1-2 with the changes in this PR

@MinsukJi-NOAA
Copy link
Contributor

@bbakernoaa The resource increase is caused by these changes in AERO_ExtData.rc:

DU_CLAY           '1'  Y E           -           none none clayfrac    ExtData/dust/FENGSHA_SOILGRIDS2019_GEFSv12_v1.2.nc
DU_SAND           '1'  Y E           -           none none sandfrac    ExtData/dust/FENGSHA_SOILGRIDS2019_GEFSv12_v1.2.nc
DU_SILT           '1'  Y E           -           none none siltfrac    /dev/null
DU_SSM            '1'  Y E %y4-%m2-%d2T12:00:00  none none ssm         /dev/null:1.0
DU_RDRAG          NA   Y N %y4-%m2-%d2t12:00:00  none none albedo_drag ExtData/dust/FENGSHA_Albedo_drag_v1.nc
DU_UTHRES         '1'  Y E           -           none none uthres      ExtData/dust/randomforestensemble_uthres.nc

@bbakernoaa
Copy link
Collaborator Author

@MinsukJi-NOAA

This is undoubtedly where the "issue" is as it was really the only thing that was modified. But this isn't a problem with the model at all. It is behaving and performing exactly as expected. After thinking about it, the "issue" is in the resolution of the input files. I created higher resolution files so that they could be used throughout the applications including RRFS-SMOKE as the FENGSHA scheme is also apart of that implementation. I didn't think about the increased resources in memory usage when I did this. If the increased resources are a large issue then I can create some lower resolution files that would be the same resolution that was previously used.

@DeniseWorthen
Copy link
Collaborator

@bbakernoaa I believe someone mentioned at the coupled tag-up an issue about fields being stored at full resolution in the model (all months, all vertical levels) but it wasn't clear to me at the time if the comment applied to fields used by the aerosol scheme or not. Do you think it applies in this case at all? In other words, when these files are read in, what is the dimensionality of the fields which are internal to the model?

@bbakernoaa
Copy link
Collaborator Author

@DeniseWorthen I think that people are getting confused about exactly what is happening. The ExtData child component reads the data in at the native file input resolution. This is not stored internal to the dust child component of GOCART. Rather when the data is passed to the dust component it is regridded to the native model resolution.

Like I said if we need to reduce it back to the original memory footprint I can preprocess a the inputs with a degradation in the input resolution to back it down to what was there previously. This isn't a model problem but rather a RT requirement problem.

@junwang-noaa
Copy link
Collaborator

@bbakernoaa @rmontuoro @yangfanglin @SMoorthi-emc It looks to me the timing increase is during integration, not the initialization.
The following two test directories are from Minsuk's test runs.
test cpld_control_p8_base (without the changes in this PR)

    [CHM] RunPhase1                                                      144    144    120      77.3266     63.9766     60      101.8664    42
      [CAP] Run 1                                                        144    144    120      76.1479     62.7771     60      100.6598    42
        [AERO] Run 1                                                     144    144    120      37.5657     35.2925     136     40.8937     10
          [AERO] Run 11                                                  144    144    120      37.5644     35.2912     136     40.8924     10
...
    [CHM] IPDv03p7                                                       144    144    1        3.2215      3.2201      134     3.2225      0
      [CAP] Init 1                                                       144    144    1        3.2070      3.2067      41      3.2074      141
        [EXTDATA] Init 1                                                 144    144    1        2.0104      2.0069      5       2.0114      141

test cpld_control_p8_change1-2 ( with the changes in this PR)

    [CHM] RunPhase1                                                      144    144    120      120.0864    106.4351    60      144.8782    42
      [CAP] Run 1                                                        144    144    120      118.8770    105.2041    60      143.6274    42
        [EXTDATA] Run 1                                                  144    144    120      80.3859     65.6368     80      106.8604    42
          [EXTDATA] Run 11                                               144    144    120      80.3831     65.6342     80      106.8571    42
        [AERO] Run 1                                                     144    144    120      37.3786     35.2681     133     39.8338     54
...
    [CHM] IPDv03p7                                                       144    144    1        2.0566      2.0547      139     2.0577      82
      [CAP] Init 1                                                       144    144    1        2.0413      2.0410      11      2.0424      77
        [EXTDATA] Init 1                                                144    144    1        0.9982      0.9952      49      0.9994      120

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Baseline Updates Current baselines will be updated. New Input Data Req'd This PR requires new data to be sync across platforms
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update aerosol configuration for RTs to be similar to p8c
8 participants