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

User/wfc/climate nudging #47

Merged
merged 5 commits into from
Oct 9, 2020

Conversation

wfcooke
Copy link
Contributor

@wfcooke wfcooke commented Aug 27, 2020

Updates for PV350K, PV550K diagnostics and some climate nudging updates our division needs.

wfcooke added 4 commits May 22, 2020 15:17
These diagnostics need to be output for high time frequency (4xdaily) so outputting the full PV field (>=33 levels)
would consume too much disk space for longer runs.
Default values should reproduce previous (non-ECDA) answers
For ECDA add the following to fv_nwp_nudge_nml
p_relax=10.e2
using_merra2 = .true.
climate_nudging=.true.
Moved climate_nudging from private to shared  declaration.
Copy link
Contributor

@bensonr bensonr left a comment

Choose a reason for hiding this comment

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

You made changes to fv_nudge.F90, which has historically been used for weather timescales by the Weather and Climate Dynamics Division at GFDL. Tests will need to be run with this version to ensure it does not change answers when used in for their purposes.

@lharris4
Copy link
Contributor

lharris4 commented Aug 28, 2020 via email

@bensonr
Copy link
Contributor

bensonr commented Aug 28, 2020 via email

@laurenchilutti
Copy link
Contributor

This change has been tested in SHiELD and the results are consistent.

Copy link
Member

@thomas-robinson thomas-robinson left a comment

Choose a reason for hiding this comment

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

I believe this is still crashing when running with SPEAR. There is a variable that needs to be initialized. This is the traceback for the crash that I get:

fms_SPEAR_Q2020.0  0000000003238C73  mpp_mod_mp_mpp_er          68  mpp_util_mpi.inc
fms_SPEAR_Q2020.0  00000000030E1DE0  fms_io_utils_mod_         164  fms_io_utils.F90
fms_SPEAR_Q2020.0  000000000300D4BB  netcdf_io_mod_mp_         284  netcdf_io.F90
fms_SPEAR_Q2020.0  0000000002FD795A  fms_netcdf_domain         921  domain_write.inc
fms_SPEAR_Q2020.0  00000000030C896A  diag_output_mod_m        1265  diag_output.F90
fms_SPEAR_Q2020.0  0000000002E01481  diag_util_mod_mp_        2650  diag_util.F90
fms_SPEAR_Q2020.0  0000000002FB5100  diag_manager_mod_        3544  diag_manager.F90
fms_SPEAR_Q2020.0  0000000002FA1264  diag_manager_mod_        2034  diag_manager.F90
fms_SPEAR_Q2020.0  0000000002F90A47  diag_manager_mod_        1579  diag_manager.F90
fms_SPEAR_Q2020.0  00000000005DCA76  fv_diagnostics_mo        2082  fv_diagnostics.F90
fms_SPEAR_Q2020.0  000000000049A9E9  atmosphere_mod_mp         957  atmosphere.F90
fms_SPEAR_Q2020.0  000000000047A0CA  atmos_model_mod_m        1068  atmos_model.F90
fms_SPEAR_Q2020.0  0000000000403731  MAIN__                    970  coupler_main.F90

@thomas-robinson
Copy link
Member

@uramirez8707 do you have a fix for this crash?

@uramirez8707
Copy link
Contributor

This is all that is needed:
uramirez8707@86143aa

The crash happens for File=19210101.atmos_daily.ens_03.tile2.nc.0003 Field=z925

This does not crash when using FMS-2019.01.02 + GFDL_atmos_cubed_sphere - 2020.01
This does crash when using FMS-2019.01.03 (nest updates) + GFDL_atmos_cubed_sphere - 2020.02
This does crash when using FMS-2020.02 (nest updates + FMS2io in diag_manager) + GFDL_atmos_cubed_sphere - 2020.02

One of the changes between GFDL_atmos_cubed_sphere 2020.01 and 2020.02 is the removal of the ngc argument in the get_height_given_pressure subroutine.

call get_height_given_pressure(isc, iec, jsc, jec, ngc, npz, wz, nplev, idg, plevs, Atm(n)%peln, a3)

call get_height_given_pressure(isc, iec, jsc, jec, npz, wz, nplev, idg, plevs, Atm(n)%peln, a3)

The get_height_given_pressure subroutine is where a3 is defined so it is probably not defined for all the grid points.

Initiliazing a3 to 0 avoids the crash, but I do not know if that is the correct thing to do.

@laurenchilutti
Copy link
Contributor

@lharris4 @bensonr Is there a reason that lines 3072-3076 from the get_height_given_pressure subroutine were removed in commit f44db53? I think that if we added this back into the subroutine, a3 wouldn't need to be initialized to 0 as Uriel suggests. I have not tested this though, so I could be wrong.

! a2(i,j,n) = missing_value
! Extrapolation into ground: use lowest 4-layer mean
a2(i,j,n) = wz(i,j,km+1) + (wz(i,j,km+1) - wz(i,j,km-3)) * &
(log_p(n)-peln(i,km+1,j)) / (peln(i,km+1,j)-peln(i,km-3,j) )
k1 = km

@bensonr
Copy link
Contributor

bensonr commented Sep 18, 2020

@laurenchilutti I don't think we want to reinstate computation for pressures that may be below the surface of the earth. I agree the height should be either missing value or 0.

@bensonr
Copy link
Contributor

bensonr commented Sep 18, 2020

@wfcooke Please see the comment from @uramirez8707 and @thomas-robinson regarding crashes due to bad values for a3 from the get_height_given_pressure computation. As @laurenchilutti points out, the calculation may abort early in high altitude areas. Decide if your calculation should produce zeros or missing-value for those areas or missing_value and update the code accordingly. Once you have done this, the updates can be merged.

@wfcooke
Copy link
Contributor Author

wfcooke commented Sep 25, 2020 via email

@bensonr
Copy link
Contributor

bensonr commented Sep 25, 2020 via email

@wfcooke
Copy link
Contributor Author

wfcooke commented Oct 6, 2020

@bensonr : Sorry about that. I missed an email.
Code is updated, commit should be 4dacd7e from my end.

@bensonr bensonr merged commit e806b31 into NOAA-GFDL:dev/gfdl Oct 9, 2020
climbfuji added a commit to climbfuji/GFDL_atmos_cubed_sphere that referenced this pull request Jan 8, 2021
…alize to model/fv_dynamics.F90 (NOAA-GFDL#47)

Implementation of CCPP timestep_init and timestep_final phases in model/fv_dynamics.F90

Note that while these new phases are currently not doing any work, they are required for transitioning to the new CCPP code generator capgen.py (scheduled for February 2021), at which time they will be taking over some of the work that is currently done manually (allocating data for the CCPP fast physics calls).
@lharris4 lharris4 mentioned this pull request Jan 15, 2021
climbfuji pushed a commit to climbfuji/GFDL_atmos_cubed_sphere that referenced this pull request Apr 24, 2024
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.

6 participants