OBJ=nrlib.o rttype_sos_rao_dg.o Atmosphere_Profile.o Gas_Absorption_CS_Readin.o PACE_Instrument.o Save_Ocean_Rad.o rtsos_rao_dg.o rt_single_scattering.o bessel.o rtspecfunc.o spher.o bfit.o deltafit.o aerosol_microphysical_model.o PACE_MIE_PHMX_Init.o main_PACE_Simulator_DoubleK.o

F90=gfortran
#F90=ifort
#FCFLAG= -O3

#FCFLAG=-real-size 64 -O3
#FCFLAG= -g -fbounds-check
FCFLAG= -g -fbounds-check -ffpe-trap=invalid,zero,overflow -finit-real=nan -fcheck=all

#FCFLAG_GAS = -g -fbounds-check
FCFLAG_GAS = -O3

#HDF5DIR = /usr/local/hdf5-1.8.15
#HDF5DIR=/usr/local/dev-libs/
#HDF5DIR=/home/mgao/install/local/
HDF5DIR=/mnt/beegfs/poseidon/hpc/ocssw-develop/opt

HDF5LIB=-I$(HDF5DIR)/include
H5FC=$(HDF5DIR)/bin/h5fc
LIBSHDF= $(HDF5LIB) -L$(HDF5DIR)/lib/ -lhdf5 -lhdf5_fortran

DIRCore=../src/core/
DIRMain=../src/pace_simulator/

rtsos_PACE_Simulator_DoubleK.exe: $(OBJ)
	$(F90) -o rtsos_PACE_Simulator_DoubleK.exe $(FCFLAG) $(OBJ) $(LIBSHDF)
nrlib.o: $(DIRCore)/nrlib.f90
	 $(F90) -c $(FCFLAG) $(DIRCore)/nrlib.f90
rttype_sos_rao_dg.o: $(DIRCore)/rttype_sos_rao_dg.f90
	$(F90) -c $(FCFLAG) $(DIRCore)/rttype_sos_rao_dg.f90
Atmosphere_Profile.o: $(DIRCore)/Atmosphere_Profile.f90
	$(F90) -c $(FCFLAG) $(DIRCore)/Atmosphere_Profile.f90
Gas_Absorption_CS_Readin.o: $(DIRCore)/Gas_Absorption_CS_Readin.f90
	$(H5FC) -c $(FCFLAG_GAS) $(DIRCore)/Gas_Absorption_CS_Readin.f90
PACE_Instrument.o: $(DIRMain)/PACE_Instrument.f90
	$(H5FC) -c $(FCFLAG) $(DIRMain)/PACE_Instrument.f90
Save_Ocean_Rad.o: $(DIRCore)/Save_Ocean_Rad.f90
	$(F90) -c $(FCFLAG) $(DIRCore)/Save_Ocean_Rad.f90
bessel.o:$(DIRCore)/bessel.f
	$(F90) -c $(FCFLAG) $(DIRCore)/bessel.f
rtspecfunc.o:$(DIRCore)/rtspecfunc.f90
	$(F90) -c $(FCFLAG) $(DIRCore)/rtspecfunc.f90
rtsos_rao_dg.o: $(DIRCore)/rtsos_rao_dg.f90
	$(F90) -c $(FCFLAG) $(LIBSHDF) $(DIRCore)/rtsos_rao_dg.f90
rt_single_scattering.o: $(DIRCore)/rt_single_scattering.f90
	$(F90) -c $(FCFLAG) $(LIBSHDF) $(DIRCore)/rt_single_scattering.f90
spher.o: $(DIRCore)/spher.f
	$(F90) -c $(FCFLAG) $(DIRCore)/spher.f
bfit.o: $(DIRCore)/bfit.f90
	$(F90) -c $(FCFLAG) $(DIRCore)/bfit.f90
deltafit.o: $(DIRCore)/deltafit.f90
	$(F90) -c $(FCFLAG) $(DIRCore)/deltafit.f90
aerosol_microphysical_model.o: $(DIRCore)/aerosol_microphysical_model.f90
	$(F90) -c $(FCFLAG) $(DIRCore)/aerosol_microphysical_model.f90
PACE_MIE_PHMX_Init.o: $(DIRMain)/PACE_MIE_PHMX_Init.f90
	$(F90) -c $(FCFLAG) $(DIRMain)/PACE_MIE_PHMX_Init.f90
main_PACE_Simulator_DoubleK.o: $(DIRMain)/main_PACE_Simulator_DoubleK.f90
	$(F90) -c $(FCFLAG) $(LIBSHDF) $(DIRMain)/main_PACE_Simulator_DoubleK.f90

clean:;       rm -f *.o *.exe
