1 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 # User: Set here the F90 compiler and options
3 # Pedefined compilers: INTEL, PGF, HPUX, LAHEY
4 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13 FOPT_GNU = -cpp -O -pg -fbounds-check
15 FOPT_LAHEY = -Cpp --pca
16 #FOPT_LAHEY = -Cpp --chk a,e,s,u --pca --ap -O0 -g --trap
18 FOPT_INTEL = -cpp -O -mp -pc80 -prec_div -tpp7 -implicitnone
20 FOPT_PGF = -Mpreprocess -O -fast -pc 80 -Kieee
22 FOPT_HPUX = -O -u +Oall +check=on
24 # define FULL_ALGEBRA for non-sparse integration
25 FC = $(FC_$(COMPILER))
26 FOPT = $(FOPT_$(COMPILER)) # -DFULL_ALGEBRA
29 #LIBS = -llapack -lblas
31 # Command to create Matlab mex gateway routines
32 # Note: use $(FC) as the mex Fortran compiler
35 GENSRC = strato_Precision.f90 \
36 strato_Parameters.f90 \
39 GENOBJ = strato_Precision.o \
43 FUNSRC = strato_Function.f90
44 FUNOBJ = strato_Function.o
46 JACSRC = strato_JacobianSP.f90 strato_Jacobian.f90
47 JACOBJ = strato_JacobianSP.o strato_Jacobian.o
49 HESSRC = strato_HessianSP.f90 strato_Hessian.f90
50 HESOBJ = strato_HessianSP.o strato_Hessian.o
52 STMSRC = strato_StoichiomSP.f90 strato_Stoichiom.f90
53 STMOBJ = strato_StoichiomSP.o strato_Stoichiom.o
55 UTLSRC = strato_Rates.f90 strato_Util.f90 strato_Monitor.f90
56 UTLOBJ = strato_Rates.o strato_Util.o strato_Monitor.o
58 LASRC = strato_LinearAlgebra.f90
59 LAOBJ = strato_LinearAlgebra.o
61 STOCHSRC = strato_Stochastic.f90
62 STOCHOBJ = strato_Stochastic.o
64 MAINSRC = strato_Main.f90 strato_Initialize.f90 strato_Integrator.f90 strato_Model.f90
65 MAINOBJ = strato_Main.o strato_Initialize.o strato_Integrator.o strato_Model.o
67 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 # User: modify the line below to include only the
69 # objects needed by your application
70 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 ALLOBJ = $(GENOBJ) $(FUNOBJ) $(JACOBJ) $(HESOBJ) $(STMOBJ) \
74 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75 # User: modify the line below to include only the
76 # executables needed by your application
77 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80 exe: $(ALLOBJ) $(MAINOBJ)
81 $(FC) $(FOPT) $(ALLOBJ) $(MAINOBJ) $(LIBS) -o strato.exe
83 stochastic:$(ALLOBJ) $(STOCHOBJ) $(MAINOBJ)
84 $(FC) $(FOPT) $(ALLOBJ) $(STOCHOBJ) $(MAINOBJ) $(LIBS) \
85 -o strato_stochastic.exe
88 $(MEX) FC#$(FC) -fortran -O strato_mex_Fun.f90 $(ALLOBJ)
89 $(MEX) FC#$(FC) -fortran -O strato_mex_Jac_SP.f90 $(ALLOBJ)
90 $(MEX) FC#$(FC) -fortran -O strato_mex_Hessian.f90 $(ALLOBJ)
93 rm -f strato*.o strato*.mod \
94 strato*.dat strato.exe strato*.mexglx \
98 rm -f strato*.o strato*.mod \
99 strato*.dat strato.exe strato.map \
100 strato*.f90 strato_*.mexglx
102 strato_Precision.o: strato_Precision.f90
105 strato_Parameters.o: strato_Parameters.f90 \
109 strato_Monitor.o: strato_Monitor.f90 \
113 strato_Global.o: strato_Global.f90 \
114 strato_Parameters.o strato_Precision.o
117 strato_Initialize.o: strato_Initialize.f90 $(GENOBJ)
120 strato_Function.o: strato_Function.f90 $(GENOBJ)
123 strato_Stochastic.o: strato_Stochastic.f90 $(GENOBJ)
126 strato_JacobianSP.o: strato_JacobianSP.f90 $(GENOBJ)
129 strato_Jacobian.o: strato_Jacobian.f90 $(GENOBJ) strato_JacobianSP.o
132 strato_LinearAlgebra.o: strato_LinearAlgebra.f90 $(GENOBJ) strato_JacobianSP.o
135 strato_Rates.o: strato_Rates.f90 $(GENOBJ)
138 strato_HessianSP.o: strato_HessianSP.f90 $(GENOBJ)
141 strato_Hessian.o: strato_Hessian.f90 $(GENOBJ) strato_HessianSP.o
144 strato_StoichiomSP.o: strato_StoichiomSP.f90 $(GENOBJ)
147 strato_Stoichiom.o: strato_Stoichiom.f90 $(GENOBJ) strato_StoichiomSP.o
150 strato_Util.o: strato_Util.f90 $(GENOBJ) strato_Monitor.o
153 strato_Main.o: strato_Main.f90 $(ALLOBJ) strato_Initialize.o strato_Model.o strato_Integrator.o
156 strato_Model.o: strato_Model.f90 $(ALLOBJ) strato_Integrator.o
159 strato_Integrator.o: strato_Integrator.f90 $(ALLOBJ)