# # Makefile for archive processing # # --- usage: make -f Makefile # To create specific executables in this file # # # --- usage: make -f Makefile # To create specific executables in this file # --- usage: make -f Makefile programs=isubregion # # ------------------------------------------------------------------------ # common definitions for IBM SMP Power3, single processor, real*4, 64-bit. # ------------------------------------------------------------------------ # # MACROS DESCRIPTIONS: # # FC: Fortran 90 compiler. # FCFFLAGS: Fortran 90 compilation flags. # CC: C compiler. # CCFLAGS: C compilation flags. # CPP: cpp preprocessor (may be implied by FC). # CPPFLAGS: cpp -D macro flags. # LD: Loader. # LDFLAGS: Loader flags. # EXTRALIBS: Extra local libraries (if any). # FC = ifort FCFFLAGS = -fixed -assume byterecl -convert big_endian $(NETCDF_FFLAGS) FCFFLAGS += -g -O0 -check all -check noarg_temp_created -fp-stack-check -fstack-protector-all -fpe0 -debug -traceback -ftrapuv CC = icc CCFLAGS = CPP = /usr/bin/cpp CPPFLAGS = -P -traditional-cpp -DREAL4 LD = $(FC) LDFLAGS = BINDIR= ../../../exec ##LIBRARY = -L/nwprod/lib EXTRALIBS = ${W3NCO_LIB4} ${BACIO_LIB4} $(NETCDF_LDFLAGS) # # --- generic make definitions # SHELL = /bin/sh RM = \rm -f # # rules. # .SUFFIXES: .SUFFIXES: .c .F .f .o .c.o: $(CC) $(CPPFLAGS) $(CCFLAGS) -c $*.c .f.o: $(FC) $(FCFFLAGS) -c $*.f .F.o: $(RM) $<.f $(CPP) $(CPPFLAGS) $< | sed -e '/^ *$$/d' > $<.f $(FC) $(FCFFLAGS) -c $<.f -\mv $<.o $*.o $(RM) $<.f #include ../../config/$(ARCH)_setup CMD= rtofs_archv2ncdf2d rtofs_archv2ncdf3z rtofs_field2ncdf2d # # --------------------------------------------------------------------- # Standard part of the Makefile starts here # --------------------------------------------------------------------- # all: ${CMD} install: -mv $(CMD) ${BINDIR} clean: /bin/rm -f *.o *.a *.mod M*log *2archv *2d *2t *3z *sf *sfl *sig2a *restart *hv *ncombc $(CMD) finish: -rm -f *.o *.a *.mod M*log *2archv *2d *2t *3z *sf *sfl *sig2a *restart *hv *ncombc everything: clean $(CMD) install finish MODS = mod_plot.o mod_xc.o mod_za.o wtime.o MODB = mod_plot.o mod_xc.o mod_za.o mod_zb.o wtime.o MODR = mod_plot.o mod_xc.o mod_za.o mod_restart.o wtime.o DATAX_OBJ = bigrid.o bigrd1.o blkin.o \ buoflx.o \ extrct.o extrot.o fordate.o \ getdat.o getdtm.o getdepth.o \ indxi.o indxj.o \ pakk.o poisnd.o psmoo.o \ sbmerg.o zebra.o zh.o \ dum_gks.o DATAH_OBJ = $(DATAX_OBJ) horout_nc.o DATAR_OBJ = $(DATAX_OBJ) putdat.o DATAZ_OBJ = $(DATAH_OBJ) layer2z.o mixlay.o NCDFH_OBJ = $(DATAX_OBJ) horout_nc.o NCDFZ_OBJ = $(NCDFH_OBJ) layer2z.o mixlay.o ARCHM_OBJ = bigrid.o blkin.o \ extrct.o extrot.o \ getdat.o getdtm.o getdepth.f putdat.o \ indxi.o indxj.o \ zebra.o zh.o dum_gks.o \ pakk.o # pakk_micom.o ARCHV_OBJ = bigrid.o blkin.o \ extrct.o extrot.o fordate.o \ getdat.o getdtm.o getdepth.o putdat.o \ indxi.o indxj.o pakk.o psmoo.o \ zebra.o zh.o dum_gks.o ARCHV_SRC = hycomarchv.f micomarchv.f \ conv_archv.f trim_archv.f mrgl_archv.f cooperhaines_archv.f ncoda_archv.f ncoda_archv_vel.f remap_archv.f remapi_archv.f \ archv2data2d.f archv2data2t.f archv2data3z.f archv2datasf.f archv2datasfl.f archv2restart.f putdat.f LIBN = ${LIBRARY} ${NETCDF_LDFLAGS_F} ${EXTRALIBS} INCLUDE = ${NETCDF}/include LN =/bin/ln # # --- executables. # rtofs_archv2data2d: $(MODB) archv2data2d.o $(DATAH_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2data2d archv2data2d.o $(MODB) $(DATAH_OBJ) rtofs_archm2data2d: $(MODB) archm2data2d.o $(DATAH_OBJ) $(LD) $(LDFLAGS) -o rtofs_archm2data2d archm2data2d.o $(MODB) $(DATAH_OBJ) rtofs_archv2data2t: $(MODB) archv2data2t.o $(DATAH_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2data2t archv2data2t.o $(MODB) $(DATAH_OBJ) rtofs_archm2data2t: $(MODB) archm2data2t.o $(DATAH_OBJ) $(LD) $(LDFLAGS) -o rtofs_archm2data2t archm2data2t.o $(MODB) $(DATAH_OBJ) rtofs_archv2data3z: $(MODB) archv2data3z.o $(DATAZ_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2data3z archv2data3z.o $(MODB) $(DATAZ_OBJ) rtofs_archm2data3z: $(MODB) archm2data3z.o $(DATAZ_OBJ) $(LD) $(LDFLAGS) -o rtofs_archm2data3z archm2data3z.o $(MODB) $(DATAZ_OBJ) rtofs_archv2datasf: $(MODB) archv2datasf.o $(DATAZ_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2datasf archv2datasf.o $(MODB) $(DATAZ_OBJ) rtofs_archv2datasfl: $(MODB) archv2datasfl.o $(DATAZ_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2datasfl archv2datasfl.o $(MODB) $(DATAZ_OBJ) rtofs_archv2ncdf2d: $(NETCDF_STUFF) $(MODB) archv2data2d.o $(NCDFH_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2ncdf2d archv2data2d.o $(MODB) $(NCDFH_OBJ) $(LIBN) rtofs_field2ncdf2d: $(NETCDF_STUFF) $(MODB) field2data.o $(NCDFH_OBJ) $(LD) $(LDFLAGS) -o rtofs_field2ncdf2d field2data.o $(MODB) $(NCDFH_OBJ) $(LIBN) rtofs_archm2ncdf2d: $(MODB) archm2data2d.o $(NCDFH_OBJ) $(LD) $(LDFLAGS) -o rtofs_archm2ncdf2d archm2data2d.o $(MODB) $(NCDFH_OBJ) libnetcdf.a rtofs_archv2ncdf2t: $(MODB) archv2data2t.o $(NCDFH_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2ncdf2t archv2data2t.o $(MODB) $(NCDFH_OBJ) libnetcdf.a rtofs_archv2ncdf3z: $(MODB) archv2data3z.o $(NCDFZ_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2ncdf3z archv2data3z.o $(MODB) $(NCDFZ_OBJ) $(LIBN) rtofs_archm2ncdf3z: $(MODB) archm2data3z.o $(NCDFZ_OBJ) $(LD) $(LDFLAGS) -o rtofs_archm2ncdf3z archm2data3z.o $(MODB) $(NCDFZ_OBJ) libnetcdf.a rtofs_archv2ncdfsf: $(MODB) archv2datasf.o $(NCDFZ_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2ncdfsf archv2datasf.o $(MODB) $(NCDFZ_OBJ) libnetcdf.a rtofs_archv2ncdfsfl: $(MODB) archv2datasfl.o $(NCDFZ_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2ncdfsfl archv2datasfl.o $(MODB) $(NCDFZ_OBJ) libnetcdf.a rtofs_archv2ncombc: $(MODB) archv2ncombc.o $(DATAH_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2ncombc archv2ncombc.o $(MODB) $(DATAH_OBJ) rtofs_archv2restart: $(MODR) archv2restart.o $(DATAX_OBJ) $(LD) $(LDFLAGS) -o rtofs_archv2restart archv2restart.o $(MODR) $(DATAX_OBJ) rtofs_archm2restart: $(MODR) archm2restart.o $(DATAX_OBJ) $(LD) $(LDFLAGS) -o rtofs_archm2restart archm2restart.o $(MODR) $(DATAX_OBJ) rtofs_cooperhaines_archv: $(MODS) cooperhaines_archv.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_cooperhaines_archv cooperhaines_archv.o $(MODS) $(ARCHV_OBJ) rtofs_hycomarchv: $(MODS) hycomarchv.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_hycomarchv hycomarchv.o $(MODS) $(ARCHV_OBJ) rtofs_micomarchv: $(MODS) micomarchv.o $(ARCHM_OBJ) $(LD) $(LDFLAGS) -o rtofs_micomarchv micomarchv.o $(MODS) $(ARCHM_OBJ) rtofs_conv_archv: $(MODS) conv_archv.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_conv_archv conv_archv.o $(MODS) $(ARCHV_OBJ) rtofs_mrgl_archv: $(MODS) mrgl_archv.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_mrgl_archv mrgl_archv.o $(MODS) $(ARCHV_OBJ) rtofs_trim_archv: $(MODS) trim_archv.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_trim_archv trim_archv.o $(MODS) $(ARCHV_OBJ) rtofs_ncoda_archv: $(MODS) ncoda_archv.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_ncoda_archv ncoda_archv.o $(MODS) $(ARCHV_OBJ) rtofs_ncoda_archv_vel: $(MODS) ncoda_archv_vel.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_ncoda_archv_vel ncoda_archv_vel.o $(MODS) $(ARCHV_OBJ) rtofs_remap_archv: $(MODS) remap_archv.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_remap_archv remap_archv.o $(MODS) $(ARCHV_OBJ) rtofs_remapi_archv: $(MODS) remapi_archv.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_remapi_archv remapi_archv.o $(MODS) $(ARCHV_OBJ) remap_ncombc: $(MODS) remap_ncombc.o $(ARCHV_OBJ) $(LD) $(LDFLAGS) -o rtofs_remap_ncombc remap_ncombc.o $(MODS) $(ARCHV_OBJ) rtofs_restart2archv: $(MODR) restart2archv.o $(DATAR_OBJ) $(LD) $(LDFLAGS) -o rtofs_restart2archv restart2archv.o $(MODR) $(DATAR_OBJ) rtofs_restart2archv_ssh: $(MODR) restart2archv_ssh.o $(DATAR_OBJ) $(LD) $(LDFLAGS) -o rtofs_restart2archv_ssh restart2archv_ssh.o $(MODR) $(DATAR_OBJ) rtofs_restart2archv_sig2a: $(MODR) restart2archv_sig2a.o $(DATAR_OBJ) $(LD) $(LDFLAGS) -o rtofs_restart2archv_sig2a restart2archv_sig2a.o $(MODR) $(DATAR_OBJ) # #from Carlos: this is not a robust way to collect files from other directories. netcdf.inc: $(LN) -s $(INCLUDE)/netcdf.inc netcdf.inc netcdf.mod: $(LN) -s $(INCLUDE)/netcdf.mod netcdf.mod # # --- explicit dependencies for each .[fF] file. # NETCDF_STUFF: netcdf.inc netcdf.mod # --- explicit dependencies for each .[fF] file. # archv2ncdf3z.o: archv2data3z.f mod_plot.o mod_za.o getdat.o archv2data2d.o: archv2data2d.f mod_plot.o mod_za.o field2data.o: field2data.f mod_plot.o mod_za.o archm2data2d.o: archm2data2d.f mod_plot.o mod_za.o archv2data3z.o: archv2data3z.f mod_plot.o mod_za.o archm2data3z.o: archm2data3z.f mod_plot.o mod_za.o archv2datasf.o: archv2datasf.f mod_plot.o mod_za.o archv2datasfl.o: archv2datasfl.f mod_plot.o mod_za.o archv2ncombc.o: archv2ncombc.f mod_plot.o mod_za.o archv2restart.o: archv2restart.f mod_plot.o mod_za.o mod_restart.o archm2restart.o: archm2restart.f mod_plot.o mod_za.o mod_restart.o hycomarchv.o: hycomarchv.f mod_plot.o mod_za.o micomarchv.o: micomarchv.f mod_plot.o mod_za.o mrgl_archv.o: mrgl_archv.f mod_plot.o mod_za.o trim_archv.o: trim_archv.f mod_plot.o mod_za.o remap_archv.o: remap_archv.f mod_plot.o mod_za.o restart2archv.o: restart2archv.f mod_plot.o mod_za.o mod_restart.o bigrd1.o: bigrd1.f mod_plot.o bigrid.o: bigrid.f mod_plot.o blkin.o: blkin.f buoflx.o: buoflx.f dum_gks.o: dum_gks.f extrct.o: extrct.f extrot.o: extrot.f fordate.o: fordate.f getdat.o: getdat.f mod_plot.o mod_za.o getdepth.o: getdepth.f mod_plot.o mod_za.o getdtm.o: getdtm.f mod_plot.o mod_za.o horout_nc.o: horout_nc.f mod_plot.o mod_xc.o mod_zb.o indxi.o: indxi.f mod_plot.o indxj.o: indxj.f mod_plot.o layer2z.o: layer2z.f mixlay.o: mixlay.f pakk.o: pakk.f poisnd.o: poisnd.f mod_plot.o prtmsk.o: prtmsk.f psmoo.o: psmoo.f mod_plot.o putdat.o: putdat.f mod_plot.o mod_za.o sbmerg.o: sbmerg.f mod_plot.o wtime.o: wtime.F zebra.o: zebra.f mod_plot.o: mod_plot.F mod_xc.o: mod_xc.F mod_za.o: mod_za.F mod_xc.o mod_zb.o: mod_zb.F zh.o: zh.F zh_sun.f zh_t3e.f zh_ymp.f