####################################################
#
#    Makefile for the Fortran 90 program
#
####################################################
#
#
####################################################
#
#    Declaration of Variables
#
####################################################
#
.SILENT:
#
STDROOT      = ${PWD}
SRCDIR       = $(STDROOT)/src
OBJDIR       = $(STDROOT)/obj_${IOW_ESM_COMPILE_MODE}
WORKDIR      = $(STDROOT)/work_${IOW_ESM_COMPILE_MODE}
#
# standard binary
PROGRAM      = bin_${IOW_ESM_COMPILE_MODE}/lmparbin
#
#
#########
#  include file with compiler options and libraries according to your needs
#########
#
include Fopts
#

####################################################
#
#     Declaration of the Object Files
#
####################################################
#
include ObjFiles
#
#
####################################################
#
#     Actions that can be performed
#
####################################################
#
exe:    parexe
#
$(OBJDIR):
	mkdir -p $(OBJDIR)
#
parexe: $(DATAOBJ) $(PUBLICUTILS) $(UTILOBJ) $(EXTOBJ) $(SRCOBJ) $(IFSOBJ) \
         $(ASSOBJ) $(SATOBJ) $(OASOBJ)
	echo linking parallel program
	( $(LDPAR) $(LDFLG) -o $(PROGRAM) $(DATAOBJ) $(UTILOBJ) $(EXTOBJ) \
                                    $(PUBLICUTILS) $(SRCOBJ) $(IFSOBJ) \
                                    $(ASSOBJ) $(SATOBJ) $(OASOBJ) $(LIB) )
#
vampir:  addmods / $(DATAOBJ) $(PUBLICUTILS) $(UTILOBJ) $(EXTOBJ) $(SRCOBJ) $(IFSOBJ)
	echo linking parallel program
	( $(LDPAR) $(LDFLG) -o lmpar_vampir $(DATAOBJ) $(UTILOBJ) $(EXTOBJ) \
                                    $(PUBLICUTILS) $(SRCOBJ) $(IFSOBJ) $(LIB)     \
              -L/usr/local/vampir40/lib -lVT -lld  )
#
hpmlib:  addmods / $(DATAOBJ) $(PUBLICUTILS) $(UTILOBJ) $(EXTOBJ) $(SRCOBJ) $(IFSOBJ)  \
         $(ASSOBJ) $(SATOBJ) $(OASOBJ)
	echo linking parallel program
	( $(LDPAR) $(LDFLG) -o lmpar_hpmlib $(DATAOBJ) $(UTILOBJ) $(EXTOBJ) \
                                    $(PUBLICUTILS) $(SRCOBJ) $(IFSOBJ) \
                                    $(ASSOBJ) $(SATOBJ) $(OASOBJ) $(LIB)     \
            -L/uhome/uschaett/lib/ACTC_pmtoolkit_beta/HPM_V2.2/lib      \
            -l pmapi -l hpm -l m )
#
seqexe:  addmods / $(DATAOBJ) $(PUBLICUTILS) $(UTILOBJ) $(EXTOBJ) $(SRCOBJ) $(IFSOBJ) \
         $(ASSOBJ) $(SATOBJ) $(OASOBJ) $(OBJDIR)/dummy_mpi.o
	echo linking sequential program
	( $(LDSEQ) $(LDFLG) -o $(PROGRAM) $(DATAOBJ) $(PUBLICUTILS)         \
         $(UTILOBJ) $(OBJDIR)/dummy_mpi.o $(EXTOBJ) $(SRCOBJ) $(IFSOBJ)     \
         $(ASSOBJ) $(SATOBJ) $(OASOBJ) $(LIB) )
#
addmods:
	for DATEI in `ls -x $(WORKDIR)` ; do \
	   cp -p $(WORKDIR)/$${DATEI}  $(SRCDIR) ; \
	done
#
clean:
	echo cleaning up
	rm -f $(PROGRAM)
	rm -f $(OBJDIR)/*.o
	rm -f $(OBJDIR)/*.T
	rm -f $(OBJDIR)/*.mod
	rm -f $(OBJDIR)/*.lst
#+++++
	rm -f $(OBJDIR)/*.L
#
####################################################
#
#     Dependencies of the Data Modules
#
####################################################
#
include ObjDependencies
#
