Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/support/lisf-557ww-7.5' into sup…
Browse files Browse the repository at this point in the history
…port/lisf-557ww-7.6
  • Loading branch information
jvgeiger committed Aug 28, 2024
2 parents e1c09f7 + 8b90c2e commit bc128f2
Show file tree
Hide file tree
Showing 18 changed files with 1,991 additions and 140 deletions.
1 change: 1 addition & 0 deletions docs/LDT_users_guide/revision_table.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
|====
| Revision | Summary of Changes | Date

| 2.5 | LISF 557WW 7.5.18 release | Aug 27, 2024
| 3.0 | LISF Public 7.5.0 release | Jan 10, 2024
| 2.4 | LISF Public 7.4.3 release | Oct 03, 2023
| 2.3 | LISF 557WW 7.5.9 release | Jul 05, 2023
Expand Down
168 changes: 168 additions & 0 deletions env/discover/lisf_7.5_intel_2023.2.1_s2s
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
#%Module1.0###################################################################

proc ModulesHelp { } {
puts stderr "\t[module-info name] - loads the LISF_7_5_INTEL_2023_2_1 env"
puts stderr ""
puts stderr "This is for use on NCCS' discover system running SLES 15.4."
puts stderr ""
puts stderr "\tThe following env variables are set:"
puts stderr "\t\tDEV_ENV"
puts stderr "\t\tLIS_ARCH"
puts stderr "\t\tLIS_SPMD"
puts stderr "\t\tLIS_FC"
puts stderr "\t\tLIS_CC"
puts stderr "\t\tLIS_RPC"
puts stderr "\t\tLIS_OPENJPEG"
puts stderr "\t\tLIS_ECCODES"
puts stderr "\t\tLIS_NETCDF"
puts stderr "\t\tLIS_HDF4"
puts stderr "\t\tLIS_HDFEOS"
puts stderr "\t\tLIS_HDF5"
puts stderr "\t\tLIS_MODESMF"
puts stderr "\t\tLIS_LIBESMF"
puts stderr "\t\tLIS_MINPACK"
puts stderr "\t\tLIS_CRTM"
puts stderr "\t\tLIS_CRTM_PROF"
puts stderr "\t\tLIS_CMEM"
puts stderr "\t\tLIS_LAPACK"
puts stderr "\t\tLIS_PETSC"
puts stderr "\t\tLDT_ARCH"
puts stderr "\t\tLDT_FC"
puts stderr "\t\tLDT_CC"
puts stderr "\t\tLDT_RPC"
puts stderr "\t\tLDT_OPENJPEG"
puts stderr "\t\tLDT_ECCODES"
puts stderr "\t\tLDT_NETCDF"
puts stderr "\t\tLDT_HDF4"
puts stderr "\t\tLDT_HDFEOS"
puts stderr "\t\tLDT_HDF5"
puts stderr "\t\tLDT_MODESMF"
puts stderr "\t\tLDT_LIBESMF"
puts stderr "\t\tLDT_GDAL"
puts stderr "\t\tLDT_FORTRANGIS"
puts stderr "\t\tLDT_LIBGEOTIFF"
puts stderr "\t\tLVT_ARCH"
puts stderr "\t\tLVT_FC"
puts stderr "\t\tLVT_CC"
puts stderr "\t\tLVT_RPC"
puts stderr "\t\tLVT_OPENJPEG"
puts stderr "\t\tLVT_ECCODES"
puts stderr "\t\tLVT_NETCDF"
puts stderr "\t\tLVT_HDF4"
puts stderr "\t\tLVT_HDFEOS"
puts stderr "\t\tLVT_HDF5"
puts stderr "\t\tLVT_MODESMF"
puts stderr "\t\tLVT_LIBESMF"
puts stderr "\t\tLVT_GDAL"
puts stderr "\t\tLVT_FORTRANGIS"
puts stderr ""
puts stderr "\tThe following modules are loaded:"
puts stderr "\t\tcomp/gcc/13.2.0"
puts stderr "\t\tcomp/intel/2023.2.1"
puts stderr "\t\tmpi/impi/2021.11"
puts stderr "\t\tgit/2.42.0"
puts stderr ""
}

