-
Notifications
You must be signed in to change notification settings - Fork 79
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into add_gpu_gust
- Loading branch information
Showing
29 changed files
with
758 additions
and
529 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,11 +18,13 @@ jobs: | |
FC: mpifort | ||
CXX: mpicxx | ||
CPPFLAGS: "-I/usr/include -I/usr/local/include" | ||
|
||
# Versions of all dependencies can be updated here | ||
ESMF_VERSION: v8.4.0 | ||
ESMF_VERSION: v8.4.2 | ||
PNETCDF_VERSION: checkpoint.1.12.3 | ||
NETCDF_FORTRAN_VERSION: v4.6.0 | ||
PIO_VERSION: pio2_5_10 | ||
PIO_VERSION: pio2_6_0 | ||
CDEPS_VERSION: cdeps1.0.15 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
# Build the ESMF library, if the cache contains a previous build | ||
|
@@ -50,14 +52,14 @@ jobs: | |
key: ${{ runner.os }}-${{ env.PIO_VERSION }}.pio | ||
- name: Build ParallelIO | ||
if: steps.cache-ParallelIO.outputs.cache-hit != 'true' | ||
uses: NCAR/ParallelIO/.github/actions/parallelio_cmake@9390e30e29d4ebbfbef0fc72162cacd9e8f25e4e | ||
uses: NCAR/ParallelIO/.github/actions/parallelio_cmake@pio2_6_0 | ||
with: | ||
parallelio_version: ${{ env.ParallelIO_VERSION }} | ||
enable_fortran: True | ||
install_prefix: $HOME/pio | ||
- name: Build ESMF | ||
if: steps.cache-esmf.outputs.cache-hit != 'true' | ||
uses: ESCOMP/CDEPS/.github/actions/buildesmf@e06246b560d3132170bb1a5443fa3d65dfbd2040 | ||
uses: ESCOMP/CDEPS/.github/actions/buildesmf@cdeps1.0.15 | ||
with: | ||
esmf_version: ${{ env.ESMF_VERSION }} | ||
esmf_bopt: g | ||
|
@@ -67,12 +69,39 @@ jobs: | |
netcdf_fortran_path: /usr | ||
pnetcdf_path: /usr | ||
parallelio_path: $HOME/pio | ||
- name: Cache CDEPS | ||
id: cache-cdeps | ||
uses: actions/cache@v3 | ||
with: | ||
path: $HOME/cdeps | ||
key: ${{ runner.os }}-${{ env.CDEPS_VERSION }}.cdeps | ||
|
||
- name: checkout CDEPS | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: ESCOMP/CDEPS | ||
path: cdeps-src | ||
ref: ${{ env.CDEPS_VERSION }} | ||
- name: Build CDEPS | ||
if: steps.cache-cdeps.outputs.cache-hit != 'true' | ||
uses: ESCOMP/CDEPS/.github/actions/[email protected] | ||
with: | ||
esmfmkfile: $HOME/ESMF/lib/libg/Linux.gfortran.64.openmpi.default/esmf.mk | ||
pio_path: $HOME/pio | ||
src_root: ${GITHUB_WORKSPACE}/cdeps-src | ||
cmake_flags: " -Wno-dev -DCMAKE_BUILD_TYPE=DEBUG -DWERROR=ON -DCMAKE_Fortran_FLAGS=\"-DCPRGNU -g -Wall \ | ||
-ffree-form -ffree-line-length-none -fallow-argument-mismatch \"" | ||
|
||
- name: Build CMEPS | ||
run: | | ||
export ESMFMKFILE=$HOME/ESMF/lib/libg/Linux.gfortran.64.openmpi.default/esmf.mk | ||
export PIO=$HOME/pio | ||
mkdir build-cmeps | ||
pushd build-cmeps | ||
cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_Fortran_FLAGS="-g -Wall -Werror -ffree-form -ffree-line-length-none -Wno-unused-dummy-argument" ../ | ||
cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_Fortran_FLAGS="-g -Wall -Werror -ffree-form -ffree-line-length-none -Wno-unused-dummy-argument -I /home/runner/work/CMEPS/CMEPS/build-cdeps/share" ../ | ||
make VERBOSE=1 | ||
popd | ||
- name: Setup tmate session | ||
if: ${{ failure() }} | ||
uses: mxschmitt/action-tmate@v3 |
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
module shr_lightning_coupling_mod | ||
|
||
!======================================================================== | ||
! Module for handling namelist variables related to lightning coupling | ||
!======================================================================== | ||
|
||
use ESMF , only : ESMF_VMGetCurrent, ESMF_VM, ESMF_VMGet | ||
use ESMF , only : ESMF_LOGERR_PASSTHRU, ESMF_SUCCESS | ||
use ESMF , only : ESMF_VMBroadCast, ESMF_Logical, assignment(=) | ||
use shr_sys_mod , only : shr_sys_abort | ||
use shr_log_mod , only : shr_log_getLogUnit | ||
use shr_nl_mod , only : shr_nl_find_group_name | ||
use nuopc_shr_methods, only : chkerr | ||
|
||
implicit none | ||
private | ||
|
||
! !PUBLIC MEMBER FUNCTIONS | ||
public shr_lightning_coupling_readnl ! Read namelist | ||
|
||
character(len=*), parameter :: & | ||
u_FILE_u=__FILE__ | ||
|
||
!==================================================================================== | ||
CONTAINS | ||
!==================================================================================== | ||
|
||
subroutine shr_lightning_coupling_readnl(NLFilename, atm_provides_lightning_out) | ||
|
||
!======================================================================== | ||
! reads lightning_coupling_nl namelist and returns a variable specifying | ||
! if atmosphere model provides lightning flash frequency field to mediator | ||
!======================================================================== | ||
|
||
! input/output variables | ||
character(len=*), intent(in) :: NLFilename ! Namelist filename | ||
logical, intent(out) :: atm_provides_lightning_out ! if TRUE atm will provide lightning flash frequency | ||
|
||
!----- local ----- | ||
logical :: atm_provides_lightning | ||
type(ESMF_VM) :: vm | ||
integer :: unitn ! namelist unit number | ||
integer :: ierr ! error code | ||
logical :: exists ! if file exists or not | ||
type(ESMF_Logical):: ltmp(1) | ||
integer :: rc | ||
integer :: localpet | ||
integer :: mpicom | ||
integer :: s_logunit | ||
character(len=*), parameter :: atm_ozone_frequency_not_present = 'NOT_PRESENT' | ||
character(len=*), parameter :: subname = '(shr_lightning_coupling_readnl) ' | ||
! ------------------------------------------------------------------ | ||
|
||
namelist /lightning_coupling_nl/ atm_provides_lightning | ||
|
||
rc = ESMF_SUCCESS | ||
|
||
atm_provides_lightning_out = .false. | ||
ltmp(1) = .false. | ||
|
||
!--- Open and read namelist --- | ||
if ( len_trim(NLFilename) == 0 ) then | ||
call shr_sys_abort( subname//'ERROR: nlfilename not set' ) | ||
end if | ||
call shr_log_getLogUnit(s_logunit) | ||
call ESMF_VMGetCurrent(vm, rc=rc) | ||
if (chkerr(rc,__LINE__,u_FILE_u)) return | ||
|
||
call ESMF_VMGet(vm, localPet=localpet, mpiCommunicator=mpicom, rc=rc) | ||
if (chkerr(rc,__LINE__,u_FILE_u)) return | ||
|
||
if (localpet==0) then | ||
! ------------------------------------------------------------------------ | ||
! Set default values in case namelist file doesn't exist, lightning_coupling_nl group | ||
! doesn't exist within the file, or a given variable isn't present in the namelist | ||
! group in the file. | ||
! ------------------------------------------------------------------------ | ||
atm_provides_lightning = .false. | ||
|
||
! ------------------------------------------------------------------------ | ||
! Read namelist file | ||
! ------------------------------------------------------------------------ | ||
inquire( file=trim(NLFileName), exist=exists) | ||
if ( exists ) then | ||
open(newunit=unitn, file=trim(NLFilename), status='old' ) | ||
write(s_logunit,'(a)') subname,'Read in lightning_coupling_nl namelist from: ', trim(NLFilename) | ||
call shr_nl_find_group_name(unitn, 'lightning_coupling_nl', ierr) | ||
if (ierr == 0) then | ||
! Note that ierr /= 0 means no namelist is present. | ||
read(unitn, lightning_coupling_nl, iostat=ierr) | ||
if (ierr > 0) then | ||
call shr_sys_abort(subname//'problem reading lightning_coupling_nl') | ||
end if | ||
end if | ||
close( unitn ) | ||
end if | ||
|
||
ltmp(1) = atm_provides_lightning | ||
|
||
end if | ||
|
||
! ------------------------------------------------------------------------ | ||
! Broadcast values to all tasks | ||
! ------------------------------------------------------------------------ | ||
call ESMF_VMBroadcast(vm, ltmp, count=1, rootPet=0, rc=rc) | ||
if (chkerr(rc,__LINE__,u_FILE_u)) return | ||
|
||
atm_provides_lightning_out = ltmp(1) | ||
|
||
end subroutine shr_lightning_coupling_readnl | ||
|
||
end module shr_lightning_coupling_mod |
This file contains 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
Oops, something went wrong.