/[MITgcm]/MITgcm_contrib/mlosch/optim_m1qn3/Makefile
ViewVC logotype

Annotation of /MITgcm_contrib/mlosch/optim_m1qn3/Makefile

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Thu Apr 26 11:10:06 2012 UTC (12 years ago) by mlosch
Branch: MAIN
First working version of a new optimization package that uses a slightly
modified version of m1qn3, v3.3
(https://who.rocq.inria.fr/Jean-Charles.Gilbert/modulopt/optimization-routines/m1qn3/m1qn3.html)
to work as an offline optimizer. The advantage of m1qn3_offline is, that
it is run in reverse communication control mode, so that it gives back
control to the call routine (here a script) to provide a new estimate of the
cost function and the gradient based on the control vector. This way we can
do complete line searches that are meaningful.

1 mlosch 1.1 # $Header: $
2     # $Name: $
3     #***********************************************************************
4     # Makefile for the off-line large scale optimization with m1qn3
5     # in reverse communication mode.
6     #
7     # started: Martin Losch Martin.Losch@awi.de 24-Apr-2012
8     #
9     # changed:
10     #
11     #***********************************************************************
12    
13     MAKEFILE=Makefile
14     # The optimization routines.
15     SRC = optim_main.F \
16     optim_sub.F \
17     optim_readparms.F \
18     optim_readdata.F \
19     optim_writedata.F \
20     optim_store_m1qn3.F \
21     m1qn3_offline.F \
22     ddot.F
23    
24     EXEDIR = .
25    
26     # default suffix for pre-processed fortran files is f
27     SUFF=f
28     # for case-insensitive file systems you may need this
29     # SUFF=for
30     # Location of cpp preprocessor
31     # default is (Linux)
32     CPP = cat $< | /lib/cpp -P -traditional
33     # Mac OS X
34     # CPP = cat $< | /usr/bin/cpp -P -traditional
35     # on SUNOS
36     # CPP = cat $< | /usr/ccs/lib/cpp
37    
38     INCLUDEDIRS = -I. \
39     -I/uv/home1/mlosch/MITgcm/pig1km/buildad
40     # -I../verification/natl_box_adjoint/build
41    
42     LIBDIRS =
43     LIBS =
44    
45     EXECUTABLE = $(EXEDIR)/optim.x
46    
47     # The cpp flags.
48     CPPFLAGS = -DREAL_BYTE=4 \
49     -DMAX_INDEPEND=1000000 \
50     -D_RL='double precision' \
51     -D_RS='double precision'
52    
53     # -DMAX_INDEPEND=293570968 \
54     # FORTRAN compiler and its flags.
55     # default is gfortran
56     FC = gfortran
57     FFLAGS = -fconvert=big-endian
58    
59     # ifort compilers
60     #FC = ifort
61     #FFLAGS = -mieee-fp -132 -r8 -i4 -W0 -WB -CB -fpe0 -traceback -convert big_endian -assume byterecl
62    
63     # SGI o3k IRIX64
64     #FC = f77
65     #FFLAGS = -extend_source -bytereclen -mips4 -r8 -static
66    
67     # AER cluster
68     #FC = /opt/mpich/bin/mpif77
69     #FFLAGS = -byteswapio -r8 -Mnodclchk -Mextend
70    
71     SMALLF = $(SRC:.F=.$(SUFF))
72     OBJECTS = $(SRC:.F=.o)
73    
74     .SUFFIXES: .o .$(SUFF) .F
75    
76     all: small_f $(EXECUTABLE)
77     $(EXECUTABLE): $(OBJECTS)
78     $(FC) -o $@ $(FFLAGS) $(OBJECTS) $(LIBDIRS) $(LIBS)
79    
80     small_f: $(SMALLF)
81    
82     depend:
83     makedepend -o .f $(INCLUDEDIRS) $(SRC)
84    
85     # The normal chain of rules is ( .F - .f - .o )
86     .F.f:
87     $(CPP) $(CPPFLAGS) $(INCLUDEDIRS) > $@
88     .F.for:
89     $(CPP) $(CPPFLAGS) $(INCLUDEDIRS) > $@
90     .f.o:
91     $(FC) $(FFLAGS) -c $<
92     .for.o:
93     $(FC) $(FFLAGS) -c $<
94    
95     # Cleaning options.
96     clean:
97     -rm -f *.o *.f *.for
98    
99     Clean:
100     @make -f $(MAKEFILE) clean
101     -rm -f OPWARM.*
102    
103     CLEAN:
104     @make -f $(MAKEFILE) Clean
105     -rm -f $(EXECUTABLE)
106    
107     # DO NOT DELETE

  ViewVC Help
Powered by ViewVC 1.1.22