makefile 15.5 KB
Newer Older
Matthias Langer's avatar
 
Matthias Langer committed
1
SHELL = /bin/bash
2
3
4
5
6
7
################################################################################
#  DESCRIPTION
#    Makefile for FLEXPART. Standard (serial) and parallel (MPI) version
#
#    Dependencies are resolved in this makefile, so parallel make is
#    possible ("make -j")
8
9
10
11
12
#
#    At NILU we have installed gcc-4.9.1 and libraries under user /homevip/flexpart
#    ("ROOT_DIR")
#    To use gfortran version 4.9, add "gcc=4.9" to the make command, e.g.
#       'make -j ecmwf gcc=4.9',
13
#    also set environment variable LD_LIBRARY_PATH to point to compiler libraries
14
15
16
17
18
19
20
21
#
#    Makefile was modified to produce unified executable for both ECMWF and GFS meteo data formats
#    gributils were included to detect format of meteo data
#
#    Cpp directives USE_MPIINPLACE were added to three source files. The effect of these directives 
#    are to enable the MPI_IN_PLACE option only if compiled with a -DUSE_MPIINPLACE directive. 
#    Otherwise, a safer option (which requires the allocation of another array) is used by default. 
#    In makefile added the -x f95-cpp-input flag for compiling of cpp directives.
22
23
# 
#  USAGE
24
25
#    Compile serial FLEXPART 
#      make [-j] serial
26
#
27
28
#    Compile parallel FLEXPART 
#      make [-j] mpi
29
#     
30
31
#    Compile for debugging parallel FLEXPART
#      make [-j] mpi-dbg
32
33
#
################################################################################
Matthias Langer's avatar
 
Matthias Langer committed
34

35
## PROGRAMS
36
37
38
39
40
41
42
43
44
45
46
47
# Unified executable names
# The same executable is used for both ECMWF and GFS metdata

# Parallel processing executable
FLEXPART-MPI = FLEXPART_MPI

# Parallel processing executable with debugging info
FLEXPART-MPI-DBG = DBG_FLEXPART_MPI

# Serial processing executable
FLEXPART-SERIAL = FLEXPART

48

49
ifeq ($(gcc), 4.9)
50
# Compiled libraries under user ~flexpart, gfortran v4.9
51
52
53
54
55
56
57
58
	ROOT_DIR = /homevip/flexpart/

	F90	  = ${ROOT_DIR}/gcc-4.9.1/bin/gfortran
	MPIF90    = ${ROOT_DIR}/bin/mpifort

	INCPATH1  = ${ROOT_DIR}/gcc-4.9.1/include	
	INCPATH2  = ${ROOT_DIR}/include
	LIBPATH1 = ${ROOT_DIR}/lib
Espen Sollum's avatar
Espen Sollum committed
59

60
61
62
63
64
65
66
67
68
69
70
else ifeq ($(gcc), 5.4)
# Compiled libraries under user ~flexpart, gfortran v5.4
	ROOT_DIR = /homevip/flexpart/

	F90	  = /usr/bin/gfortran
	MPIF90    = /usr/bin/mpifort

	INCPATH1  = ${ROOT_DIR}/gcc-5.4.0/include	
	INCPATH2  = /usr/include
	LIBPATH1 = ${ROOT_DIR}/gcc-5.4.0/lib

71
72
73
74
75
else
# Default: System libraries at NILU, gfortran v4.6
	F90       = /usr/bin/gfortran
	MPIF90    = /usr/bin/mpif90.openmpi

76
	INCPATH1 = /xnilu_wrk/projects/FLEXPART/flex_wrk/bin64/grib_api/include
77
	INCPATH2 = /usr/include
78
	LIBPATH1 = /xnilu_wrk/projects/FLEXPART/flex_wrk/bin64/grib_api/lib
79
endif
80

81

82
83
84
85
# path to gributils used to detect meteodata format
VPATH = gributils/


86
87
## OPTIMIZATION LEVEL
O_LEV = 2 # [0,1,2,3,g,s,fast]
88
O_LEV_DBG = g # [0,g]
89
90

