Merge branch 'master' into devel
[wrffire.git] / standalone / Makefile
blob0cea4f711ccf8757d08663e8b0898e68afc00139
1 # fefines FC, FCFLAGS, FFREE
2 include make.inc
3 DEFS =
4 WRF = ../wrfv2_fire
5 FPFLAGS= -I$(NETCDF)/include -I.
6 LDFLAGS = -L$(NETCDF)/lib -lnetcdff -lnetcdf
7 #LDFLAGS = `$(NETCDF)/bin/nc-config --flibs`
8 FFLAGS=$(FPFLAGS) $(FCFLAGS) $(FFREE)
9 INC = $(WRF)/inc
12 MAKEFILE=Makefile
14 %.o: $(WRF)/phys/%.F
15 $(FP) $(FFLAGS) $(DEFS) -E $(WRF)/phys/$*.F | sed 's/^#.*//' > $*.f90
16 $(FC) -c $(FFLAGS) $*.f90
18 %.o: %.F
19 $(FP) $(FFLAGS) $(DEFS) -E $*.F | sed 's/^#.*//' > $*.f90
20 $(FC) -c $(FFLAGS) $*.f90
22 ATM_OBJ = \
23 module_domain.o \
24 wrf_netcdf.o \
25 module_configure.o \
26 module_fr_sfire_model.o \
27 module_fr_sfire_core.o \
28 module_fr_sfire_phys.o \
29 module_fr_sfire_atm.o \
30 module_fr_sfire_util.o \
31 wrf_fakes.o
34 FIRE_OBJ = \
35 module_domain.o \
36 wrf_netcdf.o \
37 module_configure.o \
38 module_fr_sfire_model.o \
39 module_fr_sfire_core.o \
40 module_fr_sfire_phys.o \
41 module_fr_sfire_atm.o \
42 module_fr_sfire_util.o \
43 module_fr_sfire_driver.o \
44 wrf_fakes.o
46 INIT_OBJ = \
47 wrf_netcdf.o \
48 module_configure.o \
49 module_fr_sfire_util.o \
50 wrf_fakes.o
52 FUELS_OBJ = \
53 fuels_main.o \
54 module_fr_sfire_phys.o \
55 module_fr_sfire_util.o \
56 wrf_fakes.o
59 NAMELIST= \
60 namelist_statements.inc \
61 namelist_defaults.inc \
62 namelist_defines.inc \
63 namelist_defines2.inc \
64 config_assigns.inc
66 FUEL_INTERP_OBJ = \
67 fuel_interp_test_main.o \
68 module_fr_sfire_core.o \
69 module_fr_sfire_phys.o \
70 module_fr_sfire_util.o \
71 wrf_fakes.o
73 MOISTURE_TEST_OBJ = \
74 moisture_test_main.o \
75 module_fr_sfire_phys.o \
76 module_fr_sfire_util.o \
77 wrf_fakes.o
79 MOISTURE_OBJ = \
80 moisture_main.o \
81 module_fr_sfire_phys.o \
82 module_fr_sfire_util.o \
83 wrf_fakes.o
85 .PHONY: all
88 #.PHONY: all
90 default: fire
92 moisture: moisture.exe
93 moisture.exe: $(MAKEFILE) libesmf_time.a $(MOISTURE_OBJ)
94 $(FC) $(FCFLAGS) -o moisture.exe $(MOISTURE_OBJ) -L. -lesmf_time $(LDFLAGS)
95 moisture_test: moisture_test.exe
96 moisture_test.exe: $(MAKEFILE) $(MOISTURE_TEST_OBJ)
97 $(FC) $(FCFLAGS) -o moisture_test.exe $(MOISTURE_TEST_OBJ)
100 fuel: fuel_interp_test.exe
101 fuel_interp_test: fuel_interp_test.exe
103 fuel_interp_test.exe: $(MAKEFILE) $(FUEL_INTERP_OBJ)
104 $(FC) $(FCFLAGS) -o fuel_interp_test.exe $(FUEL_INTERP_OBJ)
106 all: fire init
108 atm: atm.exe
109 cd ../wrfv2_fire/test/em_fire; rm -f atm.exe; ln -s ../../../standalone/atm.exe atm.exe
111 fire: fire.exe
112 cd ../wrfv2_fire/test/em_fire; rm -f fire.exe; ln -s ../../../standalone/fire.exe fire.exe
114 init: init.exe
115 cd ../wrfv2_fire/test/em_fire; rm -f init.exe; ln -s ../../../standalone/init.exe init.exe
117 atm.exe: $(MAKEFILE) atm.o $(FIRE_OBJ)
118 $(FC) $(FCFLAGS) -o atm.exe fire.o $(FIRE_OBJ) $(LDFLAGS)
120 fire.exe: $(MAKEFILE) fire.o $(FIRE_OBJ)
121 $(FC) $(FCFLAGS) -o fire.exe fire.o $(FIRE_OBJ) $(LDFLAGS)
123 init.exe: $(MAKEFILE) init.o $(INIT_OBJ)
124 $(FC) $(FCFLAGS) -o init.exe init.o $(INIT_OBJ) $(LDFLAGS)
126 fuels: fuels.exe
128 fuels.exe: $(MAKEFILE) $(FUELS_OBJ)
129 $(FC) $(FCFLAGS) $(LDFLAGS) -o fuels.exe $(FUELS_OBJ) $(LDFLAGS)
131 # for the order of generating modules
133 moisture_test_main.o: $(MAKEFILE) \
134 module_fr_sfire_phys.o \
135 module_fr_sfire_util.o
137 moisture_main.o: $(MAKEFILE) \
138 module_fr_sfire_core.o \
139 module_fr_sfire_util.o
141 fire.o: $(MAKEFILE) \
142 module_fr_sfire_model.o \
143 module_fr_sfire_core.o \
144 module_fr_sfire_driver.o \
145 module_domain.o \
146 module_configure.o \
147 wrf_fakes.o \
148 wrf_netcdf.o
150 init.o: $(MAKEFILE) \
151 module_configure.o \
152 wrf_netcdf.o \
153 module_fr_sfire_util.o
155 fuel_interp_test_main.o: $(MAKEFILE) \
156 module_fr_sfire_phys.o \
157 module_fr_sfire_util.o
159 model_fuel_interp_test.o: $(MAKEFILE) \
160 module_fr_sfire_core.o \
161 module_fr_sfire_util.o \
162 wrf_namelist.o \
163 wrf_netcdf.o
165 module_fr_sfire_model.o: $(MAKEFILE) \
166 module_fr_sfire_core.o \
167 module_fr_sfire_util.o
169 module_fr_sfire_core.o: $(MAKEFILE) \
170 module_fr_sfire_phys.o \
171 module_fr_sfire_util.o
173 module_fr_sfire_atm.o: \
174 module_fr_sfire_phys.o \
175 module_fr_sfire_util.o
177 module_fr_sfire_phys.o: $(MAKEFILE) \
178 module_fr_sfire_util.o
180 module_fr_sfire_util.o: $(MAKEFILE) \
181 wrf_fakes.o
183 wrf_netcdf.o: $(MAKEFILE) \
184 module_fr_sfire_util.o
186 module_fr_sfire_driver.o: $(MAKEFILE) \
187 sfire_id.inc \
188 module_domain.o \
189 module_configure.o \
190 module_fr_sfire_phys.o \
191 module_fr_sfire_model.o \
192 module_fr_sfire_atm.o \
193 module_fr_sfire_util.o
195 module_configure.o: $(MAKEFILE) $(NAMELIST) \
196 wrf_fakes.o
198 sfire_id.inc: __always
199 chmod +x commit_hash
200 ./commit_hash > sfire_id.inc
201 cat sfire_id.inc
203 fuels_main.o: $(MAKEFILE) \
204 module_fr_sfire_phys.o \
205 module_fr_sfire_util.o \
206 wrf_fakes.o
208 __always:
211 # build rules for ESMF time support
212 ESMF_OBJS=ESMF_Alarm.o ESMF_BaseTime.o ESMF_Time.o \
213 ESMF_Base.o ESMF_Calendar.o ESMF_Fraction.o \
214 ESMF_TimeInterval.o ESMF_Stubs.o ESMF_Clock.o Meat.o \
215 ESMF_AlarmClock.o ESMF_Mod.o
217 libesmf_time.a: $(ESMF_OBJS)
218 $(RM) $@
219 $(AR) ru $@ $^
221 ESMF_Alarm.o : ESMF_BaseTime.o ESMF_Time.o ESMF_TimeInterval.o
222 ESMF_BaseTime.o : ESMF_Base.o
223 ESMF_Time.o : ESMF_BaseTime.o ESMF_TimeInterval.o ESMF_Calendar.o \
224 ESMF_Stubs.o
225 ESMF_Base.o :
226 ESMF_Calendar.o : ESMF_BaseTime.o
227 ESMF_Fraction.o : ESMF_BaseTime.o
228 ESMF_TimeInterval.o : ESMF_BaseTime.o ESMF_Calendar.o ESMF_Fraction.o
229 Meat.o : ESMF_Alarm.o ESMF_BaseTime.o ESMF_Clock.o ESMF_Time.o \
230 ESMF_Base.o ESMF_Calendar.o ESMF_Fraction.o \
231 ESMF_TimeInterval.o
232 ESMF_Mod.o : ESMF_Alarm.o ESMF_BaseTime.o ESMF_Clock.o ESMF_Time.o \
233 ESMF_Base.o ESMF_Calendar.o ESMF_Fraction.o \
234 ESMF_TimeInterval.o Meat.o ESMF_Stubs.o ESMF_AlarmClock.o
235 ESMF_AlarmClock.o : ESMF_Alarm.o ESMF_Clock.o
236 ESMF_Clock.o : ESMF_BaseTime.o ESMF_Time.o ESMF_TimeInterval.o
237 $(ESMF_OBJS) : %.o : $(WRF)/external/esmf_time_f90/%.F90
238 $(FC) -c $< -I$(WRF)/external/esmf_time_f90 -I. -DMAX_HISTORY=25 -o $@
240 INCFILES = $(INC)/config_assigns.inc $(INC)/namelist_defaults.inc $(INC)/namelist_defines.inc $(INC)/namelist_defines2.inc $(INC)/namelist_statements.inc
241 sync_inc: $(INCFILES)
242 cp $(INCFILES) .
244 clean:
245 rm -f *.mod *.o *.f90 *.s *.exe *.a