r5152 | xinzhang | 2011-09-26 21:04:33 -0700 (Mon, 26 Sep 2011) | 3 lines
[wrffire.git] / wrfv2_fire / arch / postamble_new
blob30a83ba5a91dd799a431f2f7e2c6897ac7137dff
1 ######################
2 # POSTAMBLE
4 FGREP = fgrep -iq
6 ARCHFLAGS       =    $(COREDEFS) -DIWORDSIZE=$(IWORDSIZE) -DDWORDSIZE=$(DWORDSIZE) -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=$(LWORDSIZE) \
7                      $(ARCH_LOCAL) \
8                      $(DA_ARCHFLAGS) \
9                       CONFIGURE_DMPARALLEL \
10                       CONFIGURE_STUBMPI \
11                       CONFIGURE_NETCDF_FLAG \
12                       CONFIGURE_PNETCDF_FLAG \
13                       CONFIGURE_ESMF_FLAG \
14                       CONFIGURE_GRIB2_FLAG \
15                       CONFIGURE_RTTOV_FLAG \
16                       CONFIGURE_CRTM_FLAG \
17                       CONFIGURE_4DVAR_FLAG \
18                       CONFIGURE_WAVELET_FLAG \
19                       CONFIGURE_NESTOPT \
20                       -DUSE_ALLOCATABLES \
21                       -DGRIB1 \
22                       -DINTIO \
23                       -DLIMIT_ARGS \
24                       -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) \
25                       -DMAX_DOMAINS_F=$(MAX_DOMAINS) \
26                       -DMAX_HISTORY=$(MAX_HISTORY) \
27                       -DNMM_NEST=$(WRF_NMM_NEST)
28 CFLAGS          =    $(CFLAGS_LOCAL) CONFIGURE_DMPARALLEL CONFIGURE_STUBMPI \
29                       -DMAX_HISTORY=$(MAX_HISTORY)
30 FCFLAGS         =    $(FCOPTIM) $(FCBASEOPTS)
31 ESMF_LIB_FLAGS  =    ESMFLIBFLAG
32 # ESMF 5 -- these are defined in esmf.mk, included above
33 #NOWIN ESMF_IO_LIB     =    ESMFIOLIB
34 ESMF_IO_LIB_EXT =    ESMFIOEXTLIB
35 INCLUDE_MODULES =    $(MODULE_SRCH_FLAG) \
36                      $(ESMF_MOD_INC) $(ESMF_LIB_FLAGS) \
37                       -I$(WRF_SRC_ROOT_DIR)/main \
38                       -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf \
39                       -I$(WRF_SRC_ROOT_DIR)/external/io_int \
40                       -I$(WRF_SRC_ROOT_DIR)/frame \
41                       -I$(WRF_SRC_ROOT_DIR)/share \
42                       -I$(WRF_SRC_ROOT_DIR)/phys \
43                       -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc \
44                       -I$(NETCDFPATH)/include \
45                       CONFIGURE_RTTOV_INC
46 REGISTRY        =    Registry
48 #NOWIN LIB_BUNDLED     = \
49 #NOWIN                      $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5/libfftpack.a \
50 #NOWIN                      $(WRF_SRC_ROOT_DIR)/external/io_grib1/libio_grib1.a \
51 #NOWIN                      $(WRF_SRC_ROOT_DIR)/external/io_grib_share/libio_grib_share.a \
52 #NOWIN                      $(WRF_SRC_ROOT_DIR)/external/io_int/libwrfio_int.a \
53 #NOWIN                      $(ESMF_IO_LIB) \
54 #NOWIN                      CONFIGURE_COMMS_LIB \
55 #NOWIN                      $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o \
56 #NOWIN                      $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o 
58 #NOWIN LIB_EXTERNAL    = \
59 #NOWIN                      CONFIGURE_NETCDF_LIB_PATH CONFIGURE_PNETCDF_LIB_PATH CONFIGURE_GRIB2_LIB CONFIGURE_ATMOCN_LIB
61 LIB             =    $(LIB_BUNDLED) $(LIB_EXTERNAL) $(LIB_LOCAL)
62 LDFLAGS         =    $(OMP) $(FCFLAGS) $(LDFLAGS_LOCAL) CONFIGURE_LDFLAGS
63 ENVCOMPDEFS     =    CONFIGURE_COMPILEFLAGS
64 CPPFLAGS        =    $(ARCHFLAGS) $(ENVCOMPDEFS) -I$(LIBINCLUDE) $(TRADFLAG) CONFIGURE_COMMS_INCLUDE
65 NETCDFPATH      =    CONFIGURE_NETCDF_PATH
66 PNETCDFPATH     =    CONFIGURE_PNETCDF_PATH
68 bundled:  wrf_ioapi_includes wrfio_grib_share wrfio_grib1 wrfio_int esmf_time fftpack CONFIGURE_ATMOCN
69 external:  CONFIGURE_WRFIO_NF CONFIGURE_WRFIO_PNF CONFIGURE_WRFIO_GRIB2 CONFIGURE_COMMS_EXTERNAL $(ESMF_TARGET)
71 ######################
72 externals: bundled external
74 gen_comms_serial :
75         ( /bin/rm -f $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
77 module_dm_serial :
78         ( if [ ! -e module_dm.F ] ; then /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F ; fi )
80 gen_comms_rsllite :
81         ( if [ ! -e $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ] ; then \
82           /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
83           cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; fi )
85 module_dm_rsllite :
86         ( if [ ! -e module_dm.F ] ; then /bin/cp module_dm_warning module_dm.F ; \
87           cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F ; fi )
89 wrfio_nf : 
90         ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
91           make NETCDFPATH="$(NETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
92           CC="$(SCC)" CFLAGS="$(CFLAGS)" \
93           FC="$(SFC) $(PROMOTION) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
95 wrfio_pnf : 
96         ( cd $(WRF_SRC_ROOT_DIR)/external/io_pnetcdf ; \
97           make NETCDFPATH="$(PNETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP) $(ARCHFLAGS)" \
98           FC="$(FC) $(PROMOTION) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
100 wrfio_grib_share :
101         ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
102           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
103           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive) 
105 wrfio_grib1 :
106         ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
107           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
108           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive)
110 wrfio_grib2 :
111         ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
112           make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" \
113           CPP="$(CPP)" \
114           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
115           FIXED="$(FORMAT_FIXED)" archive)
117 wrfio_int : 
118         ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
119           make CC="$(CC)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
120           FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" FGREP="$(FGREP)" \
121           TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ARCHFLAGS="$(ARCHFLAGS)" all )
123 esmf_time : 
124         ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
125           make FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
126           CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(ARCHFLAGS) $(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
128 fftpack :
129         ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
130           make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
132 atm_ocn :
133         ( cd $(WRF_SRC_ROOT_DIR)/external/atm_ocn ; \
134           make CC="$(SCC)" CFLAGS="$(CFLAGS) " RM="$(RM)" RANLIB="$(RANLIB)" \
135           CPP="$(CPP)" \
136           FC="$(DM_FC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
137           FIXED="$(FORMAT_FIXED)" )
139 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
140         ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CC="$(CC) $(CFLAGS)" \
141           FC="$(FC) $(FCFLAGS) $(PROMOTION) $(BYTESWAPIO)" \
142           CPP="$(CPP) -I. $(ARCHFLAGS) $(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ;\
143           $(RANLIB) $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a )
145 ######################
146 #       Macros, these should be generic for all machines
148 LN      =       ln -sf
149 MAKE    =       make -i -r
150 RM      =       rm -f
153 # These sub-directory builds are identical across all architectures
155 wrf_ioapi_includes :
156         ( cd $(WRF_SRC_ROOT_DIR)/external/ioapi_share ; \
157           $(MAKE) NATIVE_RWORDSIZE="$(NATIVE_RWORDSIZE)" RWORDSIZE="$(RWORDSIZE)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
159 wrfio_esmf :
160         ( cd $(WRF_SRC_ROOT_DIR)/external/io_esmf ; \
161           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) $(ESMF_MOD_INC)" \
162           RANLIB="$(RANLIB)" CPP="$(CPP) $(POUND_DEF) " AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
164 #       There is probably no reason to modify these rules
166 .F.i:
167         $(RM) $@
168         $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $@
169         mv $*.i $(DEVTOP)/pick/$*.f90
170         cp $*.F $(DEVTOP)/pick
172 .F.o:
173         $(RM) $@
174         $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.F  > $*.bb
175         $(SED_FTN) $*.bb | $(CPP) > $*.f90
176         $(RM) $*.b $*.bb
177         @ if echo $(ARCHFLAGS) | $(FGREP) 'DVAR4D'; then \
178           echo COMPILING $*.F for 4DVAR ; \
179           $(WRF_SRC_ROOT_DIR)/var/build/da_name_space.pl $*.f90 > $*.f90.tmp ; \
180           mv $*.f90.tmp $*.f90 ; \
181         fi
182         if $(FGREP) '!$$OMP' $*.f90 ; then \
183           if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITH OMP ; fi ; \
184           $(FC) -o $@ -c $(FCFLAGS) $(OMP) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90 ; \
185         else \
186           if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITHOUT OMP ; fi ; \
187           $(FC) -o $@ -c $(FCFLAGS) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90 ; \
188         fi
189         
191 .F.f90:
192         $(RM) $@
193         $(SED_FTN) $*.F > $*.b 
194         $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b  > $@
195         $(RM) $*.b
197 .f90.o:
198         $(RM) $@
199         $(FC) -o $@ -c $(FCFLAGS) $(PROMOTION) $(FCSUFFIX) $*.f90
201 setfeenv.o : setfeenv.c
202         $(RM) $@
203         $(CCOMP) -o $@ -c $(CFLAGS) $(OMPCC) $*.c
205 .c.o:
206         $(RM) $@
207         $(CC) -o $@ -c $(CFLAGS) $*.c