## LIBRARIES
91
LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper -lnetcdff # -fopenmp
92

Sabine's avatar
Sabine committed
93
94
#FFLAGS   = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -cpp -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV) $(FUSER) # -Warray-bounds -fcheck=all # -march=native
FFLAGS   = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -cpp -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV) $(FUSER)  -Warray-bounds -fcheck=all # -march=native
95

Sabine's avatar
Sabine committed
96
97
#DBGFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV_DBG) -g3 -ggdb3 -cpp -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV_DBG) -fbacktrace   -Wall  -fdump-core $(FUSER)   # -ffpe-trap=invalid,overflow,denormal,underflow,zero  -Warray-bounds -fcheck=all
DBGFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV_DBG) -g3 -ggdb3 -cpp -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV_DBG) -fbacktrace   -Wall  -fdump-core $(FUSER)  -Warray-bounds -fcheck=all
98

Espen Sollum's avatar
Espen Sollum committed
99
LDFLAGS  = $(FFLAGS) -L$(LIBPATH1) -Wl,-rpath,$(LIBPATH1) $(LIBS) #-L$(LIBPATH2)
100
LDDEBUG  = $(DBGFLAGS) -L$(LIBPATH1) $(LIBS) #-L$(LIBPATH2)
101

Matthias Langer's avatar
 
Matthias Langer committed
102
MODOBJS = \
103
par_mod.o    		com_mod.o \
Matthias Langer's avatar
 
Matthias Langer committed
104
105
106
107
conv_mod.o              hanna_mod.o \
interpol_mod.o          cmapf_mod.o \
unc_mod.o               oh_mod.o \
xmass_mod.o             flux_mod.o \
108
point_mod.o             outg_mod.o \
109
110
mean_mod.o	 	random_mod.o \
class_gribfile_mod.o
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126

MPI_MODOBJS = \
mpi_mod.o

## Serial versions (MPI version with same functionality and name '_mpi.f90' exists)
OBJECTS_SERIAL = \
	releaseparticles.o 	partoutput.o \
	conccalc.o \
	init_domainfill.o 	concoutput.o  \
	timemanager.o FLEXPART.o	\
	readpartpositions.o \
	partoutput_short.o		\
	concoutput_nest.o 	\
	boundcond_domainfill.o	\
	redist.o		\
	concoutput_surf.o	concoutput_surf_nest.o	\
127
	getfields.o \
128
	euler_rain.o \
Sabine's avatar
Sabine committed
129
	euler_rain_nests.o \
130
        readwind_ecmwf.o
131
132
133
134
135
136
137
138
139
140
141
142

## For MPI version 
OBJECTS_MPI = releaseparticles_mpi.o partoutput_mpi.o \
	conccalc_mpi.o \
	init_domainfill_mpi.o concoutput_mpi.o 	\
	timemanager_mpi.o FLEXPART_MPI.o	\
	readpartpositions_mpi.o		\
	partoutput_short_mpi.o	 	\
	concoutput_nest_mpi.o 		\
	boundcond_domainfill_mpi.o	\
	redist_mpi.o		\
	concoutput_surf_mpi.o	concoutput_surf_nest_mpi.o	\
143
144
	getfields_mpi.o \
        readwind_ecmwf_mpi.o 
Matthias Langer's avatar
 
Matthias Langer committed
145
146

OBJECTS = \
147
148
advance.o		initialize.o		\
writeheader.o		writeheader_txt.o  	\
149
writeprecip.o \
150
151
writeheader_surf.o     	assignland.o\
part0.o 		gethourlyOH.o\
Matthias Langer's avatar
 
Matthias Langer committed
152
153
caldate.o               partdep.o \
coordtrafo.o            psih.o \
154
155
raerod.o 		readcommand.o 	\
drydepokernel.o         readreceptors.o \
Matthias Langer's avatar
 
