Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@ find_package(sigio REQUIRED)
find_package(sfcio REQUIRED)
find_package(nemsio REQUIRED)
find_package(ncio REQUIRED)
find_package(sp REQUIRED)
find_package(ip REQUIRED)
find_package(w3emc REQUIRED)
find_package(bufr REQUIRED)
Expand Down
12 changes: 6 additions & 6 deletions modulefiles/gsiutils_common.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ Load common modules to build GSI utilities on all machines
local netcdf_c_ver=os.getenv("netcdf_c_ver") or "4.9.2"
local netcdf_fortran_ver=os.getenv("netcdf_fortran_ver") or "4.6.1"

local bufr_ver=os.getenv("bufr_ver") or "11.7.0"
local cmake_ver=os.getenv("cmake_ver") or "3.27.9"
local bufr_ver=os.getenv("bufr_ver") or "12.1.0"
local bacio_ver=os.getenv("bacio_ver") or "2.4.1"
local w3emc_ver=os.getenv("w3emc_ver") or "2.10.0"
local sp_ver=os.getenv("sp_ver") or "2.5.0"
local ip_ver=os.getenv("ip_ver") or "4.3.0"
local sigio_ver=os.getenv("sigio_ver") or "2.3.2"
local sfcio_ver=os.getenv("sfcio_ver") or "1.4.1"
local ip_ver=os.getenv("ip_ver") or "5.1.0"
local sigio_ver=os.getenv("sigio_ver") or "2.3.3"
local sfcio_ver=os.getenv("sfcio_ver") or "1.4.2"
local nemsio_ver=os.getenv("nemsio_ver") or "2.5.4"
local wrf_io_ver=os.getenv("wrf_io_ver") or "1.2.0"
local ncio_ver=os.getenv("ncio_ver") or "1.1.2"
Expand All @@ -21,10 +21,10 @@ local ncdiag_ver=os.getenv("ncdiag_ver") or "1.1.2"
load(pathJoin("netcdf-c", netcdf_c_ver))
load(pathJoin("netcdf-fortran", netcdf_fortran_ver))

load(pathJoin("cmake", cmake_ver))
load(pathJoin("bufr", bufr_ver))
load(pathJoin("bacio", bacio_ver))
load(pathJoin("w3emc", w3emc_ver))
load(pathJoin("sp", sp_ver))
load(pathJoin("ip", ip_ver))
load(pathJoin("sigio", sigio_ver))
load(pathJoin("sfcio", sfcio_ver))
Expand Down
8 changes: 3 additions & 5 deletions modulefiles/gsiutils_gaeac6.intel.lua
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
help([[
]])

prepend_path("MODULEPATH", "/ncrc/proj/epic/spack-stack/c6/spack-stack-1.6.0/envs/gsi-addon/install/modulefiles/Core")
prepend_path("MODULEPATH", "/ncrc/proj/epic/spack-stack/c6/spack-stack-1.9.1/envs/ue-intel-2023.2.0/install/modulefiles/Core")

local python_ver=os.getenv("python_ver") or "3.11.6"
local python_ver=os.getenv("python_ver") or "3.11.7"
local stack_intel_ver=os.getenv("stack_intel_ver") or "2023.2.0"
local stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "8.1.29"
local cmake_ver=os.getenv("cmake_ver") or "3.23.1"
local stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "8.1.30"
local prod_util_ver=os.getenv("prod_util_ver") or "2.1.1"

load(pathJoin("stack-intel", stack_intel_ver))
load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver))
load(pathJoin("python", python_ver))
load(pathJoin("cmake", cmake_ver))

load("gsiutils_common")

Expand Down
24 changes: 0 additions & 24 deletions modulefiles/gsiutils_s4.intel.lua

This file was deleted.