conflict comp mpi

module-whatis "loads the [module-info name] environment"

set modname [module-info name]
set modmode [module-info mode]

module load comp/gcc/13.2.0
module load comp/intel/2023.2.1
module load mpi/impi/2021.11
module load git/2.42.0

set def_lis_rpc /usr/lib64/libtirpc.so
set def_lis_hdf5 /discover/nobackup/projects/lis/libs/sles-15.4/hdf5/1.14.2_intel-2023.2.1
set def_lis_netcdf /discover/nobackup/projects/lis/libs/sles-15.4/netcdf/4.9.2_intel-2023.2.1
set def_lis_openjpeg /discover/nobackup/projects/lis/libs/sles-15.4/openjpeg/2.3.0-150000.3.13.1.x86_64/usr
set def_lis_eccodes /discover/nobackup/projects/lis/libs/sles-15.4/eccodes/2.32.0_intel-2023.2.1
set def_lis_hdf4 /discover/nobackup/projects/lis/libs/sles-15.4/hdf4/4.2.16-2_intel-2023.2.1
set def_lis_hdfeos /discover/nobackup/projects/lis/libs/sles-15.4/hdfeos2/3.0_intel-2023.2.1
set def_lis_modesmf /discover/nobackup/projects/lis/libs/sles-15.4/esmf/8.5.0_intel-2023.2.1_impi-2021.11/mod/modO/Linux.intel.64.intelmpi.default
set def_lis_libesmf /discover/nobackup/projects/lis/libs/sles-15.4/esmf/8.5.0_intel-2023.2.1_impi-2021.11/lib/libO/Linux.intel.64.intelmpi.default
set def_lvt_proj /discover/nobackup/projects/lis/libs/sles-15.4/proj/9.3.0_intel-2023.2.1
set def_ldt_libgeotiff /discover/nobackup/projects/lis/libs/sles-15.4/geotiff/1.7.1_intel-2023.2.1
set def_lvt_gdal /discover/nobackup/projects/lis/libs/sles-15.4/gdal/3.7.2_intel-2023.2.1
set def_lvt_fortrangis /discover/nobackup/projects/lis/libs/sles-15.4/fortrangis/3.0-1_intel-2023.2.1
set def_lis_petsc /discover/nobackup/projects/lis/libs/sles-15.4/petsc/3.20.0_intel-2023.2.1_impi-2021.11
set def_lis_minpack /discover/nobackup/projects/lis/libs/minpack/intel_11_1_038
set def_lis_crtm /discover/nobackup/projects/lis/libs/JCSDA_CRTM/REL-2.0.2.Surface-rev_intel_18_0_3_222
set def_lis_crtm_prof /discover/nobackup/projects/lis/libs/CRTM_Profile_Utility/intel_18_0_3_222
set def_lis_cmem /discover/nobackup/projects/lis/libs/LIS-MEM/intel_18_0_3_222
set def_lis_lapack /discover/nobackup/projects/lis/libs/lapack/3.6.0_intel_14_0_3_174

setenv DEV_ENV LISF_7_5_INTEL_2023_2_1
setenv LIS_ARCH linux_ifc
setenv LIS_SPMD parallel
setenv LIS_FC mpiifort
setenv LIS_CC mpicc
setenv LIS_RPC $def_lis_rpc
setenv LIS_OPENJPEG $def_lis_openjpeg
setenv LIS_ECCODES $def_lis_eccodes
setenv LIS_NETCDF $def_lis_netcdf
setenv LIS_HDF4 $def_lis_hdf4
setenv LIS_HDFEOS $def_lis_hdfeos
setenv LIS_HDF5 $def_lis_hdf5
setenv LIS_MODESMF $def_lis_modesmf
setenv LIS_LIBESMF $def_lis_libesmf
setenv LIS_MINPACK $def_lis_minpack
setenv LIS_CRTM $def_lis_crtm
setenv LIS_CRTM_PROF $def_lis_crtm_prof
setenv LIS_CMEM $def_lis_cmem
setenv LIS_LAPACK $def_lis_lapack
setenv LIS_PETSC $def_lis_petsc

