Skip to content

Commit

Permalink
Minor updates for modsurface and modbulkmicro3
Browse files Browse the repository at this point in the history
  • Loading branch information
jchylik committed Sep 22, 2020
1 parent 74bd9eb commit 1ade65e
Show file tree
Hide file tree
Showing 10 changed files with 569 additions and 397 deletions.
26 changes: 26 additions & 0 deletions config/cheops_2018.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# CHEOPS GCC - v. 2018
# use with:
# module load gnu/4.8.2 netcdf/4.1.3-gcc-4.8.2 intelmpi/2018
# module load hdf5/1.8.11 szlib
# module load cmake

set(CMAKE_Fortran_COMPILER "gfortran" ) # "ifort") #"gfortran")
set(Fortran_COMPILER_WRAPPER mpif90 ) # mpiifort)

set(USER_Fortran_FLAGS "-fbacktrace -finit-real=nan -fdefault-real-8 -fno-f2c -ffree-line-length-none")
set(USER_Fortran_FLAGS_RELEASE "-funroll-all-loops -O3")
set(USER_Fortran_FLAGS_DEBUG "-W -Wall -Wuninitialized -fcheck=all -fbacktrace -O0 -g -ffpe-trap=invalid,zero,overflow")

set(NETCDF_INCLUDE_DIR "/opt/rrzk/lib/netcdf/4.1.3-gcc-4.8.2/include") # set(NETCDF_INCLUDE_DIR "/opt/rrzk/lib/netcdf/4.1.3/include")
set(NETCDF_LIB_1 "/opt/rrzk/lib/netcdf/4.1.3-gcc-4.8.2/lib/libnetcdff.so") # set(NETCDF_LIB_1 "/opt/rrzk/lib/netcdf/4.1.3/lib/libnetcdff.so")
set(NETCDF_LIB_2 "/opt/rrzk/lib/netcdf/4.1.3-gcc-4.8.2/lib/libnetcdf.so") # set(NETCDF_LIB_2 "/opt/rrzk/lib/netcdf/4.1.3/lib/libnetcdf.so")
# set(NETCDF_LIB_3 "/opt/rrzk/lib/netcdf/netcdf-4.1.3/f90/netcdf.mod")
set(HDF5_LIB_1 "/opt/rrzk/lib/hdf5/1.8.11/lib/libhdf5_hl.so") # set(HDF5_LIB_1 "/opt/rrzk/lib/hdf5/1.8.11/lib/libhdf5_hl.so")
set(HDF5_LIB_2 "/opt/rrzk/lib/hdf5/1.8.11/lib/libhdf5.so") # set(HDF5_LIB_2 "/opt/rrzk/lib/hdf5/1.8.11/lib/libhdf5.so")
set(SZIP_LIB "/opt/rrzk/lib/szip/szip-2.1/lib/libsz.so")
set(LIBS ${NETCDF_LIB_1} ${NETCDF_LIB_2} ${HDF5_LIB_1} ${HDF5_LIB_2} ${SZIP_LIB} m z curl)
# set(LIBS ${NETCDF_LIB_1} ${NETCDF_LIB_2} ${NETCDF_LIB_3} ${HDF5_LIB_1} ${HDF5_LIB_2} ${SZIP_LIB} m z curl)
#



131 changes: 131 additions & 0 deletions config/cheops_CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
### Choose CMAKE Type
if(NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE RELEASE CACHE STRING
"Choose the type of build, options are: None Debug Release."
FORCE)
endif()

