-
Notifications
You must be signed in to change notification settings - Fork 23
/
Makefile.NUOPC
86 lines (63 loc) · 2.01 KB
/
Makefile.NUOPC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#
# SCCS IDENTIFICATION: $HeadURL$
# SCCS IDENTIFICATION: @(#)$Id$
#include ../../config/use_couple
#TOPDIR := $(shell cd ../../../ 1>/dev/null 2>&1 && pwd)
OCNDIR := $(shell cd ../ 1>/dev/null 2>&1 && pwd)
#OCNDIR := $(shell cd ../../ 1>/dev/null 2>&1 && pwd)
OBJDIR = $(OCNDIR)/obj/src
FCSDIR = $(OCNDIR)/src
ifdef USE_OCN
LIB = $(OCNDIR)/lib/ocn.a
else
LIB = $(OCNDIR)/lib/hycom.a
endif
INCFLAG = $(addprefix -I,$(FCSDIR)) $(INCLDIR)
MODFLAG = $(addprefix -I,$(OBJDIR))
.SUFFIXES : .c .F90
MAKEFILE = Makefile.NUOPC
include $(OCNDIR)/config/CONFIG_NUOPC
machine=$(shell hostname)
NOFMA=
ifeq ($(findstring conrad,$(machine)),conrad)
NOFMA= -no-fma
endif
ifeq ($(findstring gordon,$(machine)),gordon)
NOFMA= -no-fma
endif
OBJS = \
mod_dimensions.o mod_xc.o mod_za.o mod_cb_arrays.o mod_pipe.o \
mod_incupd.o \
mod_floats.o mod_stokes.o mod_tides.o mod_mean.o mod_archiv.o \
mod_tsadvc.o mod_momtum.o mod_barotp.o mod_asselin.o mod_restart.o\
bigrid.o blkdat.o cnuity.o convec.o \
diapfl.o dpthuv.o dpudpv.o forfun.o geopar.o hybgen.o \
icloan.o inicon.o inigiss.o inikpp.o inimy.o latbdy.o \
matinv.o mxkprf.o mxkrt.o mxkrtm.o mxpwp.o \
overtn.o poflat.o prtmsk.o psmoo.o \
thermf.o trcupd.o \
machine.o wtime.o machi_c.o isnan.o s8gefs.o
OBJS := $(addprefix $(OBJDIR)/,$(OBJS))
TARGET: $(OBJS) modmv
%.o $(OBJDIR)/%.o : %.F90
$(FCMPI) -c $(FFLAGS) $(NOFMA) $(CPPFLAGS) $(CPLFLAG) $(MODFLAG) $(INCFLAG) $< -o $@
$(AR) $(LIB) $@
%.o $(OBJDIR)/%.o : %.c
$(CC) -c $(CPPFLAGS) $(CCFLAGS) $< -o $@
$(AR) $(LIB) $@
archive : $(OBJS)
rm -f $(LIB)
$(AR) -r $(LIB) $(OBJS)
modmv:
mods=`ls *.mod 2>/dev/null`; \
if [ "$${mods}" != "" ]; then mv $${mods} $(OBJDIR)/.; fi
info:
-@echo "OCNDIR: $(OCNDIR) "
# -@echo "OBJDIR: $(OBJDIR) "
# -@echo "OBJS: $(OBJS) "
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
.PHONY: clean
clean:
rm -f $(OBJDIR)/*.o $(OBJDIR)/*.mod
rm -f $(LIB)