/scale

Scalable Computing for Advanced Library and Environment

Primary LanguageFortranBSD 2-Clause "Simplified" LicenseBSD-2-Clause

SCALE
=========

SCALE (Scalable Computing for Advanced Library and Environment), which stands for Scalable Computing for Advanced Library and Environment, is a basic library for weather and climate model of the earth and planets aimed to be widely used in various models.
The SCALE library is developed with co-design by researchers of computational science and computer science.
(http://scale.aics.riken.jp/)


Contributing
------------
SCALE is developed by Team SCALE.

License
-------
- License: The BSD 2-Clause License

Build
-----
- set SCALE_SYS environmental variable (see the sysdef directory)
 % export SCALE_SYS=Linux64-gnu-ompi (example)

- set NetCDF library environmental variables
 % export SCALE_NETCDF_INCLUDE="-I/ap/netcdf4-fortran/4.4.2/include"
 % export SCALE_NETCDF_LIBS="-L/ap/netcdf4-fortran/4.4.2/lib -L/ap/HDF5/1.8.16/lib -L/ap/netcdf4/4.3.3.1/lib -lnetcdff -lnetcdf"

- build the execution binary files in the directory of the test cases of scale-rm
 e.g.,
 % cd rootdir/scale-rm/src/
 % make

- generate the initial files and run the integration
 e.g.,
 % cd rootdir/scale-rm/test/tutorial/ideal
 % ln -s ../../../../bin/scale-rm_init ./
 % mpirun -n 2 ./scale-rm_init init_R20kmDX500m.conf
 % ln -s ../../../../bin/scale-rm      ./
 % mpirun -n 2 ./scale-rm run_R20kmDX500m.conf


Available Option List
-----
- Switches
You can enable options below by setting as environment variables, for example,
 % export OPTION_NAME=T
Switch options will be activated only when the value is "T"

* SCALE_DISABLE_MPI     : Disable to use MPI library (only for util tools)
* SCALE_DEBUG           : Activate debug option
* SCALE_QUICKDEBUG      : Activate quick debug option (fast optimization option + fp trap)
* SCALE_USE_SINGLEFP    : Use single floating-point precision
* SCALE_USE_FIXEDINDEX  : Use fixed size for spatial grid dimension
* SCALE_ENABLE_OPENMP   : Enable to use OpenMP
* SCALE_ENABLE_OPENACC  : Enable to use OpenACC
* SCALE_USE_AGRESSIVEOPT: Use agressive options of optimization for K/FX
* SCALE_DISABLE_INTELVEC: Disable to use vectorization for intel compiler
* SCALE_ENABLE_PNETCDF  : Enable to use parallel NetCDF
* SCALE_COMPAT_NETCDF3  : Keep compatibility with NetCDF3
* SCALE_ENABLE_MATHLIB  : Enable to use MATH library
* SCALE_ENABLE_PAPI     : Enable to use PAPI library
* SCALE_DISABLE_LOCALBIN: Supress to make executables in local directory
* SCALE_IGNORE_SRCDEP   : Ignore source dependency at the compilation
* SCALE_ENABLE_SDM      : Enable to use Super Droplet Model

If you want to use SCALE_USE_FIXEDINDEX, inc_index.h is required. (see scalelib/include/inc_index.h.sample)
If you want to use SCALE_ENABLE_MATHLIB, please set SCALE_MATHLIB_LIBS for MATH library path.
If you want to use SCALE_ENABLE_PAPI, please set SCALE_PAPI_INCLUDE and SCALE_PAPI_LIBS for PAPI library path.