SPMODEL: Hierarchical Spectral Models for Geophysical Fluid Dynamics

SPMODEL project is now developing various hierarchical spectral models for geophysical fluid dynamics which can be easily used for research and education.


We are now developping a new version SPMODEL library (spml) ver.2.0 using ISPACK ver.3.

  • When you install spml ver. 0.8.0, please use ISPACK ver.1. You can additionally use ISPACK ver.2.
  • When you would like to use ISPACK ver.3, spml ver.2.0 is necessary.
    • Since it is still under development, the documentation and module lineup is not complete. Even when you want to use ispack3, you can get its source by git clone it via HTTP as follows.

      $ git clone http://dennou-k.gfd-dennou.org/library/spmodel/git_repos/spml.git
      $ cd spml
      $ git submodule update --init
      $ git checkout origin/spml/2.0
      $ ./autogen.sh
      $ ./configure ...
      $ make ; make check ; make install
    • The new configure option, "--with-gt5config= ...", is convenient to setup for netcdf and gtool5 library.
    • The interface of functions and subroutines of spml ver.2.0 is (almost) the same as that of spml ver.0.8.0, so that you need not to change your program so much.
    • Note that in the modules such as spherical harmonic transforms, w_*, wa_*, etc, different methods for normalizing and storing spectral components are adapted. Please refer to the ISPACK manual for details.


New version (0.8.0) of SPMODEL library (spml) was released. Modified points and newly implemented functions are as follows:

  • Add GNU Fortran (>= 4.7) support
    • all library/modules were modified to complie/execute with GNU Fortran Compiler, (maybe) keep backward compatibility.
  • configure update:
    • Use libtool instead of classical configure & make procedure
    • Please see INSTALL in detail
  • Newly implemented modules/functions
    • Modules of sphere and spherical shell using SJPACK, MPI parallelization
      • w_mpi_module_sjpack, wa_mpi_module_sjpack, wq_mpi_module_sjpack, wt_mpi_module_sjpack, wtq_mpi_module_sjpack
  • misc. Update/Bug fixed
    • wtq_module_sjpack: Chebyshev-Tau method improved.
    • w{q,t,tq}_module_mpi: QOperator MPI version implemented.
    • w_module{,_sjpack}: w_StreamPotential2Vector, w_Vector2VorDiv, w_VectorCosLat2VorDiv implemented.
    • wa_module{,_sjpack}: wa_StreamPotential2Vector, wa_Vector2VorDiv, wa_VectorCosLat2VorDiv implemented.
    • w_mpi_module{,_sjpack}: w_StreamPotential2VectorMPI, w_Vector2VorDivMPI, w_VectorCosLat2VorDivMPI implemented.
    • wa_mpi_module{,_sjpack}: wa_StreamPotential2VectorMPI, wa_Vector2VorDivMPI, wa_VectorCosLat2VorDivMPI implemented.
    • {mpi,}spmfrt, {mpi,}spmconfig: update
    • wt_module{,_sjpack}: Interpolate_wt function bug fixed.
    • wq_module{,_sjpack}: AvrRad_r function bug fixed.
    • esc_module: argument/variable types fixed.

The goal of SPMODEL

SPMODEL project is developing a series of numerical models based on various systems of approximate equations, that appear in the geophysical fluid dynamics. The model series is arranged hierarchically from simple spartial one-dimensinal models to complex two or three dimensional models.

The aims of the series of numerical models are as follows:

  • Easy reproduction of illustrations of standard or important GFD problems in order to make use of understandings and teaching of geophysical fluid dynamics.
  • Sharing knowledge obtained by numerical experiments with ease: from the era of unserstanding with conventional mathematical equations to the era of understanding through the results of numerical calculations.
  • Smooth comparison bwtween the numerical results of the series of the models: it is helpful in understanding of the results of more complex models.

For such purposes, readability and understandability of the source codes to permit easy re-building and/or modification are given priority in designing the program source codes. This policy might sacrifice calculation speed of the programs, however, we anticipate that on the basis of this model series, advanced models, which can perform leading-edge massive calculations for exapmle, could be developed easily.

The programs of the series of the models use "SPMODEL library (spml)", which provides basic functions for numerical fluid dynamics calculations with the spectral methods, such as conversion between grid and spectral data and spartial derivatives. By using the array-valued functions of SPMODEL library under favor of the array operation features of Fortran90, the main part of each program source code is written in a similar form to the original mathematical expressions, which contributes to readability and understandability of the program source codes. Moreover, with the help of the introduction of systematic function naming rules of the array-valued functions of SPMODEL library, we can use these functions routinely, and the program source codes can be modified easyly and safely.

The SPMODEL library and the sample programs serve as one of the experiments for Fortran90 programing style. We are pleased if we colud offer them as references for programing style of several numerical calculations not only in geophysical fluid dynamics but also in other several fields of physics.