Matthias Langer committed
156
erf.o                   readavailable.o \
157
ew.o			readreleases.o  \
Sabine's avatar
Sabine committed
158
readdepo.o              get_vdep_prob.o   \
159
get_wetscav.o		readwind_gfs.o \
160
psim.o			outgrid_init.o 	\
161
outgrid_init_nest.o   	calcmatrix.o \
162
photo_O1D.o 		readlanduse.o \
Matthias Langer's avatar
 
Matthias Langer committed
163
164
interpol_wind.o         readoutgrid.o \
interpol_all.o          readpaths.o \
165
166
getrb.o                 obukhov.o \
getrc.o                 convmix.o \
Matthias Langer's avatar
 
Matthias Langer committed
167
getvdep.o               readspecies.o \
168
169
170
171
interpol_misslev.o      richardson.o \
scalev.o                verttransform_ecmwf.o \
pbl_profile.o           readOHfield.o \
juldate.o               verttransform_gfs.o \
Matthias Langer's avatar
 
Matthias Langer committed
172
173
interpol_vdep.o         interpol_rain.o \
hanna.o                 wetdepokernel.o \
174
calcpar.o               wetdepo.o \
Matthias Langer's avatar
 
Matthias Langer committed
175
hanna_short.o           windalign.o \
176
177
hanna1.o                gridcheck_ecmwf.o \
gridcheck_gfs.o         gridcheck_nests.o \
178
readwind_nests.o        calcpar_nests.o \
Matthias Langer's avatar
 
Matthias Langer committed
179
180
181
verttransform_nests.o   interpol_all_nests.o \
interpol_wind_nests.o   interpol_misslev_nests.o \
interpol_vdep_nests.o   interpol_rain_nests.o \
182
readageclasses.o        detectformat.o  \
Matthias Langer's avatar
 
Matthias Langer committed
183
184
calcfluxes.o            fluxoutput.o \
qvsat.o                 skplin.o \
185
convect43c.o            \
Matthias Langer's avatar
 
Matthias Langer committed
186
187
188
189
190
191
sort2.o                 distance.o \
centerofmass.o          plumetraj.o \
openouttraj.o           calcpv.o \
calcpv_nests.o          distance2.o \
clustering.o            interpol_wind_short.o \
interpol_wind_short_nests.o shift_field_0.o \
192
193
194
195
shift_field.o             \
openreceptors.o         \
readoutgrid_nest.o \
writeheader_nest.o writeheader_nest_surf.o \
Sabine's avatar
Sabine committed
196
wetdepokernel_nest.o calculate_watercycle.o\
Matthias Langer's avatar
 
Matthias Langer committed
197
198
199
drydepokernel_nest.o    zenithangle.o \
ohreaction.o            getvdep_nests.o \
initial_cond_calc.o     initial_cond_output.o \
200
201
202
203
204
205
dynamic_viscosity.o     get_settling.o	\
initialize_cbl_vel.o	re_initialize_particle.o \
cbl.o			netcdf_output_mod.o

%.o: %.mod

206
207
208
# serial executable
serial: $(FLEXPART-SERIAL)
serial: FC := $(F90)
209

210
211
212
# parallel processing executable
mpi: $(FLEXPART-MPI)
mpi: FC := $(MPIF90)
213

214
215
216
217
218
# parallel processing with debugging info
mpi-dbg: $(FLEXPART-MPI-DBG)
mpi-dbg: FFLAGS := $(DBGFLAGS)
mpi-dbg: LDFLAGS:= $(LDDEBUG)
mpi-dbg: FC := $(MPIF90)
219

220
221
$(FLEXPART-SERIAL): $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL)
	+$(FC) -o $@ $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(LDFLAGS)
Matthias Langer's avatar
 
Matthias Langer committed
222

223
$(FLEXPART-MPI): $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI)
224
	+$(FC) -o $@ $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI) \
225
	$(LDFLAGS)
226

227
$(FLEXPART-MPI-DBG): $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI)
228
	+$(FC) -o $@ $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI) \
229
	$(LDFLAGS)
Matthias Langer's avatar
 
Matthias Langer committed
230
231

