Fix double-precision builds of MPAS-A v8.2.0#1208
Merged
mgduda merged 2 commits intoMPAS-Dev:hotfix-v8.2.1from Jul 10, 2024
Merged
Fix double-precision builds of MPAS-A v8.2.0#1208mgduda merged 2 commits intoMPAS-Dev:hotfix-v8.2.1from
mgduda merged 2 commits intoMPAS-Dev:hotfix-v8.2.1from
Conversation
…) arrays This commit adds a new routine to the dmpar module for broadcasing real(kind=R4KIND) arrays. The new mpas_dmpar_bcast_real4s routine mirrors the mpas_dmpar_bcast_reals routine, with the dummy array argument being of R4KIND rather than RKIND kind.
Contributor
Author
|
This bugfix PR depends on PR #1207 to add the necessary broadcast routine for |
…sics.F The mpas_atmphys_init_microphysics module contains a routine, table_ccnAct, that broadcasts an R4KIND real array, tnccn_act, from the Thompson microphysics scheme. This broadcast was previously performed by a call to mpas_dmpar_bcast_reals through the macro DM_BCAST_MACRO. However, because the mpas_dmpar_bcast_reals routine broadcasts arrays of kind RKIND, when MPAS-A is compiled with double-precision reals, the mpas_dmpar_bcast_reals routine can no longer be used with the tnccn_act array. With this commit, the DM_BCAST_MACRO in mpas_atmphys_init_microphysics.F has been defined to mpas_dmpar_bcast_real4s, which broadcasts arrays of R4KIND reals. This works for both single- and double-precision builds of MPAS-A, since the kind type of the tnccn_act array is independent of the MPAS-A build precision.
efd9bff to
6b705bc
Compare
Contributor
|
This is quite interesting. I had actually done this in the past (adding a mpas_dmpar_bcast_real4s) for exactly that reason but never made a PR since we now mostly use single precision. Totally forgot to test compiling MPAS using double precision. I, of course, approve this PR. Thanks. |
amstokely
approved these changes
Jul 10, 2024
Contributor
amstokely
left a comment
There was a problem hiding this comment.
Thanks for fixing this! I was able to compile MPAS-Model with double precision enabled on both gnu and intel platforms with GNU Make and CMake.
mgduda
added a commit
that referenced
this pull request
Aug 7, 2024
This merge addresses several issues in the MPAS-Atmosphere model and in the MPAS infrastructure. Specific changes in this merge include: * Improved detection of an 'mpi_f08' module (PR #1202), as well as improved detection of netCDF and PnetCDF library paths (PR #1203), in the top-level Makefile. * The addition of a missing dependency in the physics Makefile to correct parallel build issues (PR #1204). * Fixes to the CMake build files used by MPAS-JEDI (PR #1205). * Fixes to double-precision builds of MPAS-Atmosphere (PR #1207, PR #1208). * Correction of the calculation of height AGL used in the computation of 1-km radar reflectivity fields (PR #1213). * Correction of an issue that prevented the MYNN PBL scheme from being used without also using the Thompson aerosol-aware microphysics (PR #1215). * Fixes to allow MPAS-Atmosphere to be built without physics (i.e., dynamics- only builds) (PR #1221). * Various code cleanup and minor corrections (PR #1206, PR #1212, PR #1224, PR #1226).
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.
This PR corrects double-precision build failures of
mpas_atmphys_init_microphysics.Fin MPAS-A v8.2.0.The
mpas_atmphys_init_microphysicsmodule contains a routine,table_ccnAct, thatbroadcasts an
R4KINDreal array,tnccn_act, from the Thompson microphysicsscheme. This broadcast was previously performed by a call to
mpas_dmpar_bcast_realsthrough the macroDM_BCAST_MACRO. However,because the
mpas_dmpar_bcast_realsroutine broadcasts arrays of kindRKIND, whenMPAS-A is compiled with double-precision reals, the
mpas_dmpar_bcast_realsroutine can no longer be used with the
tnccn_actarray.With this PR, the
DM_BCAST_MACROinmpas_atmphys_init_microphysics.Fhasbeen defined to
mpas_dmpar_bcast_real4s, which broadcasts arrays ofR4KINDreals. This works for both single- and double-precision builds of MPAS-A, since
the kind type of the
tnccn_actarray is independent of the MPAS-A buildprecision.