In coupled configs, SW exported by ATM has odd time-dependence #3022
Replies: 127 comments
-
|
@DeniseWorthen Denise, are these visible direct and diffuse downward SW fluxes at the surface ? Would be interesting to see if the current operational model (GFSv16) has the same issue. @Qingfu-Liu @dustinswales |
Beta Was this translation helpful? Give feedback.
-
|
Yes, these are down, not net sw components (or they should be). They are in terms of the export fields I did a test swapping these with the "instantaneous" values GFS_data(nb)%coupling%dnirbmi_cpl and removing rtime and got an identical result. |
Beta Was this translation helpful? Give feedback.
-
|
@DeniseWorthen I understand solar zenith is not a standard output, would it be possible to write out solar zenith angle at each time step to a text file and inspect if there is any odd features. A short run for 24 hours should suffice. I understand you are busy. Let me know if this will take too much of your time. I can ask physics developers to check. Thanks for uncovering this "bug". |
Beta Was this translation helpful? Give feedback.
-
|
@yangfanglin If I knew how to translate the i,j location on a tile to the loop in the code where it is calculating cosz then I could do that. I think even just the single location above would show if that is the issue. Is that easy to do? |
Beta Was this translation helpful? Give feedback.
-
|
@DeniseWorthen I think you can pick a random single point (i,j) in the cosz loop and print out the values, assuming you will have the luck of not picking a polar night point. |
Beta Was this translation helpful? Give feedback.
-
|
l think we have looked the zenith angle issue with the inst sw radiation and fixed it in GFSv16. I checked the code updates on zenith angle, this one comes out: @grantfirl Could this be related to the zenith angle change Denise showed? |
Beta Was this translation helpful? Give feedback.
-
|
@junwang-noaa See slide 5 of this ppt for the bug fix we made to IPD physics in 2019. The pattern looks to be slightly different from what Denise showed. The change made to ufs-community/ccpp-physics@7644b0c#diff-18710705427e7b03b02adfa6bc3969fa8a5484bd18d6c08192fe7001e489f885R890 does beg for questions. coszen=0 is physical. |
Beta Was this translation helpful? Give feedback.
-
|
That figure looks to be the combined diffuse + direct, so to me it looks like that is the basic same pattern. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks, Fanglin. What I mean is that the bug fix in GFSv16 resolved the zigzag pattern shown in sw flux. The fixes in GFSv16 are in the current develop branch. I am trying to find changes coming to the model since GFSv16 that may cause the issue in the develop branch now. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
@DeniseWorthen Is the zenith angle plot from every time step? The sw is called every hour, and the radiation heating is then adjusted at every time step with the zenith angle. From the first two plots in the issue, it looks to me the sw radiation flux values coming out of sw radiation are correct, but the value interpolated to each time step is not. Can you print out each time step value and the hourly values? Also can you make a run without the change in: to see if there is any impact on xcosz? |
Beta Was this translation helpful? Give feedback.
-
|
@junwang-noaa This is the cosz every time the ATM passes fields to the mediator. In the C96 configuration, that is every 720s. I wasn't sure if radiation was calculated every hour or every 30mins, but I also had the same thought. The actual calculation of the radiation on the hour appears correct, but the interpolation to each time step is not. I'll try to make the test you suggest. |
Beta Was this translation helpful? Give feedback.
-
|
I just checked the code, the change will impact coszen (average of cosine of zenith angle over daytime shortwave call time interval), not the xcosz, but it will impact the interpolation factor xmu. So you may want to plot a SW field such as the visible direct SW to see the impact. |
Beta Was this translation helpful? Give feedback.
-
|
@junwang-noaa I made the following change to radiation_astronomy.f But I still see the same effect as on the original plots (both direct and diffuse) |
Beta Was this translation helpful? Give feedback.
-
|
The plots you show are from C96 or C384? |
Beta Was this translation helpful? Give feedback.
-
|
@junwang-noaa
|
Beta Was this translation helpful? Give feedback.
-
|
@Qingfu-Liu Thanks for the explanation. I want to clarify that the sw is called after the hour, not at the end of the hour. In other words, the DSWRF_7h is output at fh=7h in sfcf007, at which time the sw is not called yet, it is called in the first time step integration after 7. The DSWRF is accumulated from 6 steps at 10mins after 7, 20mins after 7 until fh=8. In the two cases, we should have: |
Beta Was this translation helpful? Give feedback.
-
|
@junwang-noaa Thanks for the clarification |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
@LarissaReames-NOAA Thank you for looking into this issue! It looks to me the DSWRF_ave fields are correct in control_C96. Something happened in C96 coupled test. |
Beta Was this translation helpful? Give feedback.
-
|
To see what is exported by the ATM in the coupled configs, you can also use the DumpFields setting in the ATM attributes. I think that feature was broken at the time this issue was first created, but Dusan fixed that it #2355. The export state shortwave values are what the ATM is actually exporting at each step through the coupling sequence. Whether that is the same field that gets put into the sfc files is something to be determined. |
Beta Was this translation helpful? Give feedback.
-
|
@DeniseWorthen Thanks for pointing out that feature. I didn't know about it. I ran another run of the cpld_control_nowave_noaero_p8_intel test with DumpFields = true in ATM and do indeed see similar patterns in diffuse (inst_down_sw_vis_dif_flx) and direct (inst_down_sw_vis_dir_flx) SW flux in the fv3_cap_export* files as you reported in your initial post. However, it looks like all of the fields in the fv3_cap_import* files that come from the OCN component are all 0s. The fields that come from CICE look fine. Is this expected? |
Beta Was this translation helpful? Give feedback.
-
|
So to confirm the issue reported in this thread has already been resolved, right ? |
Beta Was this translation helpful? Give feedback.
-
|
@yangfanglin No, it's still very much an issue in coupled simulations. It just isn't (and was probably never) present in ATM-only forecasts. |
Beta Was this translation helpful? Give feedback.
-
|
I ran another global test, this time with ATM+WAV, which means radiation variables aren't even exchanged and aren't in either ATM fv3_cap_import or export files. The undesirable "peaking" behavior is still present in dswrf_ave and dswrf_avetoa. |
Beta Was this translation helpful? Give feedback.
-
|
@LarissaReames-NOAA It's possible that the problem originates somewhere in here. |
Beta Was this translation helpful? Give feedback.
-
|
@dustinswales That would make sense if it were only the surface fluxes that display the issue and if the issue only appeared when cplflx=true or cpllnd=true. But, we also see the hourly fluctuations in the _avgtoa variables, and these variations are also present in the ATM+WAV simulation when no fluxes are coupled. I mentioned this to @junwang-noaa yesterday evening and she suggested I try a ATM+AERO (GOCART) simulation as it doesn't use CMEPS. The hourly fluctuations in the averaged variables of the sfcf*.nc files are still present in these simulations. |
Beta Was this translation helpful? Give feedback.
-
|
@LarissaReames-NOAA From what I remember (it has been a while), this is fundamentally an issue of the coszen approximation. I think what I did is to fill one of the diffuse arrays w/ the coszen angle --- this will fill the export field with the cosz value instead of the diffuse SW and you'll be able to plot the time-dependence. EDIT: aplogies..looking back at earlier messages, it is the variable |
Beta Was this translation helpful? Give feedback.
-
|
So, after investigating, it appears the issue I was seeing in the sfcf* files is caused by setting fhzero=6 in the coupled simulations but fhzero=1 in the ATM-only simulations. This changes how often the diag buckets are emptied and causes a mis-calculation of the radiation variables here if you're writing more frequently than fhzero. This explains the fact that dswrf_ave is identical to that produced by ATM-only simulations in the first hour because You can see in this plot what happens to both dswrf_avg and dswrf_avgtoa when I switch fhzero from 6 to 1 in the ATM+AERO simulations. Apologies for going down this rabbit hole but the cause of the issue in sfcf files is unrelated to the problem in the mediator files* and just an out-of-design use of high-frequency output with low-frequency diagnostic buckets resets since if you only looked at output every 6 hours then the values would be correct. I think this also means that we won't be able to use ATM only forecasts to help diagnose this issue since you can't get mediator files with these simulations and the instantaneous radiation fields in sfcf* files look fine regardless of settings. I'm going to look more closely at what @DeniseWorthen pointed to in her latest comment. Thanks Denise for bring that back to the forefront of the discussion. |
Beta Was this translation helpful? Give feedback.
-
|
Good detective work! |
Beta Was this translation helpful? Give feedback.






Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Description
The SW direct components exported by FV3 have odd "blips" over the course of a day. This is shown by setting mediator history files to write the instantaneous fields every time through the coupling loop.
Note that "instantaneous" in this case refers to the type of mediator history file that CMEPS is writing out and not the type of field (instantaneous or mean) field that ATM is providing.
For the C96 case on Tile 1, at i=50,j=70 (6E, 0.4N) the visible direct SW component is shown below (near ir shows similar). Every instantaneous value is shown, with values on the hours called out.
The visible diffuse component shows
I do not believe this is due to any cloud interaction, since the blips occur on the hour and are nearly symmetric during the diurnal cycle.
To Reproduce:
Mediator history files for the atmosphere can be added using the following in
MED_attributesin nems.configure:Files are produced for every coupling timestep and can be cat'd together to form a timeseries using nco. The SW fields imported by the mediator are named
near-ir diffuse: atmImp_Faxa_swndf
visible diffuse: atmImp_Faxa_swvdf
near-ir direct: atmImp_Faxa_swndr
visible direct: atmImp_Faxa_swvdr
Additional context
Output
Beta Was this translation helpful? Give feedback.
All reactions