Add COSP's EarthCARE lidar simulator to CAM output#1574
Conversation
|
@jshaw35: I moved this to draft as the text indicated it should be. Please move it out of draft and let us know when it is ready for review. |
…ration of COSP routines with ATLID missed by OpenCode.
|
@cacraigucar this PR is now functioning as expected and is ready for review! @brianpm feel free to give this a go. One thought on high-resolution simulations is to turn down the number of subcolumns (cosp_ncolumns, currently 50 and adjustable in the namelist), since CAM should be resolving much more features at high resolution anyway. |
brianpm
left a comment
There was a problem hiding this comment.
I went through the code; looks good to me. I didn't run any tests, but assuming things are working then this looks great to me.
| do ih=1,nht_cosp | ||
| do is=1,nsr_cosp | ||
| ihs=(ih-1)*nsr_cosp+is | ||
| cfad_sr355_atlid(i,ihs) = cfad_sr355_atlid(i,ihs) ! Already reshaped from cospOUT? Check |
There was a problem hiding this comment.
Confirmed shape? Remove comment if so.
There was a problem hiding this comment.
Line 2871 applies an identity function so this code block can actually be removed entirely.
cacraigucar
left a comment
There was a problem hiding this comment.
cosp has a number of settings which CAM does not test in its regression test suite. We do not appear to test any of the lidar settings.
-
Have you run with all the different settings and made sure that your changes didn't accidentally break one or more?
-
Should we add a category "cosp" to our testlist_cam.xml file so that when cosp changes are made we can easily run cosp tests to make sure they still run? If you think this is a good idea, I can meet with you and describe how to set this up (it is fairly easy, but requires someone with knowledge about COSP settings to set up the appropriate tests).
| if (lidar_freq .eq. 355) then | ||
| Cmol = Cmol_355nm | ||
| rdiffm = rdiffm_355nm | ||
| endif | ||
| if (lidar_freq .eq. 532) then | ||
| Cmol = Cmol_532nm | ||
| rdiffm = rdiffm_532nm | ||
| endif |
There was a problem hiding this comment.
We favor == instead of .eq.. Also, suggest use an elseif for the seond one. Should there be an else which sets the two variables to zero or some other initialized value? Tthese were always set in the previous version.
There was a problem hiding this comment.
I have taken this code block directly from the COSP repository and will opt to only change the .eq. statements in order to stay as consistent as possible with COSP source code. The encompassing function is only called in settings where lidar_freq is hardcoded to 355 or 532 so I don't think an additional guard is needed here.
re: Lidar tests in COSP. A subset of the CALIPSO lidar outputs are likely tested if current tests use cosp_amwg. However, this will not include subcolumn outputs, which are triggered by another namelist option. |
…into feature_cospEarthCARE
COSP2 includes a lidar simulator for the new ESA EarthCARE satellite (ATLID) (https://agupubs.onlinelibrary.wiley.com/doi/10.1002/2015JD023919). This simulator package makes use of existing COSP features for the CALIPSO/CALIOP simulator with some additional changes. With EarthCARE recently launched and additional work to develop the ATLID simulator ongoing, I believe that adding this capability to CAM will be of significant value to the broader community.
CAM's coupler currently does not support ATLID outputs for a few reasons:
This was initially a draft PR to resolve these issues. It was tested it in more detail (specifically make sure that lidar_optics issues with snow and wavelength are reconciled correctly), but wanted to open this PR now to gauge feedback. @brianpm