NOAA-EMC / CMEPS

NUOPC Community Mediator for Earth Prediction Systems
https://escomp.github.io/CMEPS/
0 stars 20 forks source link

add optional bulk flux calculation #26

Closed DeniseWorthen closed 3 years ago

DeniseWorthen commented 3 years ago

Description of changes

An optional bulk flux calculation is added.

Specific notes

This PR implements a bulk-flux feature in CMEPS similarly to the version implemented by @hyunchul386 in his NEMS bulk flux branch

In CMEPS, the optional bulk flux method has been implemented with a configuration variable ocn_surface_flux_scheme. For the bulk flux scheme, this variable should be set to -1. A value of 0 will produce the default scheme.

If the bulk flux configuration is selected, then the fields (ubot, vbot, tbot, shum) passed to the shr_flux_mod are the 10m and 2m values. Otherwise, the values passed are the height lowest values.

There are minor differences between the exact implementation in the NEMS mediator vs CMEPS:

CMEPS Issues Fixed (include github issue #):

Issue #20 Issue #21

The implementation of the bulk flux can be tested in this branch of ufs-weather-model

hyunchul386 commented 3 years ago

I will run with ocn_surface_flux_scheme == -1 and update it.

On Mon, Nov 9, 2020 at 9:37 AM Denise Worthen notifications@github.com wrote:

@DeniseWorthen commented on this pull request.

In nems/util/shr_flux_mod.F90 https://github.com/NOAA-EMC/CMEPS/pull/26#discussion_r519860395:

@@ -315,7 +315,11 @@ real(R8) :: psix2 ! stability function at ztref reference height !(1.0_R8-stable) chxcdu + stable chxcds

          !--- shift all coeffs to measurement height and stability ---
  • rd = rdn / (1.0_R8 + rdn/loc_karman*(alz-psimh))
  • if (ocn_surface_flux_scheme == -1)then
  • rd = rdn

This needs to be provided by @hyunchul386 https://github.com/hyunchul386. I've tried to implement his NEMS bulk flux branch.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/CMEPS/pull/26#discussion_r519860395, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADQ73E7MULLYZNIMZRI4S6DSO75DDANCNFSM4TPKETJQ .

DeniseWorthen commented 3 years ago

@hyunchul386. The implementation of the bulk flux can be tested in this branch of ufs-weather-model

hyunchul386 commented 3 years ago

@DeniseWorthen, one thing in my view is that datm_data_table_IN needs to include variables of 10m and 2m fields for the bulk method, like as https://github.com/hyunchul386/ufs-weather-model/tree/cmeps-bulk-test/tests/parm/ datm_data_table_IN.

I have tested the one day RT for CFSR/GEFS with 1deg/1/4 deg, with the bulk method of two iterations, and so far not so big a difference there. I am going to test the branch with the new table for longer runs.

On Mon, Nov 9, 2020 at 10:00 AM Denise Worthen notifications@github.com wrote:

@hyunchul386 https://github.com/hyunchul386. The implementation of the bulk flux can be tested in this branch https://github.com/DeniseWorthen/ufs-weather-model/tree/feature/bulk of ufs-weather-model

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/CMEPS/pull/26#issuecomment-724066887, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADQ73E6M4WST7N6SG2VL37TSO77XBANCNFSM4TPKETJQ .

DeniseWorthen commented 3 years ago

Yes, that is right. The datm_data_table.IN in my ufs-weather branch contains these variables.

DeniseWorthen commented 3 years ago

I ran the ufs-cpld and ufs-datm RTs on Hera. As expected, the DATM tests failed (because flux_iteration is now 2) but the cpld tests also failed. Temporarily reverting the change made in fbfc28b allows the cpld baselines to pass.

I had made this change while debugging DATM restart reproducibility. It did not solve that issue but I will retain the committed code. I've added a text to the PR to note that it does change baselines.