Giter VIP home page Giter VIP logo

kasra-keshavarz / mesh-dev Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mesh-model/mesh-dev

0.0 0.0 0.0 13.97 MB

This repository contains the official MESH development code, which is the basis for the 'tags' listed under the MESH-Releases repository. The same tags are listed under this repository. Legacy branches and utilities have also been ported from the former SVN (Subversion) repository. Future developments must create 'forks' from this repository.

License: Other

Shell 0.08% C++ 2.44% C 22.02% Fortran 70.25% Assembly 0.01% Pascal 0.15% Pawn 0.07% SourcePawn 0.01% Makefile 0.71% HTML 0.05% POV-Ray SDL 0.01% HolyC 3.70% NASL 0.52%

mesh-dev's Introduction

This file contains information about options in the 'makefile' included
with this distribution.

To compile SA_MESH, run 'make' with one of the following targets:
Serial (sa_mesh):
  $ make gfortran
  $ make ifort
  $ mingw32-make mingw_static
Parallel (mpi_sa_mesh; requires OpenMPI compiler):
  $ make mpi_gcc
  $ make mpi_intel

If no target is specified, 'gfortran' is assumed.
  $ make

The makefile will automatically remove *.o and *.mod files if the
compile process is successful.

Recommended for Cygwin, Ubuntu (without Intel license)
To create 'sa_mesh':
  $ make
To create 'mpi_sa_mesh':
  $ make mpi_gcc

Recommended for Linux where the Intel license is available:
To create 'sa_mesh':
  $ make ifort
To create 'mpi_sa_mesh':
  $ make mpi_intel

Description of target to compiler:
  - gfortran: GNU compiler (gcc and gfortran).
  - ifort: Intel compiler (ifort).
  - mingw_static: MinGW MS-Windows/MS-DOS GNU distribution.
  - mpi_gcc*: GNU version of OpenMPI compiler (mpifort).
  - mpi_intel*: Intel version of OpenMPI compiler (mpifort).
*'mpi_gcc' and 'mpi_intel' are not interchangeable, even though in both
cases the compiler is named 'mpifort'. The code will also check for the
compiler named 'mpif90'.

To remove remaining *.o and *.mod files:
  $ make clean
*For MinGW, DIST=mingw must also be provided.
Examples:
  - To remove *.o and *.mod files in Cygwin/Linux environment:
      $ make clean
  - To remove *.o and *.mod files in MS-Windows/MS-DOS environment:
      $ mingw32-make clean DIST=mingw

To remove remaining *.o and *.mod files, and the compiled program:
  $ make veryclean
*For MinGW, DIST=mingw must also be provided.
*For 'mpi_gcc' and 'mpi_intel', MPI=ompi must also be provided.
Examples:
  - To remove *.o and *.mod files, and 'sa_mesh' in Cygwin/Linux
    environment:
      $ make veryclean
  - To remove *.o and *.mod files, and 'mpi_sa_mesh' in Cygwin/Linux
    environment:
      $ make veryclean MPI=ompi
  - To remove *.o and *.mod files, and 'sa_mesh_static' in
    MS-Windows/MS-DOS environment:
      $ mingw32-make veryclean DIST=mingw

The following options can be added to the compiler targets to enable
or add features.
  - symbols: Disable code optimization and add debugging symbols.
  - debug: Same as 'symbols' but also enabled extra debugging options
        and traps.
  - double: Enable double precision (only impacts code where default
        precision on types is used).
  - netcdf: Enable NetCDF file support (requires the NetCDF Fortran
        library, not included with this code -- often available as a
        system package or module on managed systems).
Examples:
  - To compile 'sa_mesh' using GNU compilers with strict debug options:
      $ make debug
  - To compile 'sa_mesh' using ifort compiler with strict debug options:
      $ make ifort debug
  - To compile 'mpi_sa_mesh' using GNU compilers with NetCDF support
    (requires the NetCDF Fortran library):
      $ make mpi_gcc netcdf
  - To compile 'sa_mesh' using GNU compilers with double precision:
      $ make double
  - To compile 'mpi_sa_mesh' using the Intel compiler with NetCDF
    support (requires the NetCDF Fortran library) and double precision:
      $ make mpi_intel double

The above targets are wrappers to configure variables in the makefile.
However, these variables can also be set directly without using any
target. The direct variables can be set as follows:
    DIST: Compiler family/distribution.
      - Blank/undefined to use GNU compilers (default).
      - 'intel' to use the Intel compiler.
      - 'mingw' to use MinGW GNU-based compiler; overrides 'rm' with
        'del' for MS-Windows/MS-DOS environment when cleaning up files.
    MPI: Parallel/serial compilation.
      - Blank/undefined to compile in serial (default).
      - 'ompi' to compile using OMPI compiler.
    LSS: Land surface scheme (LSS).
      - Blank/undefined to include default versions of CLASS+SVS
        (default).
    ROUTE: Routing scheme.
      - Blank/undefined to include default versions of
        WF_ROUTE+SA_RTE+RTE (default).
    SYMBOLS: Symbols.
      - Blank/undefined to compile with 'O2' optimization (default).
      - 'yes' to add debugging symbols.
    DEBUG: Debugging flags and options.
      - Blank/undefined to compile with options determined by 'SYMBOLS'
        (default).
      - 'yes' to include debugging symbols and extra debugging traps and
        options.
    DOUBLE: Single/double precision.
      - Blank/undefined to use single precision.
      - 'yes' to use double precision (only impacts code where default
        precision on types is used).
Examples:
  - To compile 'mpi_sa_mesh' using the Intel compiler (equivalent to
    'make mpi_intel'):
      $ make DIST=intel MPI=ompi
  - To compile 'sa_mesh' using GNU compilers with debug flags/options
    (equivalent to 'make debug'):
      $ make DEBUG=yes

mesh-dev's People

Contributors

dprincz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.