New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Makefile in utils/tools_AGRIF_CMEMS_2020/NESTING_AGRIF – NEMO

source: utils/tools_AGRIF_CMEMS_2020/NESTING_AGRIF/Makefile @ 10091

Last change on this file since 10091 was 10091, checked in by rblod, 6 years ago

Compilation for NESTING_AGRIF

  • Property svn:executable set to *
File size: 5.2 KB
Line 
1SHELL = /bin/bash
2MPI = NO
3
4include make.inc
5
6PROGS = create_coordinate
7SFMAKEDEPEND := ./sfmakedepend
8DIR_LIB=lib
9DIR_FILES=src
10DIR_PPSRC=NEMOFILES
11DIR_PPSRC_2=ppsrc
12DIR_DOC=doc
13DIR_OBJS=obj
14DIR_LIB=lib
15
16FILENAMES =$(notdir $(basename $(wildcard src/*.F90))) $(notdir $(basename $(wildcard src/*.F))) $(notdir $(basename $(wildcard src/*.c))) $(notdir $(basename $(wildcard src/*.f))) $(notdir $(basename $(wildcard src/*.f90)))
17FILES=src/*
18OBJS=$(addsuffix .o,$(addprefix $(DIR_OBJS)/,$(FILENAMES)))
19OBJS := $(filter-out obj/agrif2model.o, $(OBJS))
20
21PROG=create_coordinate
22
23all: depend conv prepagrif AGRIF_LIB $(OBJS) $(PROGS)
24      @echo
25      @echo ===================================================
26      @echo   Nesting is ok
27      @echo ===================================================
28      @echo
29
30
31create_coordinate: $(DIR_LIB)/libnesting.a $(DIR_PPSRC)/create_coordinate.f90
32      $(FC) $(LINKFLAGS) $(FFLAGS) -o create_coordinate -L$(DIR_LIB) -lnesting $(LIBS) -I$(DIR_OBJS) $(FFLAGS_SPEC) -I../../ext/AGRIF  -L../../ext/AGRIF -lagrif
33
34prepagrif:
35      @echo
36      @echo ===================================================
37      @echo   Create working directories for AGRIF ...
38      @echo ===================================================
39      mkdir -p obj
40      mkdir -p $(DIR_PPSRC_2)
41      mkdir -p $(DIR_LIB)
42      mkdir -p $(DIR_OBJS)
43      mkdir -p $(DIR_PPSRC)
44      mkdir -p $(DIR_PPSRC)/AGRIF_MODELFILES
45      mkdir -p $(DIR_PPSRC)/AGRIF_INC
46      \cp ../../ext/AGRIF/LIB/conv $(DIR_PPSRC)
47      \cp ../../ext/AGRIF/agrif_oce.in $(DIR_PPSRC)
48      @echo
49
50conv:
51      $(MAKE) -C ../../ext/AGRIF/LIB
52
53AGRIF_LIB: 
54      $(MAKE) -C ../../ext/AGRIF FC=$(FC) CPP=$(CPP) FFLAGS="$(FFLAGS)"
55
56$(DIR_LIB)/libnesting.a: $(OBJS) $(DIR_OBJS)/agrif2model.o
57      @echo
58      @echo ===================================================
59      @echo   Compile Nesting library...
60      @echo ===================================================
61      $(AR) -r $@ $(OBJS) $(DIR_OBJS)/agrif2model.o
62      ranlib $@
63      @echo
64
65
66$(DIR_OBJS)/agrif2model.o: $(DIR_FILES)/agrif2model.F90 Makefile  MODEL.CPP
67      $(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).F90 > $(DIR_PPSRC_2)/$(*F).f90
68      $(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS) 
69
70$(DIR_OBJS)/%.o: $(DIR_FILES)/%.F90 Makefile  MODEL.CPP
71      $(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).F90 > $(DIR_PPSRC)/$(*F).f90
72         @(cd NEMOFILES ; ./conv ./agrif_oce.in -rm \
73      -comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile $(*F).f90)
74      $(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS)  $(DIR_PPSRC)/AGRIF_MODELFILES/$(*F).f90 >$(DIR_PPSRC_2)/$(*F).f90   
75      $(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS)  -J$(DIR_OBJS)
76
77$(DIR_OBJS)/%.o: $(DIR_FILES)/%.f90 Makefile MODEL.CPP
78      $(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).f90 > $(DIR_PPSRC)/$(*F).f90
79         @(cd NEMOFILES ; ./conv agrif_oce.in -rm \
80      -comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile $(*F).f90)
81      $(CPP) -I$(DIR_PPSRC)/AGRIF_INC -include MODEL.CPP $(CPPFLAGS)  $(DIR_PPSRC)/AGRIF_MODELFILES/$(*F).f90 >$(DIR_PPSRC_2)/$(*F).f90   
82      $(FC) $(FFLAGS) -c $(DIR_PPSRC_2)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o -I../../ext/AGRIF -I$(DIR_OBJS)  -J$(DIR_OBJS) 
83
84#$(DIR_OBJS)/%.o: $(DIR_FILES)/%.F Makefile MODEL.CPP
85#     $(CPP) -include MODEL.CPP $(CPPFLAGS) $(DIR_FILES)/$(*F).F > $(DIR_PPSRC)/$(*F).f
86#     $(FC) $(FFLAGS) $(F77FLG) -c $(DIR_PPSRC)/$(*F).f -o $(DIR_OBJS)/$(*F).o
87
88#$(DIR_OBJS)/%.o: $(DIR_FILES)/%.f90 Makefile MODEL.CPP
89#     $(FC) $(FFLAGS) -c $(DIR_PPSRC)/$(*F).f90 -o $(DIR_OBJS)/$(*F).o
90
91#$(DIR_OBJS)/par_oce.o: $(DIR_FILES)/par_oce.f90
92#     echo $(OBJS) $(DIR_FILES)/
93
94#$(DIR_OBJS)/%.o: $(DIR_FILES)/%.c Makefile MODEL.CPP
95#  $(CC) -c $(CFLAGS) -c $(DIR_FILES)/$(*F).c -o $(DIR_OBJS)/$(*F).o
96
97#--------------------------------------------------------------------------
98#  Target to create dependeanies.
99#--------------------------------------------------------------------------
100
101MakeDepend: $(DIR_FILES)
102      $(SFMAKEDEPEND) --silent --fext=f90 --fext=f --fext=F90 --fext=F --fext=c --file=- --moddir=$(DIR_OBJS) --objdir=$(DIR_OBJS)  $(FILES) > MakeDepend
103
104depend: $(DIR_FILES)
105      @echo
106      @echo ===================================================
107      @echo   Create dependancies for Nesting ...
108      @echo ===================================================
109      $(SFMAKEDEPEND) --fext=f90 --fext=f  --silent --fext=F90 --fext=F --fext=c --file=- --moddir=$(DIR_OBJS) --objdir=$(DIR_OBJS)  $(FILES) > MakeDepend
110
111#ifneq "$(MAKECMDGOALS)" "clean"
112-include ./MakeDepend
113#endif
114
115#--------------------------------------------------------------------------
116#  Target to clean
117#--------------------------------------------------------------------------
118
119clean:
120      @echo
121      @echo ===================================================
122      @echo   Clean ...
123      @echo ===================================================
124      $(RM) -rf $(DIR_PPSRC) $(DIR_PPSRC_2) $(DIR_LIB) $(DIR_OBJS) $(PROGS) 
125
126cleangrif: 
127      @echo
128      @echo ===================================================
129      @echo   Clean agrif and conv ...
130      @echo ===================================================
131      $(MAKE) clean -C ../../ext/AGRIF/LIB
132      $(MAKE) clean -C ../../ext/AGRIF
133
134cleanall: clean cleangrif
135   
136# DO NOT DELETE THIS LINE - used by make depend
Note: See TracBrowser for help on using the repository browser.