# MAKEFILE for conversion to GRIB1
#
#

# Define the fortran compiler and options
SRCDIRLIB= /glade/u/home/duda/grib2/lib
UPPDIR= /glade/p/work/mhu/UPP/UPPV2.1

FFLAGS0=  -O3 -convert big_endian -traceback
FFLAGS1= -integer-size 64 -real-size 64
LDFLAGS = -m64

LIBS1 =    # -I${SRCDIR}/incmod/g2_4
LIBS2 =    -L${UPPDIR}/lib -lw3emc -lbacio -lg2
LIBS3 =    -L${SRCDIRLIB} -ljasper -lpng -lz
LIBS4 =    -mkl=sequential -lmpi 
CMD = rtma_post.exe
CMAIN = post.f90


FC1=ifort
FC2=ifort -nofixed -convert big_endian
FC3=mpif90 -free

OBJ1 = w3fb11_8.o w3fb06_8.o w3fb08_8.o
SORC1 = w3fb11_8.f w3fb06_8.f w3fb08_8.f

${OBJ1}:${SORC1}
	${FC1} ${FFLAGS0} ${FFLAGS1} -c ${SORC1}

OBJ2 = domain_dims.o  proj_info.o \
       latlon_to_grid.o kinds.o constants.o \
       psichi2uv_reg_V2.o get_stndewpt_r4.o \
       get_ob_lists.o streamline_for_rjlist.o
       

SORC2 = ../rtma_firstguess/domain_dims.f  proj_info.f \
        latlon_to_grid.f \
        kinds.f90 constants.f90 \
        psichi2uv_reg_V2.f get_stndewpt_r4.f \
        get_ob_lists.f streamline_for_rjlist.f


${OBJ2}:${SORC2}
	${FC2} ${FFLAGS0} -c ${SORC2}

OBJ3 =   derive_xbvar_mpi.o run_biascor.o cressanl_common.o \
         errs_common.o get_streamlined_stats_cv_mpi.o \
         cnv_to_grib2_mpi.o create_rjlist.o bias_rmse_cv_mpi.o

SORC3 =  derive_xbvar_mpi.f90 run_biascor.f90 cressanl_common.f90\
         errs_common.f90 get_streamlined_stats_cv_mpi.f90 \
         cnv_to_grib2_mpi.f90 create_rjlist.f90 bias_rmse_cv_mpi.f90

${OBJ3}:${SORC3}
	${FC3} ${FFLAGS0} -c ${SORC3}


LINK-OBJS = $(OBJ1) $(OBJ2) $(OBJ3)


all: $(CMD)

$(CMD): ${LINK-OBJS} 
	${FC3} ${FFLAGS0} ${LDFLAGS} -o $(CMD) ${CMAIN} ${LINK-OBJS} ${LIBS1} ${LIBS2} ${LIBS3} ${LIBS4}

clean:
	/bin/rm -f *.o *.mod $(CMD)