### Set compiler flags
if("$ENV{SYST}" STREQUAL "HUYGENS")
set(CMAKE_Fortran_COMPILER "mpfort")
set(CMAKE_Fortran_FLAGS "-qfree=F90 -qrealsize=8 -qwarn64 -qflttrap=en:ov:zero:inv:imp -qflag=w:e" CACHE STRING "")
set(CMAKE_Fortran_FLAGS_RELEASE "-O4 -qnoipa -qstrict=none:exceptions" CACHE STRING "")
set(CMAKE_Fortran_FLAGS_DEBUG "-O2 -g -qfullpath -C -qflttrp=enable:nanq:overflow:zerodivide -qsigtrap -qinitauto=ff" CACHE STRING "")
elseif("$ENV{SYST}" STREQUAL "CARTESIUS")
set(CMAKE_Fortran_COMPILER "mpiifort")
set(CMAKE_Fortran_FLAGS "-r8 -ftz -extend_source" CACHE STRING "")
set(CMAKE_Fortran_FLAGS_RELEASE "-O3" CACHE STRING "")
set(CMAKE_Fortran_FLAGS_DEBUG "-traceback -fpe1 -O0 -g -check all" CACHE STRING "")
elseif("$ENV{SYST}" STREQUAL "localpc_ifort")
set(CMAKE_Fortran_COMPILER "mpif90")
set(CMAKE_Fortran_FLAGS "-r8 -ftz -extend_source" CACHE STRING "")
set(CMAKE_Fortran_FLAGS_RELEASE "-O3" CACHE STRING "")
set(CMAKE_Fortran_FLAGS_DEBUG "-traceback -fpe1 -O0 -g -check all" CACHE STRING "")
elseif("$ENV{SYST}" STREQUAL "HYDRA")
set(CMAKE_Fortran_COMPILER "mpiifort")
set(CMAKE_Fortran_FLAGS "-r8 -ftz -extend_source" CACHE STRING "")
set(CMAKE_Fortran_FLAGS_RELEASE "-O3" CACHE STRING "")
set(CMAKE_Fortran_FLAGS_DEBUG "-traceback -fpe1 -O0 -g -check all" CACHE STRING "")
else()
set(CMAKE_Fortran_COMPILER "mpif90")
set(CMAKE_Fortran_FLAGS "-finit-real=nan -W -Wall -fdefault-real-8 -ffree-line-length-none" CACHE STRING "")
set (CMAKE_Fortran_FLAGS_RELEASE "-funroll-all-loops -fno-f2c -O3" CACHE STRING "")
set (CMAKE_Fortran_FLAGS_DEBUG "-fbounds-check -fbacktrace -fno-f2c -O0 -g -ffpe-trap=invalid,zero,overflow" CACHE STRING "")
endif()

## Project parameters
PROJECT(DALES Fortran)
cmake_minimum_required(VERSION 2.6)
set(VERSION_MAJOR "4")
set(VERSION_MINOR "1")
set(VERSION_PATCH "0")

### If necessary, resort to BASH-methods to find netcdf-directory
EXEC_PROGRAM(${CMAKE_CURRENT_SOURCE_DIR}/findnetcdf OUTPUT_VARIABLE ADDMODULEPATH)

### Find NetCDF files
FIND_PATH(NETCDF_INCLUDE_DIR netcdf.mod NETCDF.mod
PATHS
$ENV{SARA_NETCDF_INCLUDE}
$ENV{SURFSARA_NETCDF_INCLUDE}
$ENV{NETCDF_INCLUDE}
${ADDMODULEPATH}/include
/usr/include
$ENV{HOME}/include
/usr/lib64/gfortran/modules
/opt/rrzk/lib/netcdf/4.1.3-gcc-4.8.2/f90/
DOC "NetCDF include directory (must contain netcdf.mod)"
)

FIND_LIBRARY(NETCDF_C_LIB netcdf
PATHS
$ENV{SARA_NETCDF_LIB}
$ENV{SURFSARA_NETCDF_LIB}
$ENV{NETCDF_LIB}
${ADDMODULEPATH}/lib
${ADDMODULEPATH}/lib64
/usr/lib
/usr/lib64
$ENV{HOME}/lib
$ENV{HOME}/lib64
/opt/rrzk/lib/netcdf/4.1.3-gcc-4.8.2/lib/
DOC "NetCDF C library"
)