%.o: %.f90
232
	+$(FC) -c $(FFLAGS) $<
Matthias Langer's avatar
 
Matthias Langer committed
233
234

clean:
235
	\rm -f *.o *.mod
Matthias Langer's avatar
 
Matthias Langer committed
236

237
cleanall:
238
239
	\rm -f *.o *.mod $(FLEXPART-MPI) $(FLEXPART-MPI-DBG) $(FLEXPART-SERIAL)

240
241
242
243

.SUFFIXES = $(SUFFIXES) .f90

## DEPENDENCIES
Sabine's avatar
Sabine committed
244
get_vdep_prob.o: cmapf_mod.o com_mod.o hanna_mod.o interpol_mod.o par_mod.o \
245
	point_mod.o random_mod.o
246
247
248
249
250
251
252
advance.o: cmapf_mod.o com_mod.o hanna_mod.o interpol_mod.o par_mod.o \
	point_mod.o random_mod.o
assignland.o: com_mod.o par_mod.o
boundcond_domainfill.o: com_mod.o par_mod.o point_mod.o random_mod.o
boundcond_domainfill_mpi.o: com_mod.o mpi_mod.o par_mod.o point_mod.o \
	random_mod.o
calcfluxes.o: com_mod.o flux_mod.o outg_mod.o par_mod.o
253
254
calcmatrix.o: com_mod.o conv_mod.o par_mod.o class_gribfile_mod.o
calcpar.o: com_mod.o par_mod.o class_gribfile_mod.o
255
256
257
258
259
260
261
262
263
264
265
calcpar_nests.o: com_mod.o par_mod.o
calcpv.o: com_mod.o par_mod.o
calcpv_nests.o: com_mod.o par_mod.o
caldate.o: par_mod.o
cbl.o: com_mod.o par_mod.o
centerofmass.o: par_mod.o
clustering.o: par_mod.o
cmapf_mod.o: par_mod.o
com_mod.o: par_mod.o
conccalc.o: com_mod.o outg_mod.o par_mod.o unc_mod.o
conccalc_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o unc_mod.o
266
concoutput.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
267
concoutput_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o point_mod.o \
268
269
	unc_mod.o mean_mod.o
concoutput_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
270
concoutput_nest_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o point_mod.o \
271
272
	unc_mod.o mean_mod.o
concoutput_surf.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
273
concoutput_surf_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o point_mod.o \
274
275
	unc_mod.o mean_mod.o
concoutput_surf_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
276
concoutput_surf_nest_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o \
277
	point_mod.o unc_mod.o mean_mod.o
278
279
conv_mod.o: par_mod.o
convect43c.o: conv_mod.o par_mod.o
280
convmix.o: com_mod.o conv_mod.o flux_mod.o par_mod.o class_gribfile_mod.o
281
coordtrafo.o: com_mod.o par_mod.o point_mod.o
282
detectformat.o: com_mod.o par_mod.o class_gribfile_mod.o
283
284
285
286
287
distance.o: par_mod.o
distance2.o: par_mod.o
drydepokernel.o: com_mod.o par_mod.o unc_mod.o
drydepokernel_nest.o: com_mod.o par_mod.o unc_mod.o
erf.o: par_mod.o
288
FLEXPART.o: com_mod.o conv_mod.o par_mod.o point_mod.o random_mod.o netcdf_output_mod.o class_gribfile_mod.o
289
FLEXPART_MPI.o: com_mod.o conv_mod.o mpi_mod.o par_mod.o point_mod.o \
290
	random_mod.o netcdf_output_mod.o class_gribfile_mod.o
