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

Add RUC LSM option to land perturbations, add snow albedo and albedo to perturbed parameters #1

Merged

Conversation

tanyasmirnova
Copy link
Collaborator

@tanyasmirnova tanyasmirnova commented Dec 21, 2020

This PR adds RUC LSM to the land perturbation code and also adds snow albedo and background albedo components to the perturbed parameters.

Associated PRs:

#1
NOAA-GSL/ccpp-physics#71
NOAA-GSL/fv3atm#68 (contains NOAA-GSL/fv3atm#65)
NOAA-GSL/ufs-weather-model#57

See NOAA-GSL/ufs-weather-model#57 for regression testing.

@tanyasmirnova
Copy link
Collaborator Author

@DomHeinzeller Dom, Could you please add Clara Draper to the reviewer's list. Thank you!

lndp_apply_perts.F90 Outdated Show resolved Hide resolved
lndp_apply_perts.F90 Outdated Show resolved Hide resolved
@DomHeinzeller
Copy link

@ClaraDraper-NOAA FYI - once you accept the invite to collaborate on the GSL fork of stochastic_physics, I can add you as reviewer. Thanks!

@DomHeinzeller DomHeinzeller changed the title A draft PR to add RUC LSM option to land perturbations and to add snow albedo and albedo to perturbed parameters Add RUC LSM option to land perturbations, add snow albedo and albedo to perturbed parameters Dec 29, 2020
lndp_apply_perts.F90 Outdated Show resolved Hide resolved
lndp_apply_perts.F90 Show resolved Hide resolved
lndp_apply_perts.F90 Outdated Show resolved Hide resolved
lndp_apply_perts.F90 Outdated Show resolved Hide resolved
lndp_apply_perts.F90 Outdated Show resolved Hide resolved
lndp_apply_perts.F90 Outdated Show resolved Hide resolved
lndp_apply_perts.F90 Outdated Show resolved Hide resolved
lndp_apply_perts.F90 Outdated Show resolved Hide resolved
lndp_apply_perts.F90 Show resolved Hide resolved
@climbfuji
Copy link

Are we done with the changes or not? I have started the regression tests already, changes. but need to redo (some of) them if we keep making changes.

@tanyasmirnova
Copy link
Collaborator Author

Dom,
I discovered that we have the levels in zs_ruc, and not the layer thicknesses and corrected that. Sorry!

@climbfuji
Copy link

Dom,
I discovered that we have the levels in zs_ruc, and not the layer thicknesses and corrected that. Sorry!

No problem, I will recreate our rt_ccpp_dev baseline and verify against it.

@tanyasmirnova
Copy link
Collaborator Author

Thank you, Dom.
The only thing that I still would like to fix is the emissivity initialization with RUC LSM. But maybe as a separate PR?

@tanyasmirnova
Copy link
Collaborator Author

@climbfuji I looked more carefully at the print-outs from my latest run, and see that the values of surface parameters become unrealistically small. The output after time step 381:
302: LNDP - applying lndp to vfrac, initial value 0.999999991498899
302: LNDP - applying lndp to vfrac, final value 0.999999989040555
302: LNDP - applying lndp to alnsf, initial value 1.101896369706661E-017
302: LNDP - applying lndp to alnsf, final value 1.101896369706661E-017
302: LNDP - applying lndp to alnwf, initial value 7.614940122956668E-018
302: LNDP - applying lndp to alnwf, final value 7.614940122956668E-018
302: LNDP - applying lndp to snoalb, initial value 0.300000000000000
302: LNDP - applying lndp to snoalb, final value 0.300000000000000
302: LNDP - applying lndp to semis, initial value 0.922894608304253
302: LNDP - applying lndp to semis, final value 0.917824921400127

We must have broken something (maybe when we add emissivity?) because I did not see unrealistic values in my previous pre-PR testing.
At the same time step the old test had the following values:
302: LNDP - applying lndp to vfrac, initial value 0.133643129293111
302: LNDP - applying lndp to vfrac, final value 0.133614927956194
302: LNDP - applying lndp to alnsf, initial value 0.264629478748325
302: LNDP - applying lndp to alnsf, final value 0.226393398710652
302: LNDP - applying lndp to alnwf, initial value 0.261325050138897
302: LNDP - applying lndp to alnwf, final value 0.223057762855959
302: LNDP - applying lndp to snoalb, initial value 0.670000016689301
302: LNDP - applying lndp to snoalb, final value 0.658867235538667

The old output is in: /scratch2/BMC/wrfruc/smirnova/fv3_rt/MANUAL_TEST_C768_2020090500/output_stoch_repro/out
The new output is in /scratch2/BMC/wrfruc/smirnova/fv3_rt/MANUAL_TEST_C768_2020090500/out.

@climbfuji
Copy link

We didn't break anything, we fixed it. Because you didn't loop over the blocks after running the land surface perturbation code, only one block - if at all - got updated, all others remained unchanged. I will hold back until you adjusted the parameters so that the results look better.

@tanyasmirnova
Copy link
Collaborator Author

@climbfuji You are right, you fixed the bug which was masking this problem. My further testing showed that the unrealistic values of surface parameters appear because of applying perturbations at every time step, and it was not designed this way by Clara Draper who wrote the main code. I would need to consult with Clara on this.

2. When lndp_each_step=.true. perform conversion from change/per hour to
   change per time step
3. Mimicking what is done in HRRR, apply soil moisture perturbations
to RUC LSM at the beginning of the run when time step = 2.
@tanyasmirnova
Copy link
Collaborator Author

@climbfuji Dom, in the last commit I have implemented some ideas after our conversation with Clara this morning. The code also has fixes for the unreasonable parameter values. Now the code is very close to final. I am still waiting for some modifications from Clara for roughness length perturbations. Then I think we'll be good to run regression tests. Thank you!

@DomHeinzeller
Copy link

DomHeinzeller commented Jan 7, 2021 via email

@tanyasmirnova
Copy link
Collaborator Author

Sounds good. Thank you!

@DomHeinzeller DomHeinzeller self-requested a review January 8, 2021 18:27
Copy link
Collaborator

@ClaraDraper-NOAA ClaraDraper-NOAA left a comment

Choose a reason for hiding this comment

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

As discussed over email, this PR has corrected a bug in the minimum soil moisture value for the Noah model, hence the lndp regression test in the community model is expected to fail.

@DomHeinzeller DomHeinzeller merged commit aeb543d into NOAA-GSL:gsl/develop Jan 9, 2021
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.

4 participants