setenv LDT_ARCH linux_ifc
setenv LDT_FC mpiifort
setenv LDT_CC mpicc
setenv LDT_RPC $def_lis_rpc
setenv LDT_OPENJPEG $def_lis_openjpeg
setenv LDT_ECCODES $def_lis_eccodes
setenv LDT_NETCDF $def_lis_netcdf
setenv LDT_HDF4 $def_lis_hdf4
setenv LDT_HDFEOS $def_lis_hdfeos
setenv LDT_HDF5 $def_lis_hdf5
setenv LDT_MODESMF $def_lis_modesmf
setenv LDT_LIBESMF $def_lis_libesmf
setenv LDT_GDAL $def_lvt_gdal
setenv LDT_FORTRANGIS $def_lvt_fortrangis
setenv LDT_LIBGEOTIFF $def_ldt_libgeotiff


setenv LVT_ARCH linux_ifc
setenv LVT_FC mpiifort
setenv LVT_CC mpicc
setenv LVT_RPC $def_lis_rpc
setenv LVT_OPENJPEG $def_lis_openjpeg
setenv LVT_ECCODES $def_lis_eccodes
setenv LVT_NETCDF $def_lis_netcdf
setenv LVT_HDF4 $def_lis_hdf4
setenv LVT_HDFEOS $def_lis_hdfeos
setenv LVT_HDF5 $def_lis_hdf5
setenv LVT_MODESMF $def_lis_modesmf
setenv LVT_LIBESMF $def_lis_libesmf
setenv LVT_GDAL $def_lvt_gdal
setenv LVT_FORTRANGIS $def_lvt_fortrangis


prepend-path LD_LIBRARY_PATH "$def_lis_openjpeg/lib"
prepend-path LD_LIBRARY_PATH "$def_ldt_libgeotiff/lib"
prepend-path LD_LIBRARY_PATH "$def_lvt_proj/lib"
prepend-path LD_LIBRARY_PATH "$def_lvt_gdal/lib"
prepend-path LD_LIBRARY_PATH "$def_lis_hdf4/lib"
prepend-path LD_LIBRARY_PATH "$def_lis_hdf5/lib"
prepend-path LD_LIBRARY_PATH "$def_lis_libesmf"
prepend-path LD_LIBRARY_PATH "$def_lis_netcdf/lib"
prepend-path LD_LIBRARY_PATH "$def_lis_eccodes/lib"
prepend-path LD_LIBRARY_PATH "$def_lis_petsc/lib"
prepend-path PATH "$def_lis_netcdf/bin:$def_lis_eccodes/bin"

# EMK Miniconda3 environment for S2S
prepend-path PATH "/discover/nobackup/projects/usaf_lis/emkemp/miniconda3/20240712_py311_sles15_hpc11/bin"
setenv ESMFMKFILE /discover/nobackup/projects/usaf_lis/emkemp/miniconda3/20240712_py311_sles15_hpc11/lib/esmf.mk
setenv PROJ_LIB /discover/nobackup/projects/usaf_lis/emkemp/miniconda3/20240712_py311_sles15_hpc11/share/proj/
5 changes: 4 additions & 1 deletion env/discover/sles12/lisf_7.5_intel_2021.4.0_s2s
Original file line number Diff line number Diff line change
Expand Up @@ -171,4 +171,7 @@ prepend-path LD_LIBRARY_PATH "$def_lis_petsc/lib"
prepend-path PATH "$def_lis_netcdf/bin:$def_lis_eccodes/bin"

# EMK Miniconda3 environment for S2S
prepend-path PATH "/discover/nobackup/projects/usaf_lis/emkemp/miniconda3/20221027/bin"
prepend-path PATH "/discover/nobackup/projects/usaf_lis/emkemp/miniconda3/20240712_py311_sles15_hpc11/bin"
setenv ESMFMKFILE /discover/nobackup/projects/usaf_lis/emkemp/miniconda3/20240712_py311_sles15_hpc11/lib/esmf.mk
setenv PROJ_LIB /discover/nobackup/projects/usaf_lis/emkemp/miniconda3/20240712_py311_sles15_hpc11/share/proj/

68 changes: 56 additions & 12 deletions ldt/USAFSI/LDT_usafsiMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,11 @@ module LDT_usafsiMod

! Other new settings
real :: fill_climo
character*255 :: source_of_ocean_data ! EMK 20240718
character*255 :: gofs_sst_dir
character*255 :: gofs_cice_dir
character*255 :: espcd_sst_dir ! EMK 20240718
character*255 :: espcd_cice_dir ! EMK 20240718
character*255 :: lis_grib2_dir
character*20 :: security_class
character*20 :: data_category
Expand Down Expand Up @@ -107,7 +110,7 @@ subroutine LDT_usafsiInit()
! Imports
use ESMF
use LDT_coreMod, only: LDT_config
use LDT_logMod, only: LDT_verify
use LDT_logMod, only: LDT_verify, LDT_logunit, LDT_endrun

! Defaults
implicit none
Expand Down Expand Up @@ -507,23 +510,64 @@ subroutine LDT_usafsiInit()
rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")

! Get gofs_sst_dir
cfg_entry = "USAFSI GOFS SST data directory:"
! EMK 20240718...Specify source of ocean data.
cfg_entry = "USAFSI source of ocean data:"
call ESMF_ConfigFindLabel(LDT_config, trim(cfg_entry), rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")
call ESMF_ConfigGetAttribute(LDT_config, &
usafsi_settings%gofs_sst_dir, &
usafsi_settings%source_of_ocean_data, &
rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")
if (usafsi_settings%source_of_ocean_data .ne. "GOFS" .and. &
usafsi_settings%source_of_ocean_data .ne. "ESPC-D") then
write(LDT_logunit,*)'[ERR] Unrecognized source of ocean data'
write(LDT_logunit,*)'[ERR] Must be GOFS or ESPC-D'
write(LDT_logunit,*) &
"[ERR] Update entry for 'USAFSI source of ocean data:'"
write(LDT_logunit,*)'[ERR] LDT will halt.'
call LDT_endrun()
end if

! Get gofs_cice_dir
cfg_entry = "USAFSI GOFS CICE data directory:"
call ESMF_ConfigFindLabel(LDT_config, trim(cfg_entry), rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")
call ESMF_ConfigGetAttribute(LDT_config, &
usafsi_settings%gofs_cice_dir, &
rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")
if (usafsi_settings%source_of_ocean_data == "GOFS") then
! Get gofs_sst_dir
cfg_entry = "USAFSI GOFS SST data directory:"
call ESMF_ConfigFindLabel(LDT_config, trim(cfg_entry), rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")
call ESMF_ConfigGetAttribute(LDT_config, &
usafsi_settings%gofs_sst_dir, &
rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")

! Get gofs_cice_dir
cfg_entry = "USAFSI GOFS CICE data directory:"
call ESMF_ConfigFindLabel(LDT_config, trim(cfg_entry), rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")
call ESMF_ConfigGetAttribute(LDT_config, &
usafsi_settings%gofs_cice_dir, &
rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")

else if (usafsi_settings%source_of_ocean_data == "ESPC-D") then

! Get espcd_sst_dir
cfg_entry = "USAFSI ESPC-D SST data directory:"
call ESMF_ConfigFindLabel(LDT_config, trim(cfg_entry), rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")
call ESMF_ConfigGetAttribute(LDT_config, &
usafsi_settings%espcd_sst_dir, &
rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")

! Get espcd_cice_dir
cfg_entry = "USAFSI ESPC-D CICE data directory:"
call ESMF_ConfigFindLabel(LDT_config, trim(cfg_entry), rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")
call ESMF_ConfigGetAttribute(LDT_config, &
usafsi_settings%espcd_cice_dir, &
rc=rc)
call LDT_verify(rc, trim(cfg_entry)//" not specified")

end if

! Get lis_grib2_dir
cfg_entry = "USAFSI LIS GRIB2 data directory:"
Expand Down
17 changes: 11 additions & 6 deletions ldt/USAFSI/USAFSI_analysisMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
! 13 Jan 2022 Eric Kemp Added support for GRIB1 FNMOC SST file.
! 28 Jul 2023 Eric Kemp Added support for new sfcobs file format (longer
! station names.
! 19 Jul 2024 Eric Kemp Renamed run_seaice_analysis_gofs to
! run_seaice_analysis_navy to reflect use of
! ESPC-D or GOFS data. Also fixed uninitialized
! variable.
!
! DESCRIPTION:
! Source code for Air Force snow depth analysis.
Expand Down Expand Up @@ -46,7 +50,7 @@ module USAFSI_analysisMod
public :: run_snow_analysis_noglacier ! EMK
public :: run_snow_analysis_glacier ! EMK
public :: run_seaice_analysis_ssmis ! EMK
public :: run_seaice_analysis_gofs ! EMK
public :: run_seaice_analysis_navy ! EMK
public :: getclimo ! Yeosang Yoon

! Internal constant
Expand Down Expand Up @@ -2316,6 +2320,7 @@ subroutine getsst (date10, stmpdir, sstdir)
found = .false.
limit = 3
tries = 1
grstat = 0

call date10_julhr (date10, julsst, program_name, routine_name)

Expand Down Expand Up @@ -3423,8 +3428,8 @@ subroutine run_seaice_analysis_ssmis(month,runcycle,nc,nr,landmask)

end subroutine run_seaice_analysis_ssmis

! Update sea ice based on remapped US Navy GOFS data
subroutine run_seaice_analysis_gofs(month, runcycle, nc, nr, landmask)
! Update sea ice based on remapped US Navy GOFS/ESPC-D data
subroutine run_seaice_analysis_navy(month, runcycle, nc, nr, landmask)

! Imports
use LDT_usafsiMod, only: usafsi_settings
Expand Down Expand Up @@ -3468,10 +3473,10 @@ subroutine run_seaice_analysis_gofs(month, runcycle, nc, nr, landmask)

! Use the GOFS data if available. Otherwise, try to fall back
! on prior analysis subject to certain constraints.
if (USAFSI_arrays%gofs_icecon(c,r) >= 0) then
if (USAFSI_arrays%navy_icecon(c,r) >= 0) then
! We have valid GOFS data
USAFSI_arrays%icecon(c,r) = &
nint(USAFSI_arrays%gofs_icecon(c,r))
nint(USAFSI_arrays%navy_icecon(c,r))
if (USAFSI_arrays%icecon(c,r) > usafsi_settings%minice) then
USAFSI_arrays%icemask(c,r) = icepnt
else
Expand Down Expand Up @@ -3548,7 +3553,7 @@ subroutine run_seaice_analysis_gofs(month, runcycle, nc, nr, landmask)
end do ! c
end do ! r

end subroutine run_seaice_analysis_gofs
end subroutine run_seaice_analysis_navy

! Private subroutine
subroutine summer (obelev, hemi, oblat, month, towarm)
Expand Down
5 changes: 3 additions & 2 deletions ldt/USAFSI/USAFSI_arraysMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
!** 22 Mar 19 Ported to LDT...Eric Kemp, NASA GSFC/SSAI
!** 09 May 19 Renamed LDTSI...Eric Kemp, NASA GSFC/SSAI
!** 13 Dec 19 Renamed USAFSI...Eric Kemp, NASA GSFC/SSAI
!**
!** 19 Jul 24 Renamed gofs_icecon array to navy_icecon array to reflect
! source as either ESPC-D or GOFS.
!*****************************************************************************************
!*****************************************************************************************

Expand Down Expand Up @@ -65,7 +66,7 @@ module USAFSI_arraysMod
real, allocatable :: snofrac ( : , : ) ! FRACTIONAL SNOW DATA ON USAFSI GRID
real, allocatable :: ssmis_depth ( : , : ) ! SNOW DEPTH FROM SSMIS EDRS
real, allocatable :: sst ( : , : ) ! NAVY SEA SURFACE TEMPERATURES (KELVIN)
real, allocatable :: gofs_icecon(:,:)
real, allocatable :: navy_icecon(:,:)
end type USAFSI_arrays_t

type(USAFSI_arrays_t), public :: USAFSI_arrays
Expand Down
Loading

0 comments on commit bc128f2

Please sign in to comment.