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

clarify "mean" and "inst" coupled fields exchanged #1800

Closed
DeniseWorthen opened this issue Jun 16, 2023 · 13 comments · Fixed by NOAA-EMC/fv3atm#704 or #1925
Closed

clarify "mean" and "inst" coupled fields exchanged #1800

DeniseWorthen opened this issue Jun 16, 2023 · 13 comments · Fixed by NOAA-EMC/fv3atm#704 or #1925
Assignees
Labels
enhancement New feature or request

Comments

@DeniseWorthen
Copy link
Collaborator

DeniseWorthen commented Jun 16, 2023

Description

As a legacy from the NEMS mediator, many fields are exported or imported from the ATM with the name mean. For example, ATM imports mean_ice_volume when in fact the field from CICE is an instantaneous field since the ATM and ICE are running concurrently in the fast loop.

Even when coupling to ocean, the fields sent to the ocean from the ATM should be the instantaneous fields, since the mediator itself forms the average of these fields over the fast coupling loop in order to create the mean field to the ocean. Generally, these fields sent to the ocean are called mean fields, but they are the average of the inst fields from ATM or ICE (or merged between ATM and ICE).

This issue arose while investigating the shortwave fields in issue #1767

Solution

Impose consistency in the fields which are imported or exported. For example, the ATM should export inst_sensi_heat_flx, not mean_sensi_heat_flx for the ocean. For ATM exports, these two fields are not identical at every modelAdvance, but nearly so.

In the cases examined so far, changing to the instantaneous export fields shows very small (O~10-15) differences in the export fields in the first few hours after the initial time, after which differences start increasing as the model adjusts to the accumulated small differences.

Changing of mean_ice_volume to inst_ice_volume should not result in differences however, since in this case it is only the name of the field changing, and not the content.

In most cases, imposing this consistency on the ATM side will require only a modification to the fd_nems.yaml since both mean and inst fields are available the export field setup.

Alternatives

Related to

@DeniseWorthen
Copy link
Collaborator Author

I have a method to test the switching from mean to inst for the affected fields. For each affected field, within CMEPS I can advertise the inst field as coming from the ATM:

--- a/mediator/esmFldsExchange_nems_mod.F90
+++ b/mediator/esmFldsExchange_nems_mod.F90
@@ -151,6 +151,16 @@ contains
        call addfld_ocnalb('So_anidf')
     end if

+    call addfld_from(compatm , 'inst_sensi_heat_flx')
+    call addfld_from(compatm , 'inst_evap_rate')
+    call addfld_from(compatm , 'inst_net_lw_flx')
+    call addfld_from(compatm , 'inst_down_lw_flx')
+    call addfld_from(compatm , 'inst_net_sw_flx')
+    call addfld_from(compatm , 'inst_down_sw_ir_dir_flx')
+    call addfld_from(compatm , 'inst_down_sw_ir_dif_flx')
+    call addfld_from(compatm , 'inst_down_sw_vis_dir_flx')
+    call addfld_from(compatm , 'inst_down_sw_vis_dif_flx')

Each mediator history file for the ATM will then contain the field data for that field from the ATM. However, since these fields are not connected, no results will change. We can compare the fields imported under the "mean" field name with those imported under the "inst" name. They will be very close, but not identical.

@DeniseWorthen
Copy link
Collaborator Author

@jiandewang Will you please confirm the unit that MOM6 expects for the rain and snow? I know the cap documents these as being in kg m-2 s-1. Are we sure that MOM6 expects a rate and not a rainfall amount?

@jiandewang
Copy link
Collaborator

@DeniseWorthen this is from ncdump of output:
float lprec(time, yh, xh) ;
lprec:units = "kg m-2 s-1" ;

@DeniseWorthen
Copy link
Collaborator Author

@jiandewang Yes, but that only says what is being output. There could be intermediate conversions. So the question is can you follow the lprec array and verify that it is not doing a conversion?

@jiandewang
Copy link
Collaborator

OK let me do some research on this part. I had the same doubt as the information we are having is purely from output metadata

@jiandewang
Copy link
Collaborator

@DeniseWorthen just got confirmation from Bob, it is kg m-2 s-1

@DeniseWorthen
Copy link
Collaborator Author

@jiandewang Great, thanks for checking.

@DeniseWorthen
Copy link
Collaborator Author

A second step is required in order to fully resolve this issue. A PR is being prepared.

@DeniseWorthen
Copy link
Collaborator Author

The second step to resolve the mean->inst change involves changing the "mean" prefix to "inst" in the aliases for the sensible, momentum, sw and lw fluxes and evap rate.

Using the cpld_control_nowave_noaero_p8_intel test, the relevant fields were advertised in the mediator and the differences between the inst and mean export field values can be checked at the end of the 24 hour RT test. In this case, the test reproduced baselines because the fields are not being used.

The mean-inst sensible heat flux (scaled by 1e13)

atmImp_Faxa_sen

The mean-inst evap rate (scaled by 1e12)

atmImp_Faxa_evap

The mean-inst merid momentum flux (scaled by 1e12). The zonal field is similar.

atmImp_Faxa_tauy

The downward SW direct visible (scaled by 1e13). The near-IR is similar.

atmImp_Faxa_swvdr

@DeniseWorthen
Copy link
Collaborator Author

Issues are arising when testing with the land component. See NOAA-EMC/CMEPS#98

@DeniseWorthen
Copy link
Collaborator Author

The following shows the difference in the ocean surface temperature exported by the ocean component (which is the only field sent to the ATM) after 6 hours when the inst fields are exported by the ATM instead of the mean fields.

For the global coupled case (scaled by 1e2)

cpld mean2inst

For the HAFS coupled (atm-ocn-wav) case (scaled by 1)

hafs mean2inst

@DeniseWorthen
Copy link
Collaborator Author

For HYCOM, I also checked that the values written to stdout for the fields imported to hycom are consistent at the end of 6 hours for the hafs_regional_atm_ocn_wav_intel test.

Using mean fields

5117:300: import_to_hycom_deb,max,min,mean=    taux10  0.414303189675184E+00 -0.102152488749792E+01 -0.145546862723850E-01
5118:300: import_to_hycom_deb,max,min,mean=    tauy10  0.874874996681233E+00 -0.435587594363473E+00  0.212075162866413E-02
5119:300: import_to_hycom_deb,max,min,mean=      prcp  0.162320748445706E-01  0.000000000000000E+00  0.514844730269246E-04
5120:300: import_to_hycom_deb,max,min,mean=    swflxd  0.000000000000000E+00  0.000000000000000E+00  0.000000000000000E+00
5121:300: import_to_hycom_deb,max,min,mean=    lwflxd  0.188231732816424E+02 -0.119725259819797E+03 -0.573773485147214E+02
5122:300: import_to_hycom_deb,max,min,mean=    mslprs  0.102404494247344E+06  0.987505942605636E+05  0.101521762194559E+06
5123:300: import_to_hycom_deb,max,min,mean=   sensflx  0.639654733012051E+02 -0.113390740038456E+03 -0.874893776318893E+01
5124:300: import_to_hycom_deb,max,min,mean=    latflx  0.841020805274566E+02 -0.509817519227136E+03 -0.127851449827206E+03

Using inst fields:

5117:300: import_to_hycom_deb,max,min,mean=    taux10  0.421752682437904E+00 -0.102475189077673E+01 -0.145551839806498E-01
5118:300: import_to_hycom_deb,max,min,mean=    tauy10  0.874899909211888E+00 -0.442320312038619E+00  0.212422872715114E-02
5119:300: import_to_hycom_deb,max,min,mean=      prcp  0.166373691172656E-01  0.000000000000000E+00  0.513272903509620E-04
5120:300: import_to_hycom_deb,max,min,mean=    swflxd  0.000000000000000E+00  0.000000000000000E+00  0.000000000000000E+00
5121:300: import_to_hycom_deb,max,min,mean=    lwflxd  0.189798814619155E+02 -0.119739769567530E+03 -0.573865264850271E+02
5122:300: import_to_hycom_deb,max,min,mean=    mslprs  0.102404224694724E+06  0.987505831283595E+05  0.101521831780655E+06
5123:300: import_to_hycom_deb,max,min,mean=   sensflx  0.641409693659895E+02 -0.114662954907980E+03 -0.874795168044725E+01
5124:300: import_to_hycom_deb,max,min,mean=    latflx  0.886765221743354E+02 -0.507741607562167E+03 -0.127840326125221E+03

@DeniseWorthen
Copy link
Collaborator Author

Changes were committed in #1942

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
2 participants