Move refactored portable science code for Modal Aerosol Model (MAM), aero wetdep, aero drydep to atmos_phys - #433
Draft
jimmielin wants to merge 5 commits into
Draft
Conversation
…drop Verbatim copies (r8 swept to kind_phys) of the portable science split out of CAM's modal aerosol code: calcsize, wateruptake, gasaerexch, rename, newnuc, coag, setsox (+ cldaero/sox_cldaero), wetdep, convproc, activate, drydep (+ dust_sediment), dust + seasalt emissions (+ dust_common/sslt_sections), and ndrop (dropmixnuc). Bit-for-bit validated in CAM regression testing on the CAM-side refactor branch and per-scheme against CAM snapshots in CAM-SIMA. CAM builds these files directly through the atmos_phys external; CCPP wrappers and suite infrastructure follow in later PRs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tag name (The PR title should also include the tag name):
Originator(s): @jimmielin coauthored with
claude-fable:5,claude-opus:4.6,claude-opus:4.8,claude-opus:5,gpt-sol:5.6[xhigh][see AI disclosure below]Description (include issue title and the keyword ['closes', 'fixes', 'resolves'] and issue number):
Includes portable science subroutines of the following aerosol code:
calcsize,wateruptake,gasaerexch,rename(mode merging),newnuc,coagsetsox(+cldaero/sox_cldaero)wetdep,convprocdrydepactivate_aerosolcore,ndrop,dropmixnucdust_common,sslt_sectionsCCPP wrappers to follow.
AI disclosure: The below portable science subroutines were spliced from their original CAM counterparts byte-for-byte, then later linted to fit atmos_phys requirements without changing existing functionality.
The portable science subroutines were generated by
kind_phystor8)The following is a summary of where everything came and went:
utils/modal_aero_calcsize.F90schemes/modal_aero/modal_aero_calcsize.F90utils/modal_aero_calcsize_cam.F90(_reg,_init)_sub→modal_aero_calcsize_run,_diag→_diag_run,calcdry→_calcdry_runutils/modal_aero_wateruptake.F90schemes/modal_aero/modal_aero_wateruptake.F90(_sub, Kohler solvers, H2SO4 equilib helpers; names unchanged)utils/modal_aero_wateruptake_cam.F90(_drdriver: pbuf, PM/history diagnostics)modal_aero/modal_aero_gasaerexch.F90schemes/modal_aero/modal_aero_gasaerexch.F90(+.meta)modal_aero/modal_aero_gasaerexch_cam.F90(_cam_init)_sub→modal_aero_gasaerexch_runmodal_aero/modal_aero_rename.F90schemes/modal_aero/modal_aero_rename.F90(variant subs unchanged)modal_aero/modal_aero_rename_cam.F90(_cam_init)_sub→modal_aero_rename_runmodal_aero/modal_aero_newnuc.F90schemes/modal_aero/modal_aero_newnuc.F90modal_aero/modal_aero_newnuc_cam.F90(_cam_init)_sub→modal_aero_newnuc_runmodal_aero/modal_aero_coag.F90schemes/modal_aero/modal_aero_coag.F90(incl. CMAQ getcoags)modal_aero/modal_aero_coag_cam.F90(_cam_init)_sub→modal_aero_coag_runaerosol/mo_setsox.F90schemes/modal_aero/mo_setsox.F90(setsox_init,setsox_sub)aerosol/mo_setsox_cam.F90(sox_inti+setsoxwrapper marshaling aerosol_state)setsoxbody = portablesetsox_subaerosol/cldaero_mod.F90,aerosol/sox_cldaero_mod.F90schemes/modal_aero/aerosol/wetdep.F90schemes/modal_aero/wetdep.F90(clddiag,wetdepa_v1/v2)aerosol/wetdep_cam.F90(wetdep_init,wetdep_inputs_set,wetdepg)aerosol/aero_convproc.F90schemes/modal_aero/aero_convproc.F90(activate/resuspend/precpevap; names unchanged)aerosol/aero_convproc_cam.F90(_readnl,_init,_dp_intr,_intr)aero_convproc_tend→aero_convproc_runaerosol/aer_drydep_mod.F90(deleted) +modal_aero_depvel_partfrommodal_aero/aero_model.F90schemes/modal_aero/aero_drydep_core.F90(modal_aero_depvel_part,calcram)aero_model.F90calcramtakesrair/gravitexplicitly (removesinidrydepmodule state);d3ddfluxuses replaced by the portable sediment-flux path;setdvel/ddfluxwere unreferencedaerosol/dust_sediment_mod.F90,aerosol/dust_common.F90,aerosol/sslt_sections.F90schemes/modal_aero/modal_aero/dust_model.F90(dust_emis)schemes/modal_aero/modal_dust_emissions.F90dust_model.F90dust_emis→modal_dust_emissions_runmodal_aero/seasalt_model.F90(seasalt_emis)schemes/modal_aero/modal_seasalt_emissions.F90seasalt_model.F90seasalt_emis→modal_seasalt_emissions_runphysics/cam/ndrop.F90schemes/microp_aero/ndrop.F90(ndrop_init,dropmixnuc,explmix,ccncalc);activate_aerosol→schemes/modal_aero/aero_activate.F90physics/cam/microp_aero.F90List all namelist files that were added or changed:
List all files eliminated and why:
List all files added and what they do:
List all existing files that have been modified, and describe the changes:
(Helpful git command:
git diff --name-status main...<your_branch_name>)List all automated tests that failed, as well as an explanation for why they weren't fixed:
Is this an answer-changing PR? If so, is it a new physics package, algorithm change, tuning change, etc?
If yes to the above question, describe how this code was validated with the new/modified features: