Skip to content

[WRF-SFIRE] [package list]

WRF-SFIRE/W4.4-S0.1-cpeGNU-24.03 (WRF-SFIRE-W4.4-S0.1-cpeGNU-24.03.eb)

Install with the EasyBuild-user module:

eb WRF-SFIRE-W4.4-S0.1-cpeGNU-24.03.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider WRF-SFIRE/W4.4-S0.1-cpeGNU-24.03.

EasyConfig:

# Created by Orian Louant for the LUMI consortium
# Updated for WRF-SFIRE by Maciej Szpindler and Bert Jorissen

easyblock = 'CmdCp'

local_JasPer_version =       '4.0.0'         # https://github.com/jasper-software/jasper/releases
local_libpng_version =       '1.6.40'        # http://www.libpng.org/pub/png/libpng.html
local_libtirpc_version =     '1.3.4'         # https://sourceforge.net/projects/libtirpc/files/libtirpc/
local_Perl_version =         '5.38.0'        # https://www.perl.org/get.html
local_zlib_version =         '1.3.1'         # https://zlib.net/

name          = 'WRF-SFIRE'
version       = 'W4.4-S0.1'

local_configuration  = [
#    ('WRF_EM_CORE',                  '0'),
#    ('WRF_CHEM',                     '0'),
#    ('WRF_KPP',                      '0'),
#    ('WRFIO_NCD_LARGE_FILE_SUPPORT', '0'),
    ('NETCDF',                       '${NETCDF_DIR}'),
    ('FLEX_LIB_DIR',                 '$EBROOTFLEX/lib'),
    ('YACC_PATH',                    '$EBROOTBYACC/bin'),
    ('HDF5',                         '$CRAY_HDF5_PARALLEL_PREFIX'),
    ('PHDF5',                        '$CRAY_HDF5_PARALLEL_PREFIX'),
    ('RPC_INCLUDES',                 '$EBROOTLIBTIRPC'),
    ('JASPERLIB',                    '$EBROOTJASPER/lib'),
    ('JASPERINC',                    '$EBROOTJASPER/include'),
]

local_compile_targets = [
     'em_real'
]

homepage = 'https://wiki.openwfm.org/'

whatis = [
    'Description: A coupled weather-fire forecasting model built on top of Weather Research and Forecasting (WRF).'
]

description = """
WRF-Chem is the Weather Research and Forecasting (WRF) model coupled with
Chemistry. The model simulates the emission, transport, mixing, and chemical
transformation of trace gases and aerosols simultaneously with the meteorology.
The model is used for investigation of regional-scale air quality, field program
analysis, and cloud-scale interactions between clouds and chemistry.
"""

toolchain = {'name': 'cpeGNU', 'version': '24.03'}

#https://github.com/openwfm/WRF-SFIRE/archive/refs/tags/W4.4-S0.1.tar.gz
#W4.4-S0.1
#source_urls = ['https://github.com/openwfm/WRF-SFIRE/archive']
sources = [{
    'filename': '%(version)s.tar.gz',
    'git_config': {
        'url': 'https://github.com/openwfm',
        'repo_name': 'WRF-SFIRE',
        'tag': '%(version)s',
        'recursive': True,
        'keep_git_dir': True,
    }
}]

patches = [
    'configure.patch',
    'grib2.patch', # Update to work with JasPer 4.0.0 and force GRIB2
    'mpi_dtype.patch', # MPICH MPI_DTPYE fix for LUMI
    'vectorization.patch', #optimizations by Veselin
]

builddependencies = [
    ('buildtools', '%(toolchain_version)s', '', True),
    ('Perl',       local_Perl_version),
]

dependencies = [
    ('cray-hdf5-parallel',       EXTERNAL_MODULE),
    ('cray-netcdf-hdf5parallel', EXTERNAL_MODULE),
    ('JasPer',                   local_JasPer_version),
    ('libtirpc',                 local_libtirpc_version),
    ('libpng',                   local_libpng_version),
    ('zlib',                     local_zlib_version)
]

unpack_options    = '--strip-components=1'
buildininstalldir = True

local_configure_cmds = """./configure <<'EOF'
35
1
EOF
sed -i s/gcc/cc/ configure.wrf && \
sed -i s/mpicc/cc/ configure.wrf && \
sed -i s/gfortran/ftn/ configure.wrf && \
sed -i s/mpif90/ftn/ configure.wrf && \
sed -i '/^LDFLAGS_LOCAL/s/$/ -lpng/' configure.wrf"""
#sed -i s//-fallow-argument-mismatch -fallow-invalid-boz/ configure.wrf"""
#sed -i 's/-ll //' chem/KPP/kpp/kpp-2.1/src/Makefile && \
#sed -i 's/#  YACC=/YACC=${YACC_PATH}\//' chem/KPP/configure_kpp"""

local_preconfigure_cmds = ' && '.join(['export ' + x[0] + '=' + x[1] for x in local_configuration])
local_build_cmds        = ' && '.join(['./compile -j 1 %s' % x for x in local_compile_targets]) # max 1 parallel jobs

cmds_map = [
    ('%(version)s.tar.gz',
     ' && '.join([
        local_preconfigure_cmds,
        local_configure_cmds,
        local_build_cmds
    ])),
]

files_to_copy = None

sanity_check_paths = {
    'files': ['main/%s' % x for x in ['wrf.exe', 'ndown.exe', 'tc.exe', 'real.exe', 'libwrflib.a']],
    'dirs':  ['main', 'run']
}

modextrapaths = {
    'PATH'            : 'main',
    'LD_LIBRARY_PATH' : 'main',
}

moduleclass = 'geo'

[WRF-SFIRE] [package list]