wrf svn trunk commit r4103
[wrffire.git] / wrfv2_fire / arch / postamble_new
blobf2efab73ac4403250b5a8ca0988f54475dc2ff63
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_NESTOPT \
18                       -DGRIB1 \
19                       -DINTIO \
20                       -DLIMIT_ARGS \
21                       -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) \
22                       -DMAX_DOMAINS_F=$(MAX_DOMAINS) \
23                       -DMAX_HISTORY=$(MAX_HISTORY) \
24                       -DNMM_NEST=$(WRF_NMM_NEST)
25 CFLAGS          =    $(CFLAGS_LOCAL) CONFIGURE_DMPARALLEL CONFIGURE_STUBMPI \
26                       -DMAX_HISTORY=$(MAX_HISTORY)
27 FCFLAGS         =    $(FCOPTIM) $(FCBASEOPTS)
28 ESMF_LIB_FLAGS  =    ESMFLIBFLAG
29 #NOWIN ESMF_IO_LIB     =    ESMFIOLIB
30 ESMF_IO_LIB_EXT =    ESMFIOEXTLIB
31 INCLUDE_MODULES =    $(MODULE_SRCH_FLAG) \
32                      $(ESMF_MOD_INC) $(ESMF_LIB_FLAGS) \
33                       -I$(WRF_SRC_ROOT_DIR)/main \
34                       -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf \
35                       -I$(WRF_SRC_ROOT_DIR)/external/io_int \
36                       -I$(WRF_SRC_ROOT_DIR)/frame \
37                       -I$(WRF_SRC_ROOT_DIR)/share \
38                       -I$(WRF_SRC_ROOT_DIR)/phys \
39                       -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc \
40                       CONFIGURE_CRTM_INC \
41                       CONFIGURE_RTTOV_INC
42 REGISTRY        =    Registry
44 #NOWIN LIB_BUNDLED     = \
45 #NOWIN                      $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5/libfftpack.a \
46 #NOWIN                      $(WRF_SRC_ROOT_DIR)/external/io_grib1/libio_grib1.a \
47 #NOWIN                      $(WRF_SRC_ROOT_DIR)/external/io_grib_share/libio_grib_share.a \
48 #NOWIN                      $(WRF_SRC_ROOT_DIR)/external/io_int/libwrfio_int.a \
49 #NOWIN                      $(ESMF_IO_LIB) \
50 #NOWIN                      CONFIGURE_COMMS_LIB \
51 #NOWIN                      $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o \
52 #NOWIN                      $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o 
54 #NOWIN LIB_EXTERNAL    = \
55 #NOWIN                      CONFIGURE_NETCDF_LIB_PATH CONFIGURE_PNETCDF_LIB_PATH CONFIGURE_GRIB2_LIB CONFIGURE_ATMPOM_LIB
57 LIB             =    $(LIB_BUNDLED) $(LIB_EXTERNAL) $(LIB_LOCAL)
58 LDFLAGS         =    $(OMP) $(FCFLAGS) $(LDFLAGS_LOCAL) CONFIGURE_LDFLAGS
59 ENVCOMPDEFS     =    CONFIGURE_COMPILEFLAGS
60 CPPFLAGS        =    $(ARCHFLAGS) $(ENVCOMPDEFS) -I$(LIBINCLUDE) $(TRADFLAG) CONFIGURE_COMMS_INCLUDE
61 NETCDFPATH      =    CONFIGURE_NETCDF_PATH
62 PNETCDFPATH     =    CONFIGURE_PNETCDF_PATH
64 bundled:  wrf_ioapi_includes wrfio_grib_share wrfio_grib1 wrfio_int esmf_time fftpack CONFIGURE_ATMPOM
65 external:  CONFIGURE_WRFIO_NF CONFIGURE_WRFIO_PNF CONFIGURE_WRFIO_GRIB2 CONFIGURE_COMMS_EXTERNAL $(ESMF_TARGET)
67 ######################
68 externals: bundled external
70 gen_comms_serial :
71         ( /bin/rm -f $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
73 module_dm_serial :
74         ( if [ ! -e module_dm.F ] ; then /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F ; fi )
76 gen_comms_rsllite :
77         ( if [ ! -e $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ] ; then \
78           /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
79           cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; fi )
81 module_dm_rsllite :
82         ( if [ ! -e module_dm.F ] ; then /bin/cp module_dm_warning module_dm.F ; \
83           cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F ; fi )
85 wrfio_nf : 
86         ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
87           make NETCDFPATH="$(NETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
88           CC="$(SCC)" CFLAGS="$(CFLAGS)" \
89           FC="$(SFC) $(PROMOTION) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
91 wrfio_pnf : 
92         ( cd $(WRF_SRC_ROOT_DIR)/external/io_pnetcdf ; \
93           make NETCDFPATH="$(PNETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
94           FC="$(FC) $(PROMOTION) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
96 wrfio_grib_share :
97         ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
98           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
99           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive) 
101 wrfio_grib1 :
102         ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
103           make CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
104           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive)
106 wrfio_grib2 :
107         ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
108           make CC="$(SCC)" CFLAGS="$(CFLAGS) CONFIGURE_GRIB2_INC" RM="$(RM)" RANLIB="$(RANLIB)" \
109           CPP="$(CPP)" \
110           FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
111           FIXED="$(FORMAT_FIXED)" archive)
113 wrfio_int : 
114         ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
115           make CC="$(CC)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
116           FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" \
117           TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" all )
119 esmf_time : 
120         ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
121           make FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
122           CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(ARCHFLAGS) $(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
124 fftpack :
125         ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
126           make FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
128 atm_pom :
129         ( cd $(WRF_SRC_ROOT_DIR)/external/atm_pom ; \
130           make CC="$(SCC)" CFLAGS="$(CFLAGS) " RM="$(RM)" RANLIB="$(RANLIB)" \
131           CPP="$(CPP)" \
132           FC="$(DM_FC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
133           FIXED="$(FORMAT_FIXED)" )
135 $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
136         ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make CC="$(CC) $(CFLAGS)" \
137           FC="$(FC) $(FCFLAGS) $(PROMOTION) $(BYTESWAPIO)" \
138           CPP="$(CPP) -I. $(ARCHFLAGS) $(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ;\
139           $(RANLIB) $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a )
141 ######################
142 #       Macros, these should be generic for all machines
144 LN      =       ln -sf
145 MAKE    =       make -i -r
146 RM      =       rm -f
149 # These sub-directory builds are identical across all architectures
151 wrf_ioapi_includes :
152         ( cd $(WRF_SRC_ROOT_DIR)/external/ioapi_share ; \
153           $(MAKE) NATIVE_RWORDSIZE="$(NATIVE_RWORDSIZE)" RWORDSIZE="$(RWORDSIZE)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
155 wrfio_esmf :
156         ( cd $(WRF_SRC_ROOT_DIR)/external/io_esmf ; \
157           make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) $(ESMF_MOD_INC)" \
158           RANLIB="$(RANLIB)" CPP="$(CPP) $(POUND_DEF) " AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
160 #       There is probably no reason to modify these rules
162 .F.i:
163         $(RM) $@
164         $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $@
165         mv $*.i $(DEVTOP)/pick/$*.f90
166         cp $*.F $(DEVTOP)/pick
168 .F.o:
169         $(RM) $@
170         $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.F  > $*.bb
171         $(SED_FTN) $*.bb | $(CPP) > $*.f90
172         $(RM) $*.b $*.bb
173         if $(FGREP) '!$$OMP' $*.f90 ; then \
174           if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITH OMP ; fi ; \
175           $(FC) -o $@ -c $(FCFLAGS) $(OMP) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90 ; \
176         else \
177           if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITHOUT OMP ; fi ; \
178           $(FC) -o $@ -c $(FCFLAGS) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90 ; \
179         fi
180         
182 .F.f90:
183         $(RM) $@
184         $(SED_FTN) $*.F > $*.b 
185         $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b  > $@
186         $(RM) $*.b
188 .f90.o:
189         $(RM) $@
190         $(FC) -o $@ -c $(FCFLAGS) $(PROMOTION) $(FCSUFFIX) $*.f90
192 .c.o:
193         $(RM) $@
194         $(CC) -o $@ -c $(CFLAGS) $*.c