2 changes: 1 addition & 1 deletion src/EFSOI_Utilities/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ target_link_libraries(efsoi.x PRIVATE sfcio::sfcio)
target_link_libraries(efsoi.x PRIVATE nemsio::nemsio)
target_link_libraries(efsoi.x PRIVATE ncio::ncio)
target_link_libraries(efsoi.x PRIVATE w3emc::w3emc_d)
target_link_libraries(efsoi.x PRIVATE sp::sp_d)
target_link_libraries(efsoi.x PRIVATE ip::ip_d)
if(OpenMP_Fortran_FOUND)
target_link_libraries(efsoi.x PRIVATE OpenMP::OpenMP_Fortran)
endif()
Expand Down
2 changes: 1 addition & 1 deletion src/EnKF/gfs/src/adderrspec.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ target_link_libraries(adderrspec.x PRIVATE bacio::bacio_4)
target_link_libraries(adderrspec.x PRIVATE sigio::sigio)
target_link_libraries(adderrspec.x PRIVATE nemsio::nemsio)
target_link_libraries(adderrspec.x PRIVATE w3emc::w3emc_d)
target_link_libraries(adderrspec.x PRIVATE sp::sp_d)
target_link_libraries(adderrspec.x PRIVATE ip::ip_4)
if(OpenMP_Fortran_FOUND)
target_link_libraries(adderrspec.x PRIVATE OpenMP::OpenMP_Fortran)
endif()
Expand Down
43 changes: 22 additions & 21 deletions src/EnKF/gfs/src/adderrspec.fd/adderrspec_nmcmeth_ncep_spec.f90
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ program adderrspec_nmcmeth
! prgmmr: whitaker org: esrl/psd date: 2009-02-23
!
! abstract: Add samples of 48-24 forecast differences with a
! a specified amplitude and zero mean to analysis ensemle.
! Initial dates for forecasts are read in from dates.dat
! (this file must be created beforehand). Ensemble perts
! a specified amplitude and zero mean to analysis ensemle.
! Initial dates for forecasts are read in from dates.dat
! (this file must be created beforehand). Ensemble perts
! are smoothed, ens mean written out.
!
! program history log:
Expand All @@ -34,6 +34,7 @@ program adderrspec_nmcmeth
!$$$

use sigio_module
use sp_mod, only: sppad
use nemsio_module, only: nemsio_init,nemsio_open,nemsio_close
use nemsio_module, only: nemsio_gfile,nemsio_getfilehead,&
nemsio_readrec,nemsio_writerec,nemsio_readrecv,nemsio_writerecv
Expand All @@ -45,10 +46,10 @@ program adderrspec_nmcmeth
! Declare externals
external :: mpi_init, mpi_comm_rank, mpi_comm_size, w3tagb, mpi_abort, mpi_comm_group, &
mpi_group_incl, mpi_comm_create, mpi_barrier, copy_sigdata, mpi_allreduce, &
sppad, smooth, w3tage, mpi_finalize
smooth, w3tage, mpi_finalize

logical :: meanonly,lexist,nemsio,sigio

character(len=3) :: charnanal
character(len=4) :: string
character(len=10) :: datestring, datestringpert
Expand Down Expand Up @@ -87,7 +88,7 @@ program adderrspec_nmcmeth
call mpi_init(iret)
call mpi_comm_rank(mpi_comm_world,mype,iret)
call mpi_comm_size(mpi_comm_world,npe,iret)

if (mype==0) call w3tagb('ADDERRSPEC_NMCMETH',2011,0319,0055,'NP25')

! Get command line arguments
Expand Down Expand Up @@ -127,7 +128,7 @@ program adderrspec_nmcmeth
write(6,*)' npert= ',npert,' meanonly ',meanonly
write(6,*)' window= ',window
endif

if (npe < nanals) then
write(6,*)'***ERROR** npe=',npe,' too small. nanals=',nanals
flush(6)
Expand Down Expand Up @@ -156,13 +157,13 @@ program adderrspec_nmcmeth
write(6,*)'***ERROR*** after mpi_comm_create with iret=',iret
call mpi_abort(mpi_comm_world,101,iret)
endif
! Generate random numbers to select perturbations.

! Generate random numbers to select perturbations.
! Use analysis date as random seed
rseed = 1.0e6_8*iadate(1) + 1.0e4_8*iadate(2) + 1.0e2_8*iadate(3) + iadate(4)
iseed = rseed
call random_setseed(iseed)

