The University of Rhode Island Hurricane Boundary Layer Model (URI-HBL) is a three-dimensional wind model designed to simulate the wind in the boundary layer in response to a prescribed upper vortex in the gradient balance and motion force. The secondary circulation in the HBL model (radial and vertical wind) is generated by surface friction. The HBL model was applied to study both the idealized and real-case storms, and its surface wind field was validated against observations for Hurricane Irma (2017) and Hurricane Florence (2018). The governing equations for the mean wind in the Cartesian coordinates are given as follows:
Where
where
Mixing length
where
The HBL model has been successfully installed on the High Performance Computing System of the Renaissance Computing Institute (RENCI). To compile the code, you will need to load the following modules:
- Intel Threading Building Blocks (TBB) - Version 2021.5.1
- Compiler Runtime (compiler-rt) - Version 2022.0.2
- Environment for Intel C++ Compiler (env_icc) - Any version
- OpenCL FPGA (oclfpga) - Version 2022.0.2
- Intel Compiler (compiler) - Version 2022.0.2
- MPI Library (mpi) - Version 2021.5.1
- Intel C++ Compiler (icc) - Version 2022.0.2
- Hierarchical Data Format 5 (HDF5) - Version 1.12.1-intel
- Network Common Data Form C (netcdf-c) - Version 4.8.1-intel
- Network Common Data Form Fortran (netcdf-fortran) - Version 4.5.4-intel
- MVAPICH2 - Version 2.3.7-intel
- NetCDF Operators (nco) - Version 5.0.7-intel
To compile the HBL model on the URI Andromeda Cluster, ensure the following modules are loaded:
- GCCcore/8.3.0
- zlib/.1.2.11-GCCcore-8.3.0
- binutils/.2.32-GCCcore-8.3.0
- iccifort/2019.5.281
- impi/2018.5.288-iccifort-2019.5.281
- iimpi/2019b
- imkl/2019.5.281-iimpi-2019b
- intel/2019b
- Szip/.2.1.1-GCCcore-8.3.0
- HDF5/1.10.5-iimpi-2019b
- cURL/.7.66.0-GCCcore-8.3.0
- netCDF/4.7.1-iimpi-2019b
- netCDF-C++4/4.3.1-iimpi-2019b
- netCDF-Fortran/4.5.2-iimpi-2019b
- libevent/2.1.11-GCCcore-8.3.0
- MVAPICH2/2.3.3-intel-2019b
Load these modules before attempting to compile and run the HBL model to ensure compatibility and optimal performance.
work directory: boundary_parametric/MICHAEL/exps/1KM
To generate the boundary condition in the HBL model, we first create a gradient wind using a parametric wind model. The parametric wind source code is located within the boundary_home/source/parametric directory. An example of how to compile and run the parametric code is given below:
-
go to
boundary_parametric/MICHAEL/exps/1KM/GRIDS
-
open grid_mod.F90
-
The number of grids in X and Y directions are assigned in the nx and ny parameters. Whichever the number of grid points we plan to use, the nx and ny needs to be 1 point less than that (this is related to the distribution to MPI ranks). For this example, we will be using 1802 x 1802 grid points. So we defined nx and ny as 1801.
-
The resolution of the model is defined by setting stepx and stepy. For this exercise, we used 1km resolution. So, set stepx and stepy to 1000.
- The model output intervals are set in the
time_mod.F90
file, which is located in the same directory as the grid_mod.F90 - We will be running the forecast for 60 hours. so
nrecs
is set as 60 delt
represents how often we want to save the outputs. In this exercise, we will usedelt = 3600
. So we will be saving output every 1-hour interval
- The HBL model requires the input hurricane vortex parameters for the gradient wind.
- The gradient wind parameters for Hurricane Michael are given in the track_file_michael file in the /INPUT directory.
- The
input.nml
file includes the namelist parameters for the parametric code. - We define the land roughness (land_rough_name) and land cover (topog_name) file in the input.nml.
- In addition, the simulation start time needs to be defined.
-
After defining all the input parameters, we first compile the code using
./build_parametric.bash
and run the model by submitting./run_parametric.bash
scripts. Please note that these scripts must be adjusted based on your system configuration. -
After a successful run, we should see the output file in the
/OUTPUT
directory. The file name should beboundary_parametric.nc
as defined in the input.nml namelist file.
work directory: boundary_model/MICHAEL/1KM
-
First step in running the model is to copy the gradient wind file from the
boundary_parametric/MICHAEL/exps/1KM/OUTPUT
directory to theboundary_model/MICHAEL/1KM/INPUT/
directory. -
The second step is to modify the
time_mod.F90
andgrid_mod.F90
files in the GRIDS directory and define the MPI ranksnpx
andnpy
in the X and Y directions. -
We also need to adjust the parameters, i.e., define the name of the input file
param_file
and the initial condition file name in themodel_file
section in theinput.nml
. The initial condition file generation will be discussed in a later release of the code. -
The output parameters are defined in the diag_table file.
ubot
andvbot
are the surface wind components,um
,vm
andwm
are three dimensional wind fields.znot
is the land roughness -
Once we define all the necessary inputs, we compile the code using
./build_model.bash
and run the job using./run_model.bash
script -
During the runtime, each MPI ranks will generate simulation output in NetCDF format in the
/OUTPUT
directory. We combine these outputs at the end of simulation using a program calledmppcombine
. The script that does it is named./run_combine.bash