srcs	=	aeroexe1.F chem_trvdiff2.F difuvd1.F difuvd2.F difuvd9.F \
	cam_sfflux.F cam_sfsd.F cam_sfss.F cam_sfbc.F cam_sfoc.F \
	cam_sfsf.F cam_sfnt.F  cam_sfrd.F\
	cam_inaero.F \
	cam_v01.F \
	cam_aeroprop.F cam_blcld.F cas.F \
	cam_coagd.F cvmgt.F cam_drydepo.F cam_drygas.F \
	cam_drypar.F cam_scaveng.F \
	cam_utili.F \
	cam_aero_sulfate.F cam_condsoa.F aero_intrsec.F \
	aerocld.F aeroact.F cldchem.F oequip.F oxistr.F \
	addmass.F  aerovis.F cam_accum.F chem_setreal.F \
	incld.F outamm.F oxicon.F putzero.F readinput.F \
	str.F  aodepth.F chem_conv_point.F\
        adBuffer.F aeroact_b.F aerocld_b.F aeroexe1_b.F aeroprop_b.F \
        cam_sfbc_b.F cam_sfflux_b.F  cam_sfnt_b.F cam_sfoc_b.F cam_sfrd_b.F \
        cam_sfsf_b.F cam_sfss_b.F  cam_v01_b.F cas_b.F  chem_trvdiff2_b.F\
        cldchem_b.F coagd_b.F condsoa_b.F cvmgt_b.F difuvd1_b.F difuvd2_b.F\
        difvchem_b.F drydepo_b.F filzro_b.F inaero_b.F incld_b.F intrsec_b.F\
        oequip_b.F oxicon_b.F oxistr_b.F putzero_b.F scaveng_b.F subvvel_b.F \
        sulfate_b.F module_model_constants.F 
   
objs =  	aeroexe1.o chem_trvdiff2.o difuvd1.o difuvd2.o difuvd9.o \
        cam_sfflux.o cam_sfsd.o cam_sfss.o cam_sfbc.o cam_sfoc.o \
        cam_sfsf.o cam_sfnt.o  cam_sfrd.o\
        cam_inaero.o \
        cam_v01.o \
        cam_aeroprop.o cam_blcld.o cas.o \
        cam_coagd.o cvmgt.o cam_drydepo.o cam_drygas.o \
        cam_drypar.o cam_scaveng.o \
        cam_utili.o \
        cam_aero_sulfate.o cam_condsoa.o aero_intrsec.o \
        aerocld.o aeroact.o cldchem.o oequip.o oxistr.o \
        addmass.o  aerovis.o cam_accum.o chem_setreal.o \
        incld.o outamm.o oxicon.o putzero.o readinput.o \
        str.o  aodepth.o chem_conv_point.o\
        adBuffer.o aeroact_b.o aerocld_b.o aeroexe1_b.o aeroprop_b.o \
        cam_sfbc_b.o cam_sfflux_b.o  cam_sfnt_b.o cam_sfoc_b.o cam_sfrd_b.o \
        cam_sfsf_b.o cam_sfss_b.o  cam_v01_b.o cas_b.o  chem_trvdiff2_b.o\
        cldchem_b.o coagd_b.o condsoa_b.o cvmgt_b.o difuvd1_b.o difuvd2_b.o\
        difvchem_b.o drydepo_b.o filzro_b.o inaero_b.o incld_b.o intrsec_b.o\
        oequip_b.o oxicon_b.o oxistr_b.o putzero_b.o scaveng_b.o subvvel_b.o \
        sulfate_b.o module_model_constants.o 



targetdir    =  ./

.SUFFIXES:.F .c .o
 
$(libtarget) :  $(objs)

fc = xlf90
all:aerosol.exe
	make aerosol.exe

aerosol_driver.o:aerosol_driver.F
	xlf90 -q64 -qrealsize=8 -qspill=20000 aerosol_driver.F

camaerosol.o:camaerosol.F
	xlf90 -q64 -qrealsize=8 camaerosol.F

camaerosol_b.o:camaerosol_b.F
	xlf90 -q64 -qrealsize=8 camaerosol_b.F 

ad_bs_qmsl.o:ad_bs_qmsl.F
	xlf90 -q64 -qrealsize=8 ad_bs_qmsl.F

ad_upstream_interp.o:ad_upstream_interp.F
	xlf90 -q64 -qrealsize=8 ad_upstream_interp.F

upstream_interp.o:upstream_interp.F
	xlf90 -q64 -qrealsize=8 upstream_interp.F

ad_nk1_linear_interp.o:ad_nk1_linear_interp.F
	xlf90 -q64 -qrealsize=8 ad_nk1_linear_interp.F

phy_prep_tracer.o:phy_prep_tracer.F
	xlf90 -q64 -qrealsize=8 phy_prep_tracer.F

ad_phy_prep_tracer.o:ad_phy_prep_tracer.F
	xlf90 -q64 -qrealsize=8 ad_phy_prep_tracer.F

ad_phy_post_back.o:ad_phy_post_back.F
	xlf90 -q64 -qrealsize=8 ad_phy_post_back.F

read_initialdata.o:read_initialdata.F
	xlf90 -q64  read_initialdata.F

#.f.o:
#        xlf -q64 -qcheck -qrealsize=8 -qinitauto -qmaxmem=-1 -O -c $*.f

.F.o:
	xlf -q64 -g -qcheck -qrealsize=8 -qinitauto -qmaxmem=-1 -O -c $*.F
 
.c.o:
	xlc -c -q64 -DNOUNDERSCORE  $*.c

aerosol.exe: $(objs) aerosol_driver.o camaerosol.o adStack.o camaerosol_b.o ad_bs_qmsl.o ad_upstream_interp.o \
	upstream_interp.o ad_nk1_linear_interp.o phy_prep_tracer.o ad_phy_prep_tracer.o ad_phy_post_back.o \
	read_initialdata.o
	rm -f aerosol.exe core fort.*
	$(fc) -g -qchecK -q64 -qmaxmem=-1 -qrealsize=8 -o aerosol.exe $(objs) aerosol_driver.o camaerosol.o \
         adStack.o camaerosol_b.o ad_bs_qmsl.o ad_upstream_interp.o upstream_interp.o ad_nk1_linear_interp.o \
         phy_prep_tracer.o ad_phy_prep_tracer.o ad_phy_post_back.o read_initialdata.o


clean:
	rm -f *.o core fort.* Result_* *.exe