291
292
fluxoutput.o: com_mod.o flux_mod.o outg_mod.o par_mod.o
get_settling.o: com_mod.o par_mod.o
293
getfields.o: com_mod.o par_mod.o class_gribfile_mod.o
294
euler_rain.o: com_mod.o par_mod.o
Sabine's avatar
Sabine committed
295
euler_rain_nests.o: com_mod.o par_mod.o
296
getfields_mpi.o: com_mod.o par_mod.o mpi_mod.o class_gribfile_mod.o
297
298
299
300
301
gethourlyOH.o: com_mod.o oh_mod.o par_mod.o
getrb.o: par_mod.o
getrc.o: com_mod.o par_mod.o
getvdep.o: com_mod.o par_mod.o
getvdep_nests.o: com_mod.o par_mod.o
302
gridcheck_ecmwf.o: cmapf_mod.o com_mod.o conv_mod.o par_mod.o
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
gridcheck_emos.o: com_mod.o conv_mod.o par_mod.o
gridcheck_fnl.o: cmapf_mod.o com_mod.o conv_mod.o par_mod.o
gridcheck_gfs.o: cmapf_mod.o com_mod.o conv_mod.o par_mod.o
gridcheck_gfs_emos.o: com_mod.o conv_mod.o par_mod.o
gridcheck_nests.o: com_mod.o par_mod.o
gridcheck_nests_emos.o: com_mod.o par_mod.o
gridcheck_orig_ecmwf.o: cmapf_mod.o com_mod.o conv_mod.o par_mod.o
hanna.o: com_mod.o hanna_mod.o par_mod.o
hanna1.o: com_mod.o hanna_mod.o par_mod.o
hanna_short.o: com_mod.o hanna_mod.o par_mod.o
init_domainfill.o: com_mod.o par_mod.o point_mod.o random_mod.o
init_domainfill_mpi.o: com_mod.o mpi_mod.o par_mod.o point_mod.o \
	random_mod.o
initial_cond_calc.o: com_mod.o outg_mod.o par_mod.o unc_mod.o
initial_cond_output.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o
initialize.o: com_mod.o hanna_mod.o interpol_mod.o par_mod.o random_mod.o
initialize_cbl_vel.o: com_mod.o par_mod.o random_mod.o
interpol_all.o: com_mod.o hanna_mod.o interpol_mod.o par_mod.o
interpol_all_nests.o: com_mod.o hanna_mod.o interpol_mod.o par_mod.o
interpol_misslev.o: com_mod.o hanna_mod.o interpol_mod.o par_mod.o
interpol_misslev_nests.o: com_mod.o hanna_mod.o interpol_mod.o par_mod.o
interpol_mod.o: par_mod.o
interpol_rain.o: par_mod.o
interpol_rain_nests.o: par_mod.o
interpol_vdep.o: com_mod.o interpol_mod.o par_mod.o
interpol_vdep_nests.o: com_mod.o interpol_mod.o par_mod.o
interpol_wind.o: com_mod.o interpol_mod.o par_mod.o
interpol_wind_nests.o: com_mod.o interpol_mod.o par_mod.o
interpol_wind_short.o: com_mod.o interpol_mod.o par_mod.o
interpol_wind_short_nests.o: com_mod.o interpol_mod.o par_mod.o
juldate.o: par_mod.o
334
mean_mod.o: par_mod.o
335
mpi_mod.o: com_mod.o par_mod.o unc_mod.o
336
netcdf_output_mod.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
337
obukhov.o: par_mod.o class_gribfile_mod.o
338
339
340
ohreaction.o: com_mod.o oh_mod.o par_mod.o
openouttraj.o: com_mod.o par_mod.o point_mod.o
openreceptors.o: com_mod.o par_mod.o
341
outg_mod.o: par_mod.o
342
343
344
345
346
347
348
349
350
outgrid_init.o: com_mod.o flux_mod.o oh_mod.o outg_mod.o par_mod.o unc_mod.o
outgrid_init_nest.o: com_mod.o outg_mod.o par_mod.o unc_mod.o
part0.o: par_mod.o
partdep.o: par_mod.o
partoutput.o: com_mod.o par_mod.o
partoutput_mpi.o: com_mod.o mpi_mod.o par_mod.o
partoutput_short.o: com_mod.o par_mod.o
partoutput_short_mpi.o: com_mod.o mpi_mod.o par_mod.o
pbl_profile.o: par_mod.o
351
plumetraj.o: com_mod.o par_mod.o point_mod.o mean_mod.o
352
353
354
355
356
357
358
359
360
psih.o: par_mod.o
psim.o: par_mod.o
raerod.o: par_mod.o
re_initialize_particle.o: com_mod.o par_mod.o
readageclasses.o: com_mod.o par_mod.o
readavailable.o: com_mod.o par_mod.o
readcommand.o: com_mod.o par_mod.o
readdepo.o: com_mod.o par_mod.o
readlanduse.o: com_mod.o par_mod.o
361
#readlanduse_int1.o: com_mod.o par_mod.o
362
363
364
365
366
367
368
369
370
readOHfield.o: com_mod.o oh_mod.o par_mod.o
readoutgrid.o: com_mod.o outg_mod.o par_mod.o
readoutgrid_nest.o: com_mod.o outg_mod.o par_mod.o
readpartpositions.o: com_mod.o par_mod.o random_mod.o
readpartpositions_mpi.o: com_mod.o mpi_mod.o par_mod.o random_mod.o
readpaths.o: com_mod.o par_mod.o
readreceptors.o: com_mod.o par_mod.o
readreleases.o: com_mod.o par_mod.o point_mod.o xmass_mod.o
readspecies.o: com_mod.o par_mod.o
371
readwind_ecmwf.o: com_mod.o par_mod.o
372
373
374
readwind_emos.o: com_mod.o par_mod.o
readwind_gfs.o: com_mod.o par_mod.o
readwind_gfs_emos.o: com_mod.o par_mod.o
375
readwind_ecmwf_mpi.o: com_mod.o mpi_mod.o par_mod.o
376
377
378
379
380
381
382
383
readwind_nests.o: com_mod.o par_mod.o
readwind_nests_emos.o: com_mod.o par_mod.o
redist.o: com_mod.o conv_mod.o par_mod.o random_mod.o
redist_mpi.o: com_mod.o conv_mod.o mpi_mod.o par_mod.o random_mod.o
releaseparticles.o: com_mod.o par_mod.o point_mod.o random_mod.o \
	xmass_mod.o
