Japanese version is here.
Boussinesq fluid primitive equation model
This is a simple model of Boussinesq fluid primitive equations with Newtonian cooling and heating for radiative process. This program is written in Fortran90. Spectral method is used for horizontal direction and central difference method for vertical, the 4th order Runge-Kutta method for time-integration.
For details of equations and numerical methods, read the appendices of my master thesis
here (in Japanese).
Dependent Libraries
Source Codes
-
BPM2D.f90
- Axisymmetric 2D version.
- BPM2D-stiff.f90
- Axisymmetric 2D stiff equation version, which is useful for a very high horizontal diffusion case.
- module_BPM2D.f90
- Module for BPM2D.f90.
- wrap_lj.f90
- Wrapper for LJPACK (included in ISPACK), which is required by BPM2D*.f90.
- BPM3D_omp.f90
- 3D version which includes OpenMP code.
- module_BPM3D_omp.f90
- Module for BPM3D_omp.f90.
- wrap_sj.f90
- Wrapper for SJPACK, which is required by BPM3D_omp.f90.
- DataConversion-sj.f90
- Program for converting spectral data to grid data for 3D version.
Usage
-
Install the dependent libraries shown above.
- Copy source codes in a directory
-
for axisymmetric 2D version, BPM2D.f90, module_BPM2D.f90, and wrap_lj.f90 are needed.
- for axisymmetric 2D stiff equation version, BPM2D-stiff.f90, module_BPM2D.f90, and wrap_lj.f90 are needed.
- for 3D version, BPM3D_omp.f90, module_BPM3D_omp.f90, and wrap_sj.f90 are needed.
- Modify module*.f90 if needed.
- Compile BPM2D*.f90 or BPM3D_omp.f90 with linking the dependent libraries.
- Run a.out
Note
If you want to publish your research using the BPmodel, please contant me.
Hiroki Kashimura (at) gfd-dennou.org