#makefile to build a wrf_io with netCDF

OBJSL   = wrf_io.o field_routines.o
OBJS    = $(OBJSL)
CODE    = ext_get_glb_md.code ext_get_var_md.code ext_put_glb_md.code ext_put_var_md.code transpose.code
OPTS    =
FFLAGS  =  $(OPTS) -I$(NETCDFPATH)/include -convert big_endian
LIBS    = -L$(NETCDFPATH)/lib -lnetcdf
CPP     = /lib/cpp -C -P -traditional

.SUFFIXES:      .F90 .f90 .o .code

ALL:			$(OBJS) $(CODE) diffwrf
			/bin/rm -f libwrfio_nf.a
			$(AR) cr libwrfio_nf.a $(OBJSL)

wrf_io.o:               $(CODE) wrf_io.F90
			sed -e '1,/BEGINIOFLAGS/d' -e '/ENDIOFLAGS/,$$d' wrf_io.F90 > wrf_io_flags.h
			$(CPP) wrf_io.F90 > wrf_io.f90
			$(FC) $(FFLAGS) -c wrf_io.f90

diffwrf:                diffwrf.F
			$(CPP) diffwrf.F > diffwrf.f90
			$(FC) -c $(FFLAGS) diffwrf.f90
			$(FC) $(FFLAGS) $(LDFLAGS) -o diffwrf diffwrf.o $(OBJSL) $(LIBS)

field_routines.o:	field_routines.F90
			$(CPP) field_routines.F90 > field_routines.f90
			$(FC) $(FFLAGS) -c field_routines.f90

clean:  
			/bin/rm -f  testWRFWrite testWRFRead *.o *.mod diffwrf
