Makefile.html CLAWPACK  
 Source file:   Makefile
 Directory:   /Users/rjl/clawpack_src/clawpack_master/geoclaw/examples/bouss/radial_flat
 Converted:   Sat Mar 23 2024 at 11:13:12   using clawcode2html
 This documentation file will not reflect any later changes in the source file.

 
# Makefile for Clawpack code in this directory.

# Version for Boussinesq solvers in GeoClaw, which requires PETSc and MPI
# See https://www.clawpack.org/bouss2d.html
#
# Execute this command to check that enviornment variables set properly:
#    make check
# before compiling or executing the code!
# Then do `make new` if using the Boussinesq version for the first time.

# This version only sets the local files and frequently changed
# options, and then includes the standard makefile pointed to by CLAWMAKE.
CLAWMAKE = $(CLAW)/clawutil/src/Makefile.common

# See the above file for details and a list of make options, or type
#   make .help
# at the unix prompt.


# Adjust these variables if desired:
# ----------------------------------

CLAW_PKG = geoclaw                  # Clawpack package to use

# These environment variables need to be set properly, usually in your
# shell, but they could be explicitly set here:
#PETSC_DIR=/full/path/to/petsc
#PETSC_ARCH=arch-darwin-c-opt

# The file petscMPIoptions sets parameters for MPI and the iterative solver:
# PETSC_OPTIONS must be set as an environment variable!
# e.g. in bash:
#   export PETSC_OPTIONS="-options_file $CLAW/geoclaw/examples/bouss/petscMPIoptions"

ifndef PETSC_DIR
  $(error PETSC_DIR not set)
endif

ifndef PETSC_ARCH
  $(error PETSC_ARCH not set)
endif

ifndef PETSC_OPTIONS
  PETSC_OPTIONS=MISSING
  $(error PETSC_OPTIONS must be declared as environment variable)
endif

# How many MPI processes to use:
BOUSS_MPI_PROCS ?= 6

EXE = $(PWD)/xgeoclaw
RUNEXE="${PETSC_DIR}/${PETSC_ARCH}/bin/mpiexec -n ${BOUSS_MPI_PROCS}"
SETRUN_FILE = setrun.py           # File containing function to make data
OUTDIR = _output                  # Directory for output
SETPLOT_FILE = setplot.py         # File containing function to set plots
PLOTDIR = _plots                  # Directory for plots


# Environment variable FC should be set to fortran compiler, e.g. gfortran

FC = gfortran

# Some compiler flags below are needed for PETSc
PETSC_INCLUDE = $(PETSC_DIR)/include $(PETSC_DIR)/$(PETSC_ARCH)/include         
INCLUDE += $(PETSC_INCLUDE)
PETSC_LFLAGS = $(shell PKG_CONFIG_PATH=$(PETSC_DIR)/$(PETSC_ARCH)/lib/pkgconfig pkg-config --libs-only-L --libs-only-l PETSc)

FFLAGS ?= -O  -gno-strict-dwarf -fbounds-check  -fopenmp \
      -std=legacy -ffpe-trap='invalid,overflow,zero'
FFLAGS += -DHAVE_PETSC -ffree-line-length-none
LFLAGS += $(PETSC_LFLAGS) -fopenmp


# ---------------------------------
# package sources for this program:
# ---------------------------------

# BOUSSLIB contains library code for Boussinesq solvers,
# AMRLIB and GEOLIB are standard libraries, defined in case you need to
# exclude some modele or source file from one of these.
BOUSSLIB = $(CLAW)/geoclaw/src/2d/bouss
AMRLIB = $(CLAW)/amrclaw/src/2d
GEOLIB = $(CLAW)/geoclaw/src/2d/shallow

# See this Makefile for the list of library routines used:
include $(BOUSSLIB)/Makefile.bouss

# ---------------------------------------
# package sources specifically to exclude
# (i.e. if a custom replacement source 
#  under a different name is provided)
# ---------------------------------------

EXCLUDE_MODULES = \

EXCLUDE_SOURCES = \

# ----------------------------------------
# List of custom sources for this program:
# ----------------------------------------


MODULES = \

SOURCES = \
  ./qinit.f90 \



#-------------------------------------------------------------------
# Include Makefile containing standard definitions and make options:
include $(CLAWMAKE)

.PHONY: check

check:
	@echo ===================
	@echo CLAW = $(CLAW)
	@echo OMP_NUM_THREADS = $(OMP_NUM_THREADS)
	@echo BOUSS_MPI_PROCS = $(BOUSS_MPI_PROCS)
	@env | grep PETSC_OPTIONS
	@echo PETSC_DIR = $(PETSC_DIR)
	@echo PETSC_ARCH = $(PETSC_ARCH)
	@echo RUNEXE = $(RUNEXE)
	@echo FFLAGS = $(FFLAGS)
	@echo ===================