! Generate random number and map into range
allocate(rwork(nanals),iwork(nanals))
call random_number(rwork)
Expand All @@ -174,15 +175,15 @@ program adderrspec_nmcmeth
! Randomize dates (done on single task)
if (mype == 0) then
allocate(datepert(npert))

! Read file with sequential pertubration dates.
open(9,form='formatted',file='dates_seq.dat')
do i=1,npert
read(9,'(a10)') datepert(i)
end do
close(9)
write(6,*)'perturbation dates range from ',datepert(1),' to ',datepert(npert)

! Write file with randomized perturbation dates.
write(6,*)'iseed=',iseed,' nanals=',nanals,' npert=',npert
open(59,form='formatted',file='dates_ran.dat')
Expand Down Expand Up @@ -314,7 +315,7 @@ program adderrspec_nmcmeth
sigdataim%t = rnanals*sigdataim%t
sigdataim%q = rnanals*sigdataim%q
sigdataim%ps = rnanals*sigdataim%ps

! Write out ensemble mean from task 0
if (mype == 0) then
sigheadim%iens(1) = 1 ! unperturbed control
Expand Down Expand Up @@ -356,7 +357,7 @@ program adderrspec_nmcmeth
deallocate(rwork1d)
deallocate(swork1d)
deallocate(twork1d)

endif

! Jump here if more mpi processors than files to process
Expand All @@ -379,18 +380,18 @@ program adderrspec_nmcmeth
enddo
close(9)
filenamepert = trim(datapath)//'sigf48_f24.gfs.'//trim(datestringpert)

call sigio_srohdc(iunitsf,trim(filenamepert),sigheadpin,sigdatapin,iret)
write(6,*)'member=',trim(filenamein),' perturbation=',trim(filenamepert)

if (iret /= 0) then
write(6,*)'***ERROR*** problem opening ',trim(filenamepert),' iret=',iret
flush(6)
flush(0)
call mpi_abort(mpi_comm_world,101,iret)
stop
end if

write(6,*) 'compare resolution, jcapout, jcappert = ',sigheado%jcap,sigheadpin%jcap

! Change resolution of spectral perturbations if necessary
Expand Down Expand Up @@ -469,14 +470,14 @@ program adderrspec_nmcmeth
sigdatap%t = sigdatai%t - sigdataim%t + sigdatap%t
sigdatap%q = sigdatai%q - sigdataim%q + sigdatap%q
sigdatap%ps = sigdatai%ps - sigdataim%ps + sigdatap%ps

! Optionally smooth perturbations
if (maxval(smoothparm) > 0) then
if (mype == 0) write(6,*)'call smooth'
call smooth(sigdatap%z,ntrunc,nlevs,smoothparm,window)
call smooth(sigdatap%d,ntrunc,nlevs,smoothparm,window)
call smooth(sigdatap%t,ntrunc,nlevs,smoothparm,window)

! Only smooth q field? this is what's done in getsigensmeanp_smooth.f90
! call smooth(sigdatap%q,ntrunc,nlevs,smoothparm,window)
do k=1,ntrac
Expand Down Expand Up @@ -540,7 +541,7 @@ program adderrspec_nmcmeth
write(91,*) datestring
close(91)
endif

end program adderrspec_nmcmeth

subroutine smooth(specdat,ntrunc,nlevs,smoothparm,window)
Expand Down
2 changes: 1 addition & 1 deletion src/EnKF/gfs/src/getsfcnstensupdp.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ target_link_libraries(getsfcnstensupdp.x PRIVATE bacio::bacio_4)
target_link_libraries(getsfcnstensupdp.x PRIVATE w3emc::w3emc_d)
target_link_libraries(getsfcnstensupdp.x PRIVATE nemsio::nemsio)
target_link_libraries(getsfcnstensupdp.x PRIVATE sfcio::sfcio)
target_link_libraries(getsfcnstensupdp.x PRIVATE sp::sp_4)
target_link_libraries(getsfcnstensupdp.x PRIVATE ip::ip_d)

