This is a software inventory for the ACCESS Regional Nesting Suite.
Scope
This inventory covers only the software used by the nci-gadi
site. The LFRic LAM and all LFRic-related configuration and script files are out of scope for the initial release. For example, the scripts in app/generate_weights
are LFRic-related, and therefore out of scope.
The ACCESS Regional Ancillary Suite u-dg767
is identical to the upstream Regional Auxiliary Suite as at u-bu503/trunk@289144
except for the Rose configuration. It is therefore also out of scope for the current audit.
Regional Nesting Suite u-dg768
Module directories used
Relevant module use
statements appear in the following files:
/g/data/hh5/public/modules
:app/nci_*/rose-app.conf
/g/data/access/projects/access/modules
:site/nci-gadi/suite-adds.rc
Modules used
Modules are listed by their origin.
-
/apps/Modules/modulefiles
intel-compiler/2021.5.0
intel-mkl/2019.3.199
netcdf/4.7.1
openmpi/4.0.1
,openmpi/4.0.2
python2/2.7.16
-
/g/data/hh5/public/modules
conda
(loads:conda/analysis3-24.01
)conda/analysis3-23.01
-
/g/data/access/projects/access/modules
ants/0.11.0x
(also loads:intel-compiler/2019.3.199
)drhook/1.1_ompi.4.0.2
(prerequisite:openmpi/4.0.2
)eccodes/2.8.0
fcm/2019.09.0
gcom/7.7_ompi.4.0.2
(prerequisite:openmpi/4.0.2
)pythonlib/mule
(loads:pythonlib/mule/2022.05.1
, also loads:python2/2.7.17
)
Explicit PATH
used
In site/nci-gadi/suite-adds.rc
:
/g/data/du7/chs548/rmed/utils/moose-client-wrapper
Python scripting
Python scripts are listed by their origin within the u-dg768
file hierarchy.
-
Jinja2Filters
date_list.py
get_matches.py
get_parent.py
get_variable.py
vert_levs.py
-
lib
python/vertical_levels.py
-
meta
lib/python/macros/nesting_suite.py
-
app
(Python 2)rose_ana_atm/bin/mule_cumf.py
rose_ana_atm/bin/um_stdout.py
simim/file/simim_ff_manip.py
-
app
(Python 3)nci_era5grib/bin/nci_era5grib.py
nci_era5grib_parallel/bin/cdo_era5grib.py
nci_era5grib_parallel/bin/nci_era5grib_parallel.py
nci_hres_eccb/bin/hres_eccb.py
nci_hres_eccb/bin/replace_landsurface_with_BARRA2R_IC.py
nci_hres_eccb/bin/replace_landsurface_with_ERA5land_IC.py
nci_hres_ic/bin/hres_ic.py
nci_hres_ic/bin/replace_landsurface_with_BARRA2R_IC.py
nci_hres_ic/bin/replace_landsurface_with_ERA5land_IC.py
Python packages imported
Python 2 packages imported
Python 2 packages are listed by their origin.
- Built-in
imp
sys
/apps/python2/2.7.16/lib/python2.7
argparse
copy
os
re
subprocess
/apps/python2/2.7.16/lib/python2.7/lib-dynload
datetime
math
time
/apps/python2/2.7.16/lib/python2.7/site-packages
pytz
/g/data/hr22/apps/cylc7/cylc_7.9.9/lib
jinja2.filters
/g/data/hr22/apps/cylc7/rose_2019.01.8/lib/python/rose
rose.macro
/g/data/access/projects/access/apps/pythonlib/mule/2022.05.1
mule
um_utils.cumf
um_utils.trim
lib
vertical_levels
Python 3 packages imported
Python 3 packages are listed by their origin.
-
Built-in
sys
time
-
/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.10/lib/python3.10
argparse
datetime
glob
multiprocessing
os
pathlib
random
shutil
-
/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.10/lib/python3.10/site-packages
era5grib
iris
mule
numpy
pandas
xarray
-
app/nci_era5grib_parallel/bin
cdo_era5grib
-
app/nci_hres_ic/bin
replace_landsurface_with_BARRA2R_IC
replace_landsurface_with_ERA5land_IC
-
app/nci_hres_eccb/bin
replace_landsurface_with_BARRA2R_IC
(duplicate)replace_landsurface_with_ERA5land_IC
(duplicate)
Programs called
Built-in rose
commands
fcm_make
,rose_arch
,rose_bunch
,rose_prune
The usual Gnu/POSIX utilities
cut
,find
,gunzip
,head
,ln
,mkdir
,mv
,rev
,sort
,tar
,xarg
, etc.
Programs defined but not called
Python scripts defined as programs
bin/setup_metadata
Programs called by Cylc task Bash scripts
Python scripts defined as programs
bin/get_cycle_offset
bin/install_lbcdata
bin/install_startdata
Programs called via rose-app.conf
[command]
By Rose app config file.
./app/check_hall/rose-app.conf: select_hall
./app/glm_um/rose-app.conf: um-atmos
./app/nci_era5grib_parallel/rose-app.conf: nci_era5grib_parallel.py
./app/nci_era5grib/rose-app.conf: nci_era5grib.py
./app/nci_hres_eccb/rose-app.conf: hres_eccb.py
./app/nci_hres_ic/rose-app.conf: hres_ic.py
./app/niwa_netcdf/rose-app.conf: wrapper.sh
./app/poller/rose-app.conf: true
./app/rose_ana_atm/rose-app.conf: mule_cumf.py
./app/rose_ana_atm/rose-app.conf: um_stdout.py
./app/surf_ostia2nwp/rose-app.conf: SurfScr_OSTIA2NWP
./app/surf_smc/rose-app.conf: SurfScr_SoilMoistureAnalysis
./app/um_createbc/rose-app.conf: um-createbc.exe
./app/um/rose-app.conf: um-atmos
Programs called by Python 2 scripts
Programs called via os.system
- Called from
bin/install_lbcdata
/bin/tar
/g/data/du7/chs548/rmed/utils/moose-client-wrapper/moo
- (restricted read access.)
Programs called via subprocess
- Called from
bin/install_lbcdata
andbin/install_startdata
/opt/nci/bin/mdss
/g/data/du7/chs548/rmed/utils/moose-client-wrapper/moo
- (restricted read access.)
- Called from
bin/install_startdata
/bin/gunzip
Programs called by Python 3 scripts
Programs called via os.system
- Called from
app/nci_era5grib_parallel/bin/cdo_era5grib.py
/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.10/bin/cdo
- Uses
hh5
conda/analysis3-23.01
module loaded byapp/nci_era5grib_parallel/rose-app.conf
- Uses
Programs called via subprocess
None. (The subprocess.call
instances in app/generate_weights
are LFRic-related and are out of scope.)
Programs and libraries built
fcm:
source locations configured
By Rose and FCM configuration files.
app/fcm_make_createbc/rose-app.conf
config_root_path=fcm:um.xm_tr
app/fcm_make_um/rose-app.conf
is the suite Rose configuration file used to build$ROSE_SUITE_DIR/share/fcm_make_um/build-atmos/bin/um-atmos.exe
and$ROSE_SUITE_DIR/share/fcm_make_um/build-recon/bin/um-recon.exe
. It contains:COUPLER=none
DR_HOOK=false
eccodes=true
gwd_ussp_precision=double
land_surface_model=jules
ls_precipitation_precision=double
mpp_version=1C
netcdf=true
openmp=true
platagnostic=false
portio_version=2A
stash_version=1A
thread_utils=false
timer_version=3A
config_revision=
config_root_path=fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile
config_type=atmos
casim_rev=um13.0
casim_sources=fcm:casim.xm/branches/dev/paulfield/um13.0_um13_casim_vn1.0_aggcfl@9955
jules_rev=um13.0
jules_sources=
shumlib_sources=
shumlib_rev=um13.0
socrates_sources=
socrates_rev=um13.0
ukca_rev=um13.0
ukca_sources=
um_rev=vn13.0
um_sources
= fcm:um.xm/branches/dev/paulfield/vn13.0_casim_prec_frac@112741
= fcm:um.xm/branches/dev/adrianlock/vn13.0_CoMA_cloud_inhom_regime@112431
= fcm:um.xm/branches/dev/adrianlock/vn13.0_comorph_radius_q_dep@111985
app/fcm_make_um/file/fcm-make.cfg
is the suite FCM configuration file used to buildum-atmos.exe
andum-recon.exe
. It contains:include = $config_root_path/fcm-make/$platform_config_dir/um-$config_type-$optimisation_level.cfg$config_revision
- resolving to:
fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/nci-x86-ifort/um-atmos-safe.cfg
which contains:include = um-atmos-common.cfg
- resolving to:
fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/um-atmos-common.cfg
. This is the main FCM config file used to buildum-atmos.exe
andum-recon.exe
. It contains::$casim_project_location{?} = fcm:casim.xm
$casim_base{?} = trunk
$casim_rev{?} = head
$jules_project_location{?} = fcm:jules.xm
$jules_base{?} = trunk
$jules_rev{?} = head
$shumlib_project_location{?} = fcm:shumlib.xm
$shumlib_base{?} = trunk
$shumlib_rev{?} = head
$socrates_project_location{?} = fcm:socrates.xm
$socrates_base{?} = trunk
$socrates_rev{?} = head
$ukca_project_location{?} = fcm:ukca.xm
$ukca_base{?} = trunk
$ukca_rev{?} = head
$um_project_location{?} = fcm:um.xm
$um_base{?} = trunk
$um_rev{?} = head
extract.location{primary}[casim] = $casim_project_location
extract.location[casim] = $casim_base@$casim_rev
extract.location{primary}[jules] = $jules_project_location
extract.location[jules] = $jules_base@$jules_rev
extract.location{primary}[shumlib] = $shumlib_project_location
extract.location[shumlib] = $shumlib_base@$shumlib_rev
extract.location{primary}[socrates] = $socrates_project_location
extract.location[socrates] = $socrates_base@$socrates_rev
extract.location{primary}[ukca] = $ukca_project_location
extract.location[ukca] = $ukca_base@$ukca_rev
extract.location{primary}[um] = $um_project_location
extract.location[um] = $um_base@$um_rev
\- resolving to:
extract.location{primary}[casim] = fcm:casim.xm
extract.location[casim] = trunk@um13.0
extract.location{primary}[jules] = fcm:jules.xm
extract.location[jules] = trunk@um13.0
extract.location{primary}[shumlib] = fcm:shumlib.xm
extract.location[shumlib] = trunk@um13.0
extract.location{primary}[socrates] = fcm:socrates.xm
extract.location[socrates] = trunk@um13.0
extract.location{primary}[ukca] = fcm:ukca.xm
extract.location[ukca] = trunk@um13.0
extract.location{primary}[um] = fcm:um.xm
extract.location[um] = trunk@um13.0
fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/um-atmos-common.cfg
also specifies that parts of each of the componentscasim
,jules
,shumlib
,socrates
, ukcaand
um` are extracted, by specifying for each component:extract.path-excl[component]
extract.path-incl[component]
fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/um-atmos-common.cfg
also contains:$ATMOS_EXEC{?} = um-atmos.exe
$RECON_EXEC{?} = um-recon.exe
$COUPLER{?} = none # Coupler name
$gwd_ussp_precision{?} = double
$land_surface_model{?} = jules # land surface model
$ls_precipitation_precision{?} = double
$mpp_version{?} = 1C # C96
$portio_version{?} = 2A # C95
$stash_version{?} = 1A # C84
$timer_version{?} = 3A # C97
$recon_mpi{?} = parallel # Parallel/serial reconfiguration
include = ${recon_mpi}.cfg
- resolving to
fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/nci-x86-ifort/inc/parallel.cfg
which contains:$ccflags_omp_on{?} = -qopenmp
$fcflags_omp_on{?} = -qopenmp
$ldflags_drhook_on{?} = -ldrhook -qopenmp
$ldflags_eccodes_on{?} = -leccodes_f90 -leccodes
$ldflags_netcdf_on{?} = -lnetcdff -lnetcdf
$ldflags_omp_on{?} = -qopenmp
$ldgcom_omp{?} = -qopenmp
include = options/common.cfg
- resolving to
fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/common.cfg
which contains:$COUPLER{?} = none # Coupler name
$DR_HOOK{?} = false # Dr Hook library
$eccodes{?} = false # ECCodes GRIB support
$gwd_ussp_precision{?} = double
$land_surface_model{?} = jules # land surface model
$ls_precipitation_precision{?} = double
$mkl{?} = false # Intel Math Kernel Library
$mpp_version{?} = 1C # C96
$netcdf{?} = false # NetCDF support
$openmp{?} = false # OpenMP
$platagnostic{?} = false # Platform agnostic builds
$portio_version{?} = 2A # C95
$recon_mpi{?} = parallel # Parallel/serial reconfiguration
$stash_version{?} = 1A # C84
$thread_utils{?} = false # Thread Utils Module (from SHUMlib)
$timer_version{?} = 3A # C97
include = $HERE/coupler/${COUPLER}.cfg
include = $HERE/drhook/${DR_HOOK}.cfg
include = $HERE/eccodes/${eccodes}.cfg
include = $HERE/ussp/${gwd_ussp_precision}.cfg
include = $HERE/land_surface/${land_surface_model}.cfg
include = $HERE/ls_precip/${ls_precipitation_precision}.cfg
include = $HERE/mkl/${mkl}.cfg
include = $HERE/mpp/${mpp_version}.cfg
include = $HERE/netcdf/${netcdf}.cfg
include = $HERE/openmp/${openmp}.cfg
include = $HERE/platagnostic/${platagnostic}.cfg
include = $HERE/portio/${portio_version}.cfg
include = $HERE/recon_mpi/${recon_mpi}.cfg
include = $HERE/stash/${stash_version}.cfg
include = $HERE/thread_utils/${thread_utils}.cfg
include = $HERE/timer/${timer_version}.cfg
- resolving to:
include = fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/coupler/none.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/drhook/false.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/eccodes/true.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/ussp/double.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/land_surface/jules.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/ls_precip/double.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/mkl/false.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/mpp/1C.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/netcdf/true.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/openmp/true.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/platagnostic/false.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/portio/2A.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/recon_mpi/parallel.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/stash/1A.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/thread_utils/false.cfg
include = um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/options/timer/3A.cfg
- Including these files results in setting these variables:
$cppflags_eccodes{?} = GRIB_AVAILABLE=grib_available
$cppflags_land_surface{?} = UM_JULES=um_jules
$cppflags_mpp{?} = C96_1C=c96_1c
$cppflags_netcdf{?} = NETCDF_AVAILABLE=netcdf_available
$cppflags_portio{?} = C95_2A=c95_2a
$cppflags_stash{?} = C84_1A=c84_1a
$cppflags_thread_utils{?} =
$cppflags_timer{?} = C97_3A=c97_3a
$fcflags_eccodes{?} =
$fcflags_netcdf{?} =
$fcflags_omp{?} = -qopenmp
$fppflags_platagnostic{?} =
$ldflags_eccodes{?} = -leccodes_f90 -leccodes
$ldflags_netcdf{?} = -lnetcdff -lnetcdf
$ldflags_omp{?} = -qopenmp
$nodep_options = $nodep_options eccodes netcdf
$openmp_path = openmp
fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/nci-x86-ifort/inc/parallel.cfg
also contains:$ldflags_overrides_prefix{?} =
$ldflags_overrides_suffix{?} =
$ldflags{?} = $ldflags_overrides_prefix \
\ -lgcom $ldgcom_omp $ldflags_netcdf $ldflags_eccodes \
\ $ldflags_omp $ldflags_drhook \
\ -mcmodel=medium -shared-intel \
\ $ldflags_overrides_suffix
- resulting in
$ldflags{?} = -lgcom -qopenmp -lnetcdff -lnetcdf \
\ -leccodes_f90 -leccodes \
\ -qopenmp -mcmodel=medium -shared-intel
fcm:um.xm-br/dev/simonwilson/vn13.0_archer2_compile/fcm-make/inc/um-atmos-common.cfg
also specifies the source files, compiler flags and linker flags used for each of the executablesum-atmos.exe
andum-recon.exe
. The header and Fortran module file locations are assumed to be specified viaCPATH
andFPATH
. The library locations are assumed to be specified byLIBRARY_PATH
andLD_LIBRARY_PATH
. These are set in the environment via (e.g.) environment modules.
app/fcm_make_um/file/fcm-make.cfg
also contains:extract.location{diff}[casim] = $casim_sources
extract.location{diff}[jules] = $jules_sources
extract.location{diff}[shumlib] = $shumlib_sources
extract.location{diff}[socrates] = $socrates_sources
extract.location{diff}[ukca] = $ukca_sources
extract.location{diff}[um] = $um_sources
- resolving to:
extract.location{diff}[casim] = casim.xm/branches/dev/paulfield/um13.0_um13_casim_vn1.0_aggcfl@9955
extract.location{diff}[jules] =
extract.location{diff}[shumlib] =
extract.location{diff}[socrates] =
extract.location{diff}[ukca] =
extract.location{diff}[um] =
um.xm/branches/dev/paulfield/vn13.0_casim_prec_frac@112741
um.xm/branches/dev/adrianlock/vn13.0_CoMA_cloud_inhom_regime@112431
um.xm/branches/dev/adrianlock/vn13.0_comorph_radius_q_dep@111985
- FCM uses these
diff
locations to modify the extracted files for each component.
Programs installed
Program directories installed by install_cold
Configured by app/install_cold/opt/rose-app-nci-gadi.conf
.
$ROSE_SUITE_DIR/share/fcm_make_um_utils
source=/projects/access/umdir/vn13.0/linux/utilities
- This directory does not exist, it probably should be
source=/projects/access/umdir/vn13.0/gadi/utilities
- This directory does not exist, it probably should be
$ROSE_SUITE_DIR/share/fcm_make_surf
source=/projects/access/NWP_SHARE/surf-2020.01.0/1.0.0/intel1903-ompi401
- Built from
/scratch/dp9/sjr548/cylc-run/surf-2020.01.0/work/1/fcm_make_surf_x86_64_ifort_opt_mirror
- Built from