Run IPD_setup_step over individual blocks#41
Closed
climbfuji wants to merge 13 commits into
Closed
Conversation
…ing and fix bug (wrong index for Diag(nb)%dq3dt(:,:,9))
…al blocks, add GFS type sfccycle, and update arguments to schemes called inside time_vary_step (GFS driver) and the individual IPD steps
…block-dependent data instead of 'save' variables inside the routine. This information is stored in GFS_sfccycle_type's clima_data subtype. Also: bugfixes required to run with gnu/clang compilers
… requires using a storage for block-dependent data and different block lengths
… fix_longname_conflicts
… fix_longname_conflicts
…paces used instead of underscores)
…ed different standard_names than global variables fice, hice and tisfc
Collaborator
Author
|
This PR is no longer needed (functionality already in features/ccpp, which will become master this week). |
climbfuji
pushed a commit
to climbfuji/ccpp-physics
that referenced
this pull request
Jun 30, 2020
Mods to MYNN sfc and PBL for fractional/coupled for latest gsd/develop code (based on NCAR#40)
SamuelTrahanNOAA
pushed a commit
that referenced
this pull request
Jun 30, 2022
address the constant issue and use kind_phys for sfcdif4
hannahcbarnes
pushed a commit
to hannahcbarnes/ccpp-physics
that referenced
this pull request
Aug 3, 2022
* netcdf parallel writing and lon/lat in netcdf file * some changes to get it to (almost) run on hera * lat should be in degrees - remove conversion to radians. * import updates from jswhit/fv3atm * more bug fixes - now works on hera * specify collective access if compression turned on. * use classic model * bug fixes for parallel IO with compression * fix calculation of max compression error * turn off shuffle filter * code simplification * remove debug print * don't use parallel IO for 2d file (since it seems to increase run time) * allow multiple values of output_file, as long as they all start with 'netcdf' * use default chunksize for 2d vars * delete commented out macro ESMF_ERR_ABORT * delete rad2dg * add module_write_netcdf_parallel.F90 * add option to build without parallel netcdf (-DNO_PARALLEL_NETCDF) * fix typo * stub file for building without parallel netcdf lib * allow chunksizes for 2d arrays to be set in model_configure (ichunk2d,jchunk2d) Default is size of array on each write task. * add ichunk3d,jchunk3d,kchunk3d to specify 3d chunksizes. Default is now ichunk3d,jchunk3d same as array size on each PE, kchunk3d=nlevs This results in the fastest writes on hera. * fix typo * put ifdefs in module_write_netcdf_parallel.F90 so no stub file needed * don't need this file anymore * remove module_write_netcdf_parallel_stub.o target * use specified chunksizes for serial IO. If chunksize parameter negative, let netcdf library choose defaults. * update comments * get output_file without esmf call error * syntax fix * fix stub interface in module_write_netcdf_parallel.F90 for cmake build Co-authored-by: junwang-noaa <37633869+junwang-noaa@users.noreply.github.com>
lisa-bengtsson
pushed a commit
to lisa-bengtsson/ccpp-physics
that referenced
this pull request
Mar 15, 2023
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 changes the way IPD_setup_step is run.
In the original code, the setup step at the beginning of each time integration step is performed over all blocks concurrently, whereas the remainder of the IPD steps (physics, radiation) are run over individual blocks. This makes it difficult - albeit not impossible - to integrate in the CCPP framework.
With the changes proposed here, IPD_setup_step is run over individual blocks. This penalizes the runtime on the small test case C96 on Cheyenne and Theia, where the model time step is large (1800s) and the time required for it is small. The reason therefore is that IPD_setup_step reads data from disk at certain intervals (6h?) and that this read is now performed nBlock times. For any realistic run on a large mesh (i.e. small grid spacing) with a small time step and the total runtime being dominated by the physics and dynamics, the increase in runtime should be small if not negligible.
The PR also addresses a few bugs inside sfcsub.F that cause crashes when using the GNU compilers.
Changes tested for BFB on Cheyenne (64bit, nh, no threading) and Theia (32bit, nh, with threading).