Philippe 23/02/2016: lfi2cdf: modif for JPHEXT/=1
[MNH-git_open_source-lfs.git] / tools / diachro / Makefile.conv2dia
1 B ?= 64
2 DIR_OBJ=./$(ARCH)_$(B)
3
4 ifeq ($(strip $(VERSION)),)
5 VPATH=src/BUG:src/MOD:src/mesonh_MOD:src/FM2DIA:src/TOOL:src/mesonh:src/FM:$(DIR_OBJ)
6 else                            # string VERSION not empty
7 VPATH=src/$(VERSION):src/BUG:src/MOD:src/mesonh_MOD:src/FM2DIA:src/TOOL:src/mesonh:src/FM:$(DIR_OBJ)
8 endif
9
10 ifeq ($(origin MNH_LIBTOOLS), undefined)
11 include ../where.Libs
12 else
13 include $(MNH_LIBTOOLS)/tools/where.Libs
14 endif
15
16
17 INC = -I src/FM2DIA -I $(DIR_OBJ) 
18
19 ifeq ($(VERSION),M45)
20 PROG=
21 PROG1 = conv2dia.elim
22 PROG2 = conv2dia.select
23 else
24 PROG  = conv2dia
25 PROG1 = 
26 PROG2 = 
27 endif
28
29 OBJS = fmattr.o fmclos.o fmfree.o fmlook.o fmopen.o \
30         ini_cst.o jdlfilaf_fuji.o menu_diachro.o modd_conf.o modd_diachro.o \
31         modd_dimgrid_fordiachro.o modd_out_dia.o modd_rea_lfi.o modd_time.o \
32         modd_type_date.o read_dimgridref_fm2dia.o write_othersfields.o \
33         alloc_fordiachro.o elim.o fminit.o fmread.o \
34         fmwrit.o modd_alloc_fordiachro.o modd_cst.o modd_dim1.o \
35         modd_fmdeclar.o modd_fmmulti.o \
36         modd_grid1.o modd_grid.o modd_parameters.o \
37         modd_resolvcar.o modd_time1.o modd_type_and_lh.o read_diachro.o \
38         resolv_units.o set_dim.o set_light_grid.o temporal_dist.o \
39         write_diachro.o write_dimgridref.o fm_read.o fm_writ.o \
40         modd_nesting.o mode_gridcart.o modd_lunit1.o modd_param1.o \
41         mode_gridproj.o write_lfifm1_fordiachro_cv.o vert_coord.o writedir.o \
42
43 OBJDIA = fmattr.o fmclos.o fmfree.o fmlook.o fmopen.o \
44         ini_cst.o menu_diachro.o modd_conf.o modd_diachro.o \
45         modd_dimgrid_fordiachro.o modd_out_dia.o modd_rea_lfi.o modd_time.o \
46         modd_type_date.o read_dimgridref_fm2dia.o \
47         alloc_fordiachro.o elim.o fminit.o fmread.o \
48         fmwrit.o modd_alloc_fordiachro.o modd_cst.o modd_dim1.o \
49         modd_fmdeclar.o modd_fmmulti.o \
50         modd_grid1.o modd_grid.o modd_parameters.o \
51         modd_resolvcar.o modd_time1.o modd_type_and_lh.o read_diachro.o \
52         resolv_units.o set_dim.o set_light_grid.o temporal_dist.o \
53         write_diachro.o write_dimgridref.o fm_read.o fm_writ.o \
54         modd_nesting.o mode_gridcart.o modd_lunit1.o modd_param1.o\
55         mode_gridproj.o write_lfifm1_fordiachro_cv.o vert_coord.o writedir.o \
56
57 include $(DIR_CONF)/config.$(ARCH)
58 include $(MNH_LIBTOOLS)/tools/diachro/Rules.$(ARCH)
59
60
61 %.o:%.f90 $(DIR_OBJ)/.dummy
62         $(CPP) $(INC) $(CPPFLAGS) $< >  $(DIR_OBJ)/cpp_$(*F).f90 
63         $(F90) $(INC) -c $(F90FLAGS) $(DIR_OBJ)/cpp_$(*F).f90 -o $(DIR_OBJ)/$(*F).o
64         -@mv  *.mod $(DIR_OBJ)/. 2> /dev/null || echo pas de module dans $*.f90
65
66 %.o:%.f $(DIR_OBJ)/.dummy  
67         $(CPP)  $(INC) $(CPPFLAGS) -Df77 $< > $(DIR_OBJ)/cpp_$(*F).f
68         $(F77) $(INC) -c $(F77FLAGS) $(DIR_OBJ)/cpp_$(*F).f -o $(DIR_OBJ)/$(*F).o
69
70 ifeq ($(B),64)
71 all: $(PROG1) $(PROG2) $(PROG) $(LIBDIA)
72 else
73 all: $(LIBDIA)
74 endif
75
76 $(PROG): $(PROG).o $(OBJS) $(LIBLFI) $(LIBCOMP)
77         cd $(DIR_OBJ);$(F90) $(LDFLAGS) -o $@ $(patsubst $(DIR_OBJ)/%,%,$^) $(LIBS)
78         @echo $@ available under $(DIR_OBJ)
79
80 $(PROG1): $(PROG1).o $(OBJS) $(LIBLFI) $(LIBCOMP)
81         cd $(DIR_OBJ);$(F90) $(LDFLAGS) -o $@ $(patsubst $(DIR_OBJ)/%,%,$^) $(LIBS)
82         @echo $@ available under $(DIR_OBJ)
83
84 $(PROG2): $(PROG2).o $(OBJS) $(LIBLFI) $(LIBCOMP)
85         cd $(DIR_OBJ);$(F90) $(LDFLAGS) -o $@ $(patsubst $(DIR_OBJ)/%,%,$^) $(LIBS)
86         @echo $@ available under $(DIR_OBJ)
87
88 $(DIR_OBJ)/.dummy :
89         mkdir $(DIR_OBJ)
90         @touch $(DIR_OBJ)/.dummy
91
92 $(LIBLFI):
93         $(MAKE) -C $(DIR_LFI)
94         #$(MAKE) -C $(DIR_LFI) DIR_CONF=$(DIR_CONF)
95
96 $(LIBCOMP):
97         $(MAKE) -C $(DIR_COMP)
98
99
100 ifeq ($(strip $(VERSION)),)
101 $(LIBDIA): $(OBJDIA)
102         cd $(DIR_OBJ) ; $(AR) rv $@ $(OBJDIA)
103         ls -l $(DIR_OBJ)/$@
104 else                            # string VERSION not empty
105 $(LIBDIA): $(OBJDIA)
106         @echo '***' if libxxx_$(VERSION).a does not exist, cp libxxx.a libxxx_$(VERSION).a
107         #ls -l $(DIR_OBJ)/$@
108         cd $(DIR_OBJ) ; $(AR) rv $@ $(OBJDIA)
109         ls -l $(DIR_OBJ)/$@
110 endif
111
112
113 clean:
114         (if [ -d $(DIR_OBJ) ] ; then cd $(DIR_OBJ); rm -f cpp_*.f90 cpp_*.f *.o *.mod ; fi)
115
116 distclean: clean
117         (if [ -d $(DIR_OBJ) ] ; then rm -rf $(DIR_OBJ); fi)
118
119
120 # nombre de passe = 1
121 conv2dia.o: conv2dia.f90 ini_cst.o \
122         menu_diachro.o modd_conf.o modd_diachro.o modd_dim1.o modd_grid.o \
123         modd_grid1.o modd_dimgrid_fordiachro.o modd_out_dia.o modd_rea_lfi.o \
124         modd_time1.o read_dimgridref_fm2dia.o \
125         write_dimgridref.o write_othersfields.o writedir.o 
126
127 conv2dia.elim.o: conv2dia.elim.f90 ini_cst.o \
128         menu_diachro.o modd_conf.o modd_diachro.o modd_dim1.o modd_grid.o \
129         modd_grid1.o modd_dimgrid_fordiachro.o modd_out_dia.o modd_rea_lfi.o \
130         modd_time1.o read_dimgridref_fm2dia.o \
131         write_dimgridref.o write_othersfields.o 
132
133 conv2dia.select.o: conv2dia.select.f90 ini_cst.o \
134         menu_diachro.o modd_conf.o modd_diachro.o modd_dim1.o modd_grid.o \
135         modd_grid1.o modd_dimgrid_fordiachro.o modd_out_dia.o modd_rea_lfi.o \
136         modd_time1.o read_dimgridref_fm2dia.o \
137         write_dimgridref.o write_othersfields.o 
138
139 # nombre de passe = 2
140 fmattr.o: fmattr.f90 modd_fmdeclar.o \
141         modd_fmmulti.o 
142
143 fmclos.o: fmclos.f90 modd_fmdeclar.o \
144         modd_fmmulti.o 
145
146 fmfree.o: fmfree.f90 modd_fmdeclar.o \
147         modd_fmmulti.o 
148
149 fmlook.o: fmlook.f90 modd_fmdeclar.o 
150
151 fmopen.o: fmopen.f90 modd_fmdeclar.o \
152         modd_fmmulti.o 
153
154 ini_cst.o: ini_cst.f90 modd_cst.o 
155
156 jdlfilaf_fuji.o: jdlfilaf_fuji.f 
157
158 menu_diachro.o: menu_diachro.f90 fmread.o \
159         fmwrit.o modd_out_dia.o 
160
161 modd_conf.o: modd_conf.f90 
162
163 modd_diachro.o: modd_diachro.f90 
164
165 modd_dimgrid_fordiachro.o: modd_dimgrid_fordiachro.f90 
166
167 modd_out_dia.o: modd_out_dia.f90 
168
169 modd_rea_lfi.o: modd_rea_lfi.f90 
170
171 modd_time.o: modd_time.f90 modd_parameters.o \
172         modd_type_date.o 
173
174 modd_type_date.o: modd_type_date.f90 
175
176 read_dimgridref_fm2dia.o: read_dimgridref_fm2dia.f90 fmread.o \
177         modd_conf.o modd_diachro.o modd_dim1.o modd_param1.o \
178         modd_grid1.o modd_grid.o modd_out_dia.o \
179         modd_parameters.o modd_rea_lfi.o \
180         modd_time1.o modd_time.o modd_type_date.o set_dim.o \
181         set_light_grid.o 
182
183 write_othersfields.o: write_othersfields.f90 alloc_fordiachro.o \
184         fmread.o fmwrit.o modd_alloc_fordiachro.o \
185         modd_conf.o modd_diachro.o modd_dim1.o \
186         modd_dimgrid_fordiachro.o modd_grid1.o modd_grid.o \
187         modd_out_dia.o modd_parameters.o \
188         modd_resolvcar.o modd_time1.o \
189         modd_time.o modd_type_and_lh.o modd_type_date.o \
190         read_diachro.o resolv_units.o temporal_dist.o \
191         write_diachro.o 
192
193 # nombre de passe = 3
194 alloc_fordiachro.o: alloc_fordiachro.f90 modd_alloc_fordiachro.o \
195         modd_type_and_lh.o 
196
197 elim.o: elim.f90 modd_dimgrid_fordiachro.o 
198
199 fminit.o: fminit.f90 modd_fmdeclar.o 
200
201 fmread.o: fmread.f90 modd_conf.o modd_fmdeclar.o \
202         modd_type_date.o 
203
204 fmwrit.o: fmwrit.f90 modd_conf.o \
205         modd_type_date.o 
206
207 modd_alloc_fordiachro.o: modd_alloc_fordiachro.f90 
208
209 modd_cst.o: modd_cst.f90 
210
211 modd_dim1.o: modd_dim1.f90 
212
213 modd_fmdeclar.o: modd_fmdeclar.f90 
214
215 modd_fmmulti.o: modd_fmmulti.f90 
216
217 modd_grid1.o: modd_grid1.f90 
218
219 modd_grid.o: modd_grid.f90 
220
221 modd_parameters.o: modd_parameters.f90 
222
223 modd_resolvcar.o: modd_resolvcar.f90 
224
225 modd_time1.o: modd_time1.f90 modd_type_date.o 
226
227 modd_type_and_lh.o: modd_type_and_lh.f90 
228
229 read_diachro.o: read_diachro.f90 alloc_fordiachro.o \
230         fmread.o modd_alloc_fordiachro.o modd_type_and_lh.o 
231
232 resolv_units.o: resolv_units.f90 modd_conf.o \
233         modd_resolvcar.o 
234
235 set_dim.o: set_dim.f90 fmread.o \
236         modd_conf.o modd_parameters.o 
237
238 set_light_grid.o: set_light_grid.f90 fmread.o \
239         modd_conf.o modd_grid.o modd_time.o \
240         mode_gridcart.o mode_gridproj.o
241
242 temporal_dist.o: temporal_dist.f90 
243
244 write_diachro.o: write_diachro.f90 fmwrit.o \
245         menu_diachro.o 
246
247 write_dimgridref.o: write_dimgridref.f90 modd_diachro.o \
248         write_lfifm1_fordiachro_cv.o 
249
250 # nombre de passe = 4
251 fm_read.o: fm_read.f90 modd_fmdeclar.o 
252
253 fm_writ.o: fm_writ.f90 modd_fmdeclar.o 
254
255 modd_nesting.o: modd_nesting.f90 modd_parameters.o 
256
257 mode_gridcart.o: mode_gridcart.f90 modd_conf.o \
258         modd_parameters.o vert_coord.o
259
260 mode_gridproj.o: mode_gridproj.f90 modd_conf.o \
261         modd_cst.o modd_grid.o modd_lunit1.o \
262         modd_parameters.o vert_coord.o
263
264 vert_coord.o: vert_coord.f90
265
266 write_lfifm1_fordiachro_cv.o: write_lfifm1_fordiachro_cv.f90 fmread.o \
267         fmwrit.o modd_conf.o \
268         modd_diachro.o modd_dim1.o modd_dimgrid_fordiachro.o \
269         modd_grid1.o modd_grid.o modd_lunit1.o modd_param1.o \
270         modd_nesting.o modd_out_dia.o \
271         modd_parameters.o modd_time1.o \
272         modd_time.o modd_type_date.o 
273
274 # nombre de passe = 5
275 modd_lunit1.o: modd_lunit1.f90 modd_parameters.o 
276 modd_param1.o: modd_param1.f90
277 writedir.o: writedir.f90