Giter Site home page Giter Site logo

leo-rain / nhwave_swan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sbanihashemi/nhwave_swan

0.0 1.0 0.0 1.63 MB

This is a coupled wave-current model. Coupling non hydrostatic circulation model NHWAVE with the wave model SWAN. As of 01/10/18 I have been able to make the src. Keep in mind for the vpkg_openmpi in mills use the openmpi/1.4.4-intel64 so that you don't get errors regarding the line lengths. Also the nspcg.f has to be there but if you make clean it will get removed and you'll have to add again! Have to fix that

License: GNU General Public License v3.0

Makefile 0.40% M 0.12% MATLAB 2.74% Fortran 96.48% Assembly 0.26%

nhwave_swan's Introduction

NHWAVE_SWAN

This is a coupled wave-current model. Coupling non hydrostatic circulation model NHWAVE with the wave model SWAN.

Changes to the build environment

On 2019-01-03, the Makefile for this project was restructured. Compiler-specific items were shifted to external files that can be found in the Makefile.d directory:

$ ls -1 Makefile.d
gfortran.inc
ifort.inc

The Makefile itself includes a specific compiler-specific file after setting initial values for some of the variables in the build environment. The person building the program need only alter which compiler-specific file is included to adapt to different compilers (or systems).

Care has also been taken to augment (not overwrite) standard build variables like CPPFLAGS and LDFLAGS. This allows environment configuration software (like modules or VALET) to setup those variables and influence the build process as expected. Even lacking that, the user is free to set CPPFLAGS and LDFLAGS by hand to exercise the same level of control over the build.

Less-verbose build output

The build has been made quieter by default, not displaying the commands being issued by make:

$ make
[CPP ] sw_swmod1.fsw => sw_swmod1.f
[FC  ] sw_swmod1.f
[CPP ] sw_swmod2.fsw => sw_swmod2.f
[FC  ] sw_swmod2.f
[CPP ] sw_m_fileio.fsw90 => sw_m_fileio.f90
[FC  ] sw_m_fileio.f90
  :

To revert to displaying the commands being issued, set the VERBOSE variable when issuing the make command:

$ make VERBOSE=1
mpif90 nspcg/nspcg.f -c -o nspcg.o -O3 -mcmodel=medium -mtune=generic  -I/opt/shared/openmpi/1.6.5-intel2013-sp1/include -I/lustre/work/kirby/sw/hypre/2.9.0b-intel/include
   :

Debug builds

The previous structure of the Makefile required coordination in the setting of the OPT and DEBFLGS variables. Enabling debugging required the OPT flags to be empty and the DEBFLGS set, and vice versa for optimized builds. The updated structure uses the DEBUG_ENABLE variable set at the top of the Makefile to set OPT to optimization versus debugging flags, and only OPT is passed to the compiler.

If DEBUG_ENABLE is unset or an empty string, an optimized build is performed; if DEBUG_ENABLE is set to any non-empty value, a debugging build is performed. A debug build can also be requested from the command line itself:

$ make VERBOSE=1 DEBUG_ENABLE=1
cpp -I/opt/shared/openmpi/1.6.5-intel2013-sp1/include -I/lustre/work/kirby/sw/hypre/2.9.0b-intel/include -P -C -traditional  -DDOUBLE_PRECISION -DPARALLEL -DVFMC -DINTEL sw_swmod1.fsw > sw_swmod1.f
mpif90  sw_swmod1.f -c -check all -g -O0  -I/opt/shared/openmpi/1.6.5-intel2013-sp1/include -I/lustre/work/kirby/sw/hypre/2.9.0b-intel/include
cpp -I/opt/shared/openmpi/1.6.5-intel2013-sp1/include -I/lustre/work/kirby/sw/hypre/2.9.0b-intel/include -P -C -traditional  -DDOUBLE_PRECISION -DPARALLEL -DVFMC -DINTEL sw_swmod2.fsw > sw_swmod2.f
mpif90  sw_swmod2.f -c -check all -g -O0  -I/opt/shared/openmpi/1.6.5-intel2013-sp1/include -I/lustre/work/kirby/sw/hypre/2.9.0b-intel/include
  :

nhwave_swan's People

Contributors

sbanihashemi avatar jtfrey avatar

Watchers

James Cloos 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.