Skip to content

Commit

Permalink
Merge pull request ESCOMP#306 from billsacks/fix_lilac_pio2
Browse files Browse the repository at this point in the history
Extract non-initialization parts of shr_pio_mod to a module in share

### Description of changes

Extract the non-initialization parts of shr_pio_mod to a module in the
share repository, just keeping the initialization parts here.

This is part of a set of changes where I am splitting shr_pio_mod into two pieces:

(1) Reading configuration files and initializing PIO appropriately

(2) Storing information about PIO (io system descriptors, io types, io formats) and providing an interface to query this information

Piece (2) lives in the share code and is used regardless of the driver. Piece (1) is driver-specific, so for now we have three versions of that piece: one in CMEPS (created by extracting the initialization pieces from `cmeps/share/shr_pio_mod.F90`), one in the cpl7 repo (created by extracting the initialization pieces from `share/share/shr_pio_mod.F90`), and one in CTSM's LILAC directory (which is essentially identical to the one in the cpl7 repo). Piece (2) – the actual share code piece – is used by components (their use statements stay exactly as they are now) as well as by piece (1) (which is responsible for setting the module-level variables in piece (2)).

See ESCOMP/CTSM#1759 (comment) for more context.

Needs to be coordinated with ESCOMP/CESM_share#34

### Specific notes

Contributors other than yourself, if any: Discussions with @jedwards4b @mvertens

CMEPS Issues Fixed (include github issue #): none

Are changes expected to change answers? no

Any User Interface Changes (namelist or namelist defaults changes)? no

### Testing performed

**Only limited testing performed so far; I plan to run CESM prealpha testing. Please let me know if you'd like more than that (I'm uncertain about whether scripts_regression_tests and testlist_drv give additional value if I'm already running prealpha testing).**

Testing performed if application target is CESM:
- [ ] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines:
   - details (e.g. failed tests):
- [ ] (recommended) CESM testlist_drv.xml
   - machines and compilers:
   - details (e.g. failed tests):
- [x] (optional) CESM prealpha test
   - machines and compilers: cheyenne intel & gnu
   - details (e.g. failed tests): tests pass and are bit-for-bit
- [x] (other) please described in detail: the following tests pass
```
ERP_D_Ld10_P36x2_Vmct.f10_f10_mg37.IHistClm51BgcCrop.cheyenne_intel.clm-ciso_decStart
ERP_D_P36x2_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.cheyenne_intel.clm-default
LILACSMOKE_D_Ld2.f10_f10_mg37.I2000Ctsm50NwpSpAsRs.cheyenne_intel.clm-lilac
```

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

### Hashes used for testing:

- [x] CESM prealpha tests:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch/hash: cesm2_3_alpha09c, but with: cmeps at 1f8ce13, cpl7 at 15c5d5ce45a9db320b1448e5c29d9892fc57e046 and share at d7c43983b8d84abfc357fa112870bc50b3b60d60 (all from billsacks forks)
- [x] For the other tests described above:
  - repository to check out: https://github.com/billsacks/CTSM.git
  - branch/hash: branch fix_lilac_pio2, hash 2ead6826d
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch/hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch/hash:
  • Loading branch information
billsacks authored and jedwards4b committed Jul 8, 2022
1 parent fa6b8c9 commit 26a0b83
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions share/nuopc_shr_methods.F90
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ end subroutine get_component_instance
!===============================================================================

subroutine set_component_logging(gcomp, mastertask, logunit, shrlogunit, rc)
use shr_pio_mod, only : shr_pio_log_comp_settings
use driver_pio_mod, only : driver_pio_log_comp_settings
! input/output variables
type(ESMF_GridComp) :: gcomp
logical, intent(in) :: mastertask
Expand Down Expand Up @@ -165,7 +165,7 @@ subroutine set_component_logging(gcomp, mastertask, logunit, shrlogunit, rc)

open(newunit=logunit,file=trim(diro)//"/"//trim(logfile))
! Write the PIO settings to the beggining of each component log
call shr_pio_log_comp_settings(gcomp, logunit)
call driver_pio_log_comp_settings(gcomp, logunit)

else
logUnit = 6
Expand Down

0 comments on commit 26a0b83

Please sign in to comment.