cam6_4_176: COSP-RTTOV integration with CAM#1327
Conversation
…OV plus swathing, memory checks, and OPAQ outputs. Needs cleaning!
Merged cospsimulator_intro.F90 and bld/configure by hand. Needs testing to see if COSP-RTTOV functionality is maintained, specifically regarding the treatment of cloud water/ice and effectively water and ice droplet sizes.
…ld dependencies, clean up obsolete cloud water fields.
…te descriptions. Remove commented line from bld/configure
…endation from cacraig
… cosp.F90 this array should be: "Height of bottom interface of atm layer(km). First level contains the bottom of the top layer. Last level contains the bottom of the surface layer." Current CAM interface includes the top of the top layer and needs to be corrected.
This reverts commit 496a7ec. This was a mistake too, I meant to revert the commit that merged recent CAM updates.
|
@cacraigucar I have now ported the COSP-RTTOV interface code to the cam_development branch. These changes make CAM compatible with the COSP-RTTOV branch that @dustinswales and I are currently reviewing before merging into the official COSPv2.0 repository. I've updated the CAM namelist options and logic as well. I made the following tests for performance:
This pull request also corrects an answer-changing model error (cospsimulator_intr.F90) in the assignment of the "hgt_matrix_half" field that COSPv2.0 uses. Per cosp.F90 this array should be:
The current CAM interface sets the first level as the top of the top layer and allocates the array as length nlay+1 instead of nlay. This changes all fields that use the lidar_simulator subroutine (CALIPSO, PARASOL, etc) and RTTOV outputs. I think that this PR is ready for a more detailed review! I will be traveling for work until August 28th and will be slow to respond during that time. |
cacraigucar
left a comment
There was a problem hiding this comment.
Review items for us to discuss (if needed) at our meeting this afternoon
- Also, we need to add a COSP_RTTOV regression test
|
@cacraigucar I think that changes responding to the code review in the README and Makefile.rttov were reverted in 9baeaa1 I have just corrected those changes with 0d0bbe9. Could you confirm that my modifications in Makefile.rttov were appropriate? |
cam6_4_173: fix energy bug in physics-dynamics coupling
…into cam6_3_144_cosprttov
…cos(-1.0_8), which uses only standard Fortran functions. This converts the result from radians to degrees by multiplying by the conversion factor 180/π, where π is computed as acos(-1.0_8).
…into cam6_3_144_cosprttov
…into cam6_3_144_cosprttov
cam6_4_175: Complete CCPPization of CAM5 UW (diag_TKE) PBL scheme; cleanup to vertical_diffusion_tend
…into cam6_3_144_cosprttov
… never initialized (nullified) in the construct_cospIN subroutine. When destroy_cospIN attempted to use ASSOCIATED() on this uninitialized pointer, the NAG compiler raised an error because the pointer's status was undefined. Solution: Added nullify(y%cfg_rttov) in the construct_cospIN subroutine after the allocate statement. This ensures the pointer starts in a known null state, allowing ASSOCIATED() to work correctly in the destructor.
Closes #1324
Closes #1328
Requires cime6.1.106 or later
I have coupled the COSP-RTTOV satellite emulator with CAM and would like to pull it into the main code repository. This update to COSP significantly extends emulation capabilities and is described here: https://egusphere.copernicus.org/preprints/2025/egusphere-2025-169/
An important note: Integrating with COSP-RTTOV with CAM requires linking an external build of RTTOV to CESM during the build step and changes to CIME. This is further complicated by the fact that the RTTOV source code is free but only available to registered users and creating a new build is slow relative to a normal CESM build, so linking an existing RTTOV build during CESM build appears to be the best solution.
CIME fork here: https://github.com/jshaw35/cime/tree/cime6.0.217_httpsbranch02_cosprttov