FIND_LIBRARY(NETCDF_FORTRAN_LIB netcdff
PATHS
$ENV{SARA_NETCDF_LIB}
$ENV{SURFSARA_NETCDF_LIB}
$ENV{NETCDF_LIB}
${ADDMODULEPATH}/lib
${ADDMODULEPATH}/lib64
/usr/lib
/usr/lib64
$ENV{HOME}/lib
$ENV{HOME}/lib64
/opt/rrzk/lib/netcdf/4.1.3-gcc-4.8.2/lib/
DOC "NetCDF Fortran library"
)

if(NETCDF_INCLUDE_DIR)
include_directories(${NETCDF_INCLUDE_DIR})
else(NETCDF_INCLUDE_DIR)
MESSAGE(STATUS "WARNING: No NETCDF bindings are found.")
endif(NETCDF_INCLUDE_DIR)

if(NETCDF_C_LIB)
set(NETCDF_LIBS ${NETCDF_C_LIB})
else(NETCDF_C_LIB)
MESSAGE(STATUS "WARNING: No NETCDF bindings are found.")
endif(NETCDF_C_LIB)

if(NETCDF_FORTRAN_LIB)
set(NETCDF_LIBS ${NETCDF_LIBS} ${NETCDF_FORTRAN_LIB})
else(NETCDF_FORTRAN_LIB)
MESSAGE(STATUS "WARNING: No Fortran NETCDF bindings are found.")
endif(NETCDF_FORTRAN_LIB)

### Documentation
INCLUDE(FindDoxygen)
if(DOXYGEN)
ADD_SUBDIRECTORY(utils/doc)
else()
MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will not be created")
endif()

### Set case
if(NOT CASE)
set (CASE standard CACHE STRING
"Set the case."
FORCE)
endif()

### Add case specific file
FILE(GLOB usrfile "${CMAKE_CURRENT_SOURCE_DIR}/cases/${CASE}/moduser.f90")
if(usrfile STREQUAL "")
set(usrfile "${CMAKE_CURRENT_SOURCE_DIR}/cases/standard/moduser.f90")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${usrfile} ${CMAKE_CURRENT_SOURCE_DIR}/src/moduser.f90)
MESSAGE(STATUS "Case " ${CASE} " uses " ${usrfile})

ADD_SUBDIRECTORY(src)
12 changes: 12 additions & 0 deletions config/modversion.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
! This file is used on Cheops and Juwels
! to supplement missing Git/Cmake functionalities
! Variables in this file are filled in by CMake at build time,
! used to record the git version and hash.

module modversion

implicit none

character(80) :: git_version='2.17' ! "@GIT_VERSION@"

end module modversion
27 changes: 27 additions & 0 deletions rundales/runDALES_parallel_16_cheops_master.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash -l
#SBATCH --ntasks=16
#SBATCH --mem-per-cpu=20gb
#SBATCH --time=120:00:00
#SBATCH --account=UniKoeln

# number of nodes in $SLURM_NNODES (default: 1)
# number of tasks in $SLURM_NTASKS (default: 1)
# number of tasks per node in $SLURM_NTASKS_PER_NODE (default: 1)
# number of threads per task in $SLURM_CPUS_PER_TASK (default: 1)


#module avail
#module load intelmpi/4.1.0 netcdf/4.1.3
module load gnu/4.8.2 netcdf/4.1.3-gcc-4.8.2 intelmpi/2018
module load hdf5/1.8.11 szlib
# module load cmake

#echo $PATH

echo "# of nodes, tasks:" $SLURM_NNODES $SLURM_NTASKS

#LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/rneggers/bin/netcdf-4.3.0_ifort/lib"
#LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/rrzk/lib/netcdf/4.1.3/lib"
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/rrzk/lib/netcdf/4.1.3-gcc-4.8.2/lib"

srun -n $SLURM_NTASKS ./dales4
Loading

0 comments on commit 1ade65e

Please sign in to comment.