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

Update EMC develop from NCAR dtc/develop 2020/03/17 #81

Conversation

climbfuji
Copy link
Collaborator

@climbfuji climbfuji commented Mar 17, 2020

grantfirl and others added 30 commits November 4, 2019 10:30
…ute GFS_GWD_generic_pre,post for drag_suite_pre,post
 2. in GFS_typedefs.F90, correct nvdiff definition for FA.
…4b identical results on macOS with 32-bit dynamics
…gs about non-existent include directories with GNU
…s directory to avoid warnings about non-existent include directories with GNU
Add SAS deep/shallow convection and satmedmfvdifq (updated version of satmedmfvdif) to CCPP
…routines in ugwp_driver_v0.f (note that the code that generated the warnings is in a non-active section)
add Ferrier-Aligo MP scheme changes on host model side
dtc/develop: update submodule pointers 2019/11/22
@climbfuji
Copy link
Collaborator Author

climbfuji commented Mar 17, 2020

@JessicaMeixner-NOAA
Copy link
Collaborator

Using this fv3atm in ufs-s2s-model in the current regression tests, all regtests pass. However, when I tried to use this fv3atm in a new regression tests (see: ufs-community/ufs-s2s-model#57 ) that uses the same physics options that we are using for benchmark studies with ufs-s2s-model, the test does not pass. I don't see why this should be the case. I'm re-running to confirm I didn't do something obviously wrong. To replicate what I am doing you can do the following:

git clone https://github.com/JessicaMeixner-NOAA/ufs-s2s-model
cd ufs-s2s-model
git checkout feature/new1dRTbm
cd FV3/
git remote add DH https://github.com/climbfuji/fv3atm
git fetch DH
git checkout update_ncar_master_from_dtc_develop_20200317
git submodule sync
git submodule update --init --recursive
cd ../
./NEMS/NEMSCompsetRun bm

If someone else has insight on how changing the ICs or the physics options in input.nml would change the answers for the fully coupled model using non-fractional masks, I'd greatly appreciate it.

@climbfuji
Copy link
Collaborator Author

Using this fv3atm in ufs-s2s-model in the current regression tests, all regtests pass. However, when I tried to use this fv3atm in a new regression tests (see: ufs-community/ufs-s2s-model#57 ) that uses the same physics options that we are using for benchmark studies with ufs-s2s-model, the test does not pass. I don't see why this should be the case. I'm re-running to confirm I didn't do something obviously wrong. To replicate what I am doing you can do the following:

git clone https://github.com/JessicaMeixner-NOAA/ufs-s2s-model
cd ufs-s2s-model
git checkout feature/new1dRTbm
cd FV3/
git remote add DH https://github.com/climbfuji/fv3atm
git fetch DH
git checkout update_ncar_master_from_dtc_develop_20200317
git submodule sync
git submodule update --init --recursive
cd ../
./NEMS/NEMSCompsetRun bm

If someone else has insight on how changing the ICs or the physics options in input.nml would change the answers for the fully coupled model using non-fractional masks, I'd greatly appreciate it.

Hard to tell! The minimum we need to know is what the differences are between the current and new regression tests.

IPD_Data(nb)%Coupling%ficein_cpl(ix) = max(zero, min(one, datar8(i,j)/IPD_Data(nb)%Sfcprop%oceanfrac(ix))) !LHS: ice frac wrt water area
if (IPD_Data(nb)%Coupling%ficein_cpl(ix) > one-epsln) IPD_Data(nb)%Coupling%ficein_cpl(ix)=one
if (IPD_Data(nb)%Coupling%ficein_cpl(ix) >= IPD_control%min_seaice) then
if (abs(one-IPD_Data(nb)%Sfcprop%oceanfrac(ix)) < epsln) IPD_Data(nb)%Sfcprop%slmsk(ix) = 2. !slmsk=2 crashes in gcycle on partial land points
Copy link
Collaborator

Choose a reason for hiding this comment

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

So this works for non-fractional grid, where ocean fraction is either close 1 or 0, but does this work for fraction grid where ocean fraction may <1 (50%ocean and 50%land)?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@shansun6

Copy link
Collaborator

Choose a reason for hiding this comment

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

When ice and land co-exist, slmsk cannot be 2, since it would crash at gcycle.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I see, thanks.

IPD_Data(nb)%Coupling%slimskin_cpl(ix) = zero
else
IPD_Data(nb)%Coupling%ficein_cpl(ix) = zero
if (abs(one-IPD_Data(nb)%Sfcprop%oceanfrac(ix)) < epsln) then
Copy link
Collaborator

Choose a reason for hiding this comment

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

I feel this can only be applied for non-fractional grid, is it correct?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@shansun6 this question is for you.

Copy link
Collaborator

Choose a reason for hiding this comment

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

This should work for both nonfrac and frac grid. It is to prevent slmsk to be set to zero when partial ocean exists. When both land and ocean exist in one cell, slmsk is set to 1.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Thanks for the explanation.

@SMoorthi-emc
Copy link
Contributor

SMoorthi-emc commented Mar 18, 2020 via email

@climbfuji
Copy link
Collaborator Author

I am afraid the correct lines would be " IPD_Data(nb)%Coupling%ficein_cpl(ix) = max(zero, min(one, datar8(i,j)/IPD_Data(nb)%Sfcprop%oceanfrac(ix))) !LHS: ice frac wrt water area + if (IPD_Data(nb)%Coupling%ficein_cpl(ix) >= IPD_control%min_seaice) then + IPD_Data(nb)%Sfcprop%slmsk(ix) = 2" Moorthi

@shansun6 please check with @SMoorthi-emc on what is correct and what not. Can this be fixed in a follow-up PR? Otherwise we have to start from scratch and rerun all the regression tests again.

@ShanSunNOAA
Copy link
Collaborator

ShanSunNOAA commented Mar 18, 2020 via email

@JessicaMeixner-NOAA
Copy link
Collaborator

Using this fv3atm in ufs-s2s-model in the current regression tests, all regtests pass. However, when I tried to use this fv3atm in a new regression tests (see: ufs-community/ufs-s2s-model#57 ) that uses the same physics options that we are using for benchmark studies with ufs-s2s-model, the test does not pass. I don't see why this should be the case. I'm re-running to confirm I didn't do something obviously wrong. To replicate what I am doing you can do the following:
git clone https://github.com/JessicaMeixner-NOAA/ufs-s2s-model
cd ufs-s2s-model
git checkout feature/new1dRTbm
cd FV3/
git remote add DH https://github.com/climbfuji/fv3atm
git fetch DH
git checkout update_ncar_master_from_dtc_develop_20200317
git submodule sync
git submodule update --init --recursive
cd ../
./NEMS/NEMSCompsetRun bm
If someone else has insight on how changing the ICs or the physics options in input.nml would change the answers for the fully coupled model using non-fractional masks, I'd greatly appreciate it.

Hard to tell! The minimum we need to know is what the differences are between the current and new regression tests.

The differences between the regression tests are:

  1. IC date and source: For the existing regression tests in ufs-s2s-model the atm ICs come from GFS or one of the ufs-weather-model ICs and ocean/ice ICs come from CFSR. For the ocean this means that there is just temperature and salinity and no currents. For the new benchmark "bmrt" for short regression test, the IC for atm comes from CFSR and ocean comes from CPC 3D Var so there are currents and ice is from CPC ice analysis.
  2. The atm model options. (Comparing the original regression test (there is at least one other physics option) https://github.com/ufs-community/ufs-s2s-model/blob/develop/parm/input.mom6.nml.IN vs benchmark v3.1 physics https://github.com/ufs-community/ufs-s2s-model/blob/develop/parm/input.benchmark.nml.IN ). The ocean model options are the same except for starting from the restart and not just T & S and the ice has options turned on for "cpc" ice ICs. Otherwise ocean/ice are largely the same.
    The differences between the two input.nml (removing trivial differences such as T vs true) are attached here: diff.input.nml.txt

IPD_Data(nb)%Coupling%ficein_cpl(ix) = max(zero, min(one, datar8(i,j)/IPD_Data(nb)%Sfcprop%oceanfrac(ix))) !LHS: ice frac wrt water area
if (IPD_Data(nb)%Coupling%ficein_cpl(ix) > one-epsln) IPD_Data(nb)%Coupling%ficein_cpl(ix)=one
if (IPD_Data(nb)%Coupling%ficein_cpl(ix) >= IPD_control%min_seaice) then
if (abs(one-IPD_Data(nb)%Sfcprop%oceanfrac(ix)) < epsln) IPD_Data(nb)%Sfcprop%slmsk(ix) = 2. !slmsk=2 crashes in gcycle on partial land points
Copy link
Collaborator

Choose a reason for hiding this comment

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

I see, thanks.

IPD_Data(nb)%Coupling%slimskin_cpl(ix) = zero
else
IPD_Data(nb)%Coupling%ficein_cpl(ix) = zero
if (abs(one-IPD_Data(nb)%Sfcprop%oceanfrac(ix)) < epsln) then
Copy link
Collaborator

Choose a reason for hiding this comment

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

Thanks for the explanation.

Copy link
Contributor

@SMoorthi-emc SMoorthi-emc left a comment

Choose a reason for hiding this comment

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

gcycle still need changes for use with fractional grid.

@climbfuji
Copy link
Collaborator Author

gcycle still need changes for use with fractional grid.

Thanks! Yes, I believe we all agreed to make this a standalone commit (gcycle.F90,sfcsub.F) since it changes the answer of all tests.

@SMoorthi-emc
Copy link
Contributor

SMoorthi-emc commented Mar 19, 2020 via email

@junwang-noaa
Copy link
Collaborator

Using this fv3atm in ufs-s2s-model in the current regression tests, all regtests pass. However, when I tried to use this fv3atm in a new regression tests (see: ufs-community/ufs-s2s-model#57 ) that uses the same physics options that we are using for benchmark studies with ufs-s2s-model, the test does not pass. I don't see why this should be the case. I'm re-running to confirm I didn't do something obviously wrong. To replicate what I am doing you can do the following:
git clone https://github.com/JessicaMeixner-NOAA/ufs-s2s-model
cd ufs-s2s-model
git checkout feature/new1dRTbm
cd FV3/
git remote add DH https://github.com/climbfuji/fv3atm
git fetch DH
git checkout update_ncar_master_from_dtc_develop_20200317
git submodule sync
git submodule update --init --recursive
cd ../
./NEMS/NEMSCompsetRun bm
If someone else has insight on how changing the ICs or the physics options in input.nml would change the answers for the fully coupled model using non-fractional masks, I'd greatly appreciate it.

Hard to tell! The minimum we need to know is what the differences are between the current and new regression tests.

The differences between the regression tests are:

  1. IC date and source: For the existing regression tests in ufs-s2s-model the atm ICs come from GFS or one of the ufs-weather-model ICs and ocean/ice ICs come from CFSR. For the ocean this means that there is just temperature and salinity and no currents. For the new benchmark "bmrt" for short regression test, the IC for atm comes from CFSR and ocean comes from CPC 3D Var so there are currents and ice is from CPC ice analysis.
  2. The atm model options. (Comparing the original regression test (there is at least one other physics option) https://github.com/ufs-community/ufs-s2s-model/blob/develop/parm/input.mom6.nml.IN vs benchmark v3.1 physics https://github.com/ufs-community/ufs-s2s-model/blob/develop/parm/input.benchmark.nml.IN ). The ocean model options are the same except for starting from the restart and not just T & S and the ice has options turned on for "cpc" ice ICs. Otherwise ocean/ice are largely the same.
    The differences between the two input.nml (removing trivial differences such as T vs true) are attached here: diff.input.nml.txt

Jessica,

If you find the differences in your new test are caused by the change in this commit, please create a separate issue, we will work on that. At this time, we will commit this pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants