# Multithreaded + multi-processing makefile for: # Linux villon 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux # This makefile was generated automatically on # Sun Jun 22 03:02:06 EDT 2025 # by the command: # ../../../tools/genmake2 -ds -m make -mods=../code -optfile=/home/jm_c/test_villon/MITgcm_mth/tools/build_options/linux_amd64_gfortran -devel -omp # executed by: # @villon:/home/jm_c/test_villon/MITgcm_mth/verification/global_ocean.cs32x15/build # # OPTFILE="/home/jm_c/test_villon/MITgcm_mth/tools/build_options/linux_amd64_gfortran" # # BUILDDIR : Directory where object files are written # SOURCEDIRS : Directories containing the source (.F) files # INCLUDEDIRS : Directories containing the header-source (.h) files # EXEDIR : Directory where executable that is generated is written # EXECUTABLE : Full path of executable binary # # CPP : C-preprocessor command # INCLUDES : Directories searched for header files # DEFINES : Macro definitions for CPP # MAKEDEPEND : Dependency generator # FC : Fortran compiler command # FFLAGS : Configuration/debugging options for FC # FOPTIM : Optimization options for FC # LINK : Command for link editor program # LIBS : Library flags /or/ additional optimization/debugging flags ROOTDIR = ../../.. BUILDDIR = . SOURCEDIRS = ../code $(ROOTDIR)/pkg/bulk_force $(ROOTDIR)/pkg/debug $(ROOTDIR)/pkg/diagnostics $(ROOTDIR)/pkg/exch2 $(ROOTDIR)/pkg/exf $(ROOTDIR)/pkg/generic_advdiff $(ROOTDIR)/pkg/ggl90 $(ROOTDIR)/pkg/gmredi $(ROOTDIR)/pkg/mdsio $(ROOTDIR)/pkg/mnc $(ROOTDIR)/pkg/mom_common $(ROOTDIR)/pkg/mom_fluxform $(ROOTDIR)/pkg/mom_vecinv $(ROOTDIR)/pkg/monitor $(ROOTDIR)/pkg/rw $(ROOTDIR)/pkg/seaice $(ROOTDIR)/pkg/thsice $(ROOTDIR)/pkg/timeave $(ROOTDIR)/pkg/cal $(ROOTDIR)/eesupp/src $(ROOTDIR)/model/src INCLUDEDIRS = ../code $(ROOTDIR)/pkg/bulk_force $(ROOTDIR)/pkg/debug $(ROOTDIR)/pkg/diagnostics $(ROOTDIR)/pkg/exch2 $(ROOTDIR)/pkg/exf $(ROOTDIR)/pkg/generic_advdiff $(ROOTDIR)/pkg/ggl90 $(ROOTDIR)/pkg/gmredi $(ROOTDIR)/pkg/mdsio $(ROOTDIR)/pkg/mnc $(ROOTDIR)/pkg/mom_common $(ROOTDIR)/pkg/mom_fluxform $(ROOTDIR)/pkg/mom_vecinv $(ROOTDIR)/pkg/monitor $(ROOTDIR)/pkg/rw $(ROOTDIR)/pkg/seaice $(ROOTDIR)/pkg/thsice $(ROOTDIR)/pkg/timeave $(ROOTDIR)/pkg/cal $(ROOTDIR)/eesupp/inc $(ROOTDIR)/model/inc EXEDIR = . EXECUTABLE = $(EXEDIR)/mitgcmuv TOOLSDIR = $(ROOTDIR)/tools OADTOOLS = #eh3 new defines for the adjoint work AUTODIFF = $(ROOTDIR)/pkg/autodiff EXE_ADJ = mitgcmuv_ad EXE_TLM = mitgcmuv_ftl EXE_SVD = mitgcmuv_svd ENABLED_PACKAGES = -DALLOW_BULK_FORCE -DALLOW_DEBUG -DALLOW_DIAGNOSTICS -DALLOW_EXCH2 -DALLOW_EXF -DALLOW_GENERIC_ADVDIFF -DALLOW_GGL90 -DALLOW_GMREDI -DALLOW_MDSIO -DALLOW_MNC -DALLOW_MOM_COMMON -DALLOW_MOM_FLUXFORM -DALLOW_MOM_VECINV -DALLOW_MONITOR -DALLOW_RW -DALLOW_SEAICE -DALLOW_THSICE -DALLOW_TIMEAVE -DALLOW_CAL DISABLED_PACKAGES = -UALLOW_ADMTLM -UALLOW_AIM_V23 -UALLOW_ATM2D -UALLOW_ATM_COMMON -UALLOW_ATM_COMPON_INTERF -UALLOW_ATM_OCN_COUPLER -UALLOW_ATM_PHYS -UALLOW_AUTODIFF -UALLOW_BBL -UALLOW_BLING -UALLOW_CD_CODE -UALLOW_CFC -UALLOW_CHEAPAML -UALLOW_CHRONOS -UALLOW_COMPON_COMMUNIC -UALLOW_COST -UALLOW_CTRL -UALLOW_DIC -UALLOW_DOWN_SLOPE -UALLOW_EBM -UALLOW_ECCO -UALLOW_EMBED_FILES -UALLOW_FIZHI -UALLOW_FLT -UALLOW_FRAZIL -UALLOW_GCHEM -UALLOW_GRDCHK -UALLOW_GRIDALT -UALLOW_ICEFRONT -UALLOW_KL10 -UALLOW_KPP -UALLOW_LAND -UALLOW_LAYERS -UALLOW_LONGSTEP -UALLOW_MATRIX -UALLOW_MY82 -UALLOW_MYPACKAGE -UALLOW_OBCS -UALLOW_OCN_COMPON_INTERF -UALLOW_OFFLINE -UALLOW_OPENAD -UALLOW_OPPS -UALLOW_PP81 -UALLOW_PROFILES -UALLOW_PTRACERS -UALLOW_RBCS -UALLOW_REGRID -UALLOW_RUNCLOCK -UALLOW_SALT_PLUME -UALLOW_SBO -UALLOW_SHAP_FILT -UALLOW_SHELFICE -UALLOW_SHOWFLOPS -UALLOW_SMOOTH -UALLOW_SPHERE -UALLOW_STEEP_ICECAVITY -UALLOW_STREAMICE -UALLOW_TAPENADE -UALLOW_ZONAL_FILT # These files are created by Makefile SPECIAL_FILES = PACKAGES_CONFIG.h AD_CONFIG.h FC_NAMEMANGLE.h BUILD_INFO.h EMBEDDED_FILES = # Unix ln (link) LN = ln -s # Dependency generator MAKEDEPEND = $(TOOLSDIR)/xmakedepend # Special preprocessor (KAP on DECs, FPP on Crays) KPP = # Fortran compiler FC = gfortran # Fortran compiler F90C = gfortran # C compiler CC = gcc # Link editor LINK = gfortran # Defines for CPP DEFINES = -DWORDLENGTH=4 -DNML_TERMINATOR -DUSE_OMP_THREADING -DHAVE_SYSTEM -DHAVE_FDATE -DHAVE_ETIME_SBR -DHAVE_CLOC -DHAVE_SETRLSTK -DHAVE_SIGREG -DHAVE_STAT -DHAVE_NETCDF -DHAVE_FLUSH # Includes for CPP INCLUDES = -I/usr/include # default CPP includes for makedepend CPPINCLUDES = -I/usr/lib/gcc/x86_64-linux-gnu/7/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include # Flags for KPP KFLAGS1 = KFLAGS2 = # Optim./debug for FC FFLAGS = -fconvert=big-endian -fimplicit-none -mcmodel=medium -Wall -fopenmp FOPTIM = -O0 -g -fbounds-check -ffpe-trap=invalid,zero,overflow -finit-real=inf # Optim./debug for FC F90FLAGS = -fconvert=big-endian -fimplicit-none -mcmodel=medium -Wall -fopenmp F90OPTIM = -O0 -g -fbounds-check -ffpe-trap=invalid,zero,overflow -finit-real=inf F90FIXEDFORMAT = -ffixed-form # Flags for CC CFLAGS = -O0 -mcmodel=medium # Files that should not be optimized NOOPTFILES = NOOPTFLAGS = -O0 # Flags and libraries needed for linking LIBS = -L/usr/lib -lnetcdff -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -lnetcdf -lnetcdf # Name of the makefile MAKEFILE = Makefile # Name of the make program MAKE = make F77_SRC_FILES = \ bulkf_ave.F \ bulkf_fields_load.F \ bulkf_flux_adjust.F \ bulkf_forcing.F \ bulkf_formula_aim.F \ bulkf_formula_lanl.F \ bulkf_formula_lay.F \ bulkf_init_varia.F \