# Install executable targets
install(TARGETS getsfcnstensupdp.x RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
Expand Down
3 changes: 2 additions & 1 deletion src/EnKF/gfs/src/getsfcnstensupdp.fd/getsfcnstensupdp.f90
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ program getsfcnstensupdp
!$$$

use mpi
use sp_mod, only: splat
use kinds, only: r_kind,i_kind,r_single
use constants, only: two,half,zero,z_w_max,tfrozen,init_constants_derived,pi
use sfcio_module, only: sfcio_srohdc,sfcio_head,sfcio_data,sfcio_swohdc
Expand All @@ -44,7 +45,7 @@ program getsfcnstensupdp
integer(i_kind), parameter :: idrt=4

! Declare externals
external :: w3tagb, splat, int2_msk_glb_prep, int22_msk_glb, dtzm_2d, w3tage
external :: w3tagb, int2_msk_glb_prep, int22_msk_glb, dtzm_2d, w3tage

character(len=80) :: fname_dtfanl,fname_nstges,fname_sfcgcy,fname_nstanl,fname_sfcanl
character(len=3) :: charnanal
Expand Down
2 changes: 1 addition & 1 deletion src/EnKF/gfs/src/getsigensmeanp_smooth.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ target_link_libraries(getsigensmeanp_smooth.x PRIVATE MPI::MPI_Fortran)
target_link_libraries(getsigensmeanp_smooth.x PRIVATE bacio::bacio_4)
target_link_libraries(getsigensmeanp_smooth.x PRIVATE w3emc::w3emc_d)
target_link_libraries(getsigensmeanp_smooth.x PRIVATE nemsio::nemsio)
target_link_libraries(getsigensmeanp_smooth.x PRIVATE sp::sp_4)
target_link_libraries(getsigensmeanp_smooth.x PRIVATE ip::ip_4)
target_link_libraries(getsigensmeanp_smooth.x PRIVATE sigio::sigio)
target_link_libraries(getsigensmeanp_smooth.x PRIVATE ncio::ncio)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ program getsigensmeanp_smooth
!$$$

use netcdf
use sp_mod, only: sptezv, sptez, splat
use sigio_module, only: sigio_head,sigio_data,sigio_srohdc, &
sigio_swohdc,sigio_aldata,sigio_axdata
use nemsio_module, only: nemsio_init,nemsio_open,nemsio_close
Expand Down
2 changes: 1 addition & 1 deletion src/EnKF/gfs/src/getsigensstatp.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ target_link_libraries(getsigensstatp.x PRIVATE MPI::MPI_Fortran)
target_link_libraries(getsigensstatp.x PRIVATE bacio::bacio_4)
target_link_libraries(getsigensstatp.x PRIVATE w3emc::w3emc_d)
target_link_libraries(getsigensstatp.x PRIVATE nemsio::nemsio)
target_link_libraries(getsigensstatp.x PRIVATE sp::sp_4)
target_link_libraries(getsigensstatp.x PRIVATE ip::ip_4)
target_link_libraries(getsigensstatp.x PRIVATE sigio::sigio)
target_link_libraries(getsigensstatp.x PRIVATE ncio::ncio)

Expand Down
9 changes: 5 additions & 4 deletions src/EnKF/gfs/src/getsigensstatp.fd/getsigensstatp.f90
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ program getsigensstatp
!
! program history log:
! 2014-08-23 Initial version.
! 2018-07-21 Add hydrometeor (optional)
! 2018-07-21 Add hydrometeor (optional)
!
! usage:
! input files:
Expand All @@ -29,6 +29,7 @@ program getsigensstatp

use netcdf
use mpi
use sp_mod, only: sptezv, sptez, splat
use sigio_module, only: sigio_head,sigio_data,sigio_srohdc, &
sigio_axdata,sigio_sclose
use nemsio_module, only: nemsio_init,nemsio_open,nemsio_close, &
Expand All @@ -46,7 +47,7 @@ program getsigensstatp
integer,parameter :: iunit=21
integer,parameter :: idrt=4
! Declare externals
external :: w3tagb, splat, sptez, sptezv, w3tage
external :: w3tagb, w3tage
character(nemsio_charkind8) :: dtype
character(len=3) :: charnanal
character(len=500) :: filenamein,datapath,filepref
Expand Down Expand Up @@ -276,7 +277,7 @@ program getsigensstatp
call nemsio_readrecv(gfile,'spfh', 'mid layer',k,rwork_mem(:,krecq), iret=iret)
call nemsio_readrecv(gfile,'o3mr', 'mid layer',k,rwork_mem(:,krecoz), iret=iret)
call nemsio_readrecv(gfile,'clwmr','mid layer',k,rwork_mem(:,kreccwmr),iret=iret)
! if ( do_icmr ) call nemsio_readrecv(gfile,'icmr', 'mid layer',k,rwork_mem(:,krecicmr),iret=iret)
! if ( do_icmr ) call nemsio_readrecv(gfile,'icmr', 'mid layer',k,rwork_mem(:,krecicmr),iret=iret)
if ( do_hydro ) then
call nemsio_readrecv(gfile,'icmr', 'mid layer',k,rwork_mem(:,krecicmr), iret=iret)
call nemsio_readrecv(gfile,'rwmr', 'mid layer',k,rwork_mem(:,krecrwmr), iret=iret)
Expand All @@ -288,7 +289,7 @@ program getsigensstatp
call nemsio_close(gfile,iret=iret)

elseif ( ncio ) then
call read_vardata(dset,'pressfc',values_2d)
call read_vardata(dset,'pressfc',values_2d)
rwork_mem(:,1) = reshape(values_2d,(/npts/))
deallocate(values_2d)
call read_vardata(dset,'ugrd',values_3d)
Expand Down
2 changes: 1 addition & 1 deletion src/EnKF/gfs/src/preproc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ list(APPEND _targets
enspreproc.x)

foreach(_tgt ${_targets})
target_link_libraries(${_tgt} PRIVATE sp::sp_4)
target_link_libraries(${_tgt} PRIVATE ip::ip_4)
target_link_libraries(${_tgt} PRIVATE sigio::sigio)
if(OpenMP_Fortran_FOUND)
target_link_libraries(${_tgt} PRIVATE OpenMP::OpenMP_Fortran)
Expand Down
2 changes: 1 addition & 1 deletion src/NMC_Bkerror/sorc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ target_link_libraries(calcstats.x PRIVATE MPI::MPI_Fortran)
target_link_libraries(calcstats.x PRIVATE ${LAPACK_LIBRARIES})
target_link_libraries(calcstats.x PRIVATE bacio::bacio_4)
target_link_libraries(calcstats.x PRIVATE w3emc::w3emc_d)
target_link_libraries(calcstats.x PRIVATE sp::sp_4)
target_link_libraries(calcstats.x PRIVATE ip::ip_4)
target_link_libraries(calcstats.x PRIVATE sigio::sigio)
target_link_libraries(calcstats.x PRIVATE nemsio::nemsio)
target_link_libraries(calcstats.x PRIVATE ncio::ncio)
Expand Down
5 changes: 3 additions & 2 deletions src/NMC_Bkerror/sorc/horizsc.f90
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
subroutine horizsc(numcases,mype)
use kinds, only: r_kind,i_kind
use sp_mod, only: splaplac, splat
use postmod, only: smoothlat
use variables,only: nlat,nlon,nsig,lat1,lon1,zero,&
displs_g,ijn,db_prec,filunit1,filunit2,npe,&
Expand Down Expand Up @@ -143,7 +144,7 @@ subroutine horizsc(numcases,mype)
do i=1,lat1
ps3(i,j) = ps3(i,j) + ps1(i,j)*ps1(i,j)*r_norm
end do
end do
end do
end do ! end do over numcases
close(filunit1)
close(filunit2)
Expand Down Expand Up @@ -305,5 +306,5 @@ subroutine horizsc(numcases,mype)
call mpi_bcast(chln,nlat*nsig,mpi_rtype,mype_work,mpi_comm_world,ierror)
call mpi_bcast(pshln,nlat,mpi_rtype,mype_work,mpi_comm_world,ierror)

return
return
end subroutine horizsc
Loading
Loading