releaseparticles_mpi.o: com_mod.o mpi_mod.o par_mod.o point_mod.o \
	random_mod.o xmass_mod.o
384
richardson.o: par_mod.o class_gribfile_mod.o
385
386
387
388
389
390
scalev.o: par_mod.o
shift_field.o: par_mod.o
shift_field_0.o: par_mod.o
timemanager.o: com_mod.o flux_mod.o netcdf_output_mod.o oh_mod.o outg_mod.o \
	par_mod.o point_mod.o unc_mod.o xmass_mod.o
timemanager_mpi.o: com_mod.o flux_mod.o mpi_mod.o oh_mod.o outg_mod.o \
391
	par_mod.o point_mod.o unc_mod.o xmass_mod.o netcdf_output_mod.o	
392
unc_mod.o: par_mod.o
393
verttransform_ecmwf.o: cmapf_mod.o com_mod.o par_mod.o 
394
395
verttransform_gfs.o: cmapf_mod.o com_mod.o par_mod.o
verttransform_nests.o: com_mod.o par_mod.o
Sabine's avatar
Sabine committed
396
get_wetscav.o: com_mod.o par_mod.o point_mod.o
397
398
399
400
wetdepo.o: com_mod.o par_mod.o point_mod.o
wetdepokernel.o: com_mod.o par_mod.o unc_mod.o
wetdepokernel_nest.o: com_mod.o par_mod.o unc_mod.o
writeheader.o: com_mod.o outg_mod.o par_mod.o point_mod.o
401
writeprecip.o: com_mod.o par_mod.o point_mod.o
402
403
404
405
406
writeheader_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o
writeheader_nest_surf.o: com_mod.o outg_mod.o par_mod.o point_mod.o
writeheader_surf.o: com_mod.o outg_mod.o par_mod.o point_mod.o
writeheader_txt.o: com_mod.o outg_mod.o par_mod.o point_mod.o
zenithangle.o: par_mod.o