1 | # Universal machine independent makefile for ROMS model |
---|
2 | #==================================================================== |
---|
3 | # Set machine dependent definitions and rules. |
---|
4 | |
---|
5 | include Makedefs |
---|
6 | |
---|
7 | # Configuration for SCRUM/ROMS model: |
---|
8 | #==================================================================== |
---|
9 | # All source codes files are sorted into eight groups, separated by |
---|
10 | # blanc lines: |
---|
11 | # 1) main driving part; 2) 2D time stepping engine; |
---|
12 | # 3) 3D time stepping engine; 4) sea-water EOS routines; |
---|
13 | # 5) vertical mixing schemes; 6) on-fly model diagnostic routines; |
---|
14 | # 7) netCDF I/O routines; 8) model forcing routines; |
---|
15 | # 9) MPI routines; 10) Modules routines; |
---|
16 | # 11) Floats routines; 12) Stations routines; |
---|
17 | # 13) AGRIF routines; 14) PISCES routines |
---|
18 | #-------------------------------------------------------------------- |
---|
19 | |
---|
20 | SRCS = main.F step.F read_inp.F\ |
---|
21 | timers.F init_scalars.F init_arrays.F set_weights.F\ |
---|
22 | set_scoord.F ana_grid.F setup_grid1.F setup_grid2.F\ |
---|
23 | set_nudgcof.F ana_initial.F analytical.F\ |
---|
24 | setup_kwds.F check_kwds.F check_srcs.F\ |
---|
25 | check_switches1.F check_switches2.F\ |
---|
26 | \ |
---|
27 | step2d.F u2dbc.F v2dbc.F zetabc.F\ |
---|
28 | obc_volcons.F\ |
---|
29 | \ |
---|
30 | pre_step3d.F step3d_t.F step3d_uv1.F step3d_uv2.F\ |
---|
31 | prsgrd.F rhs3d.F set_depth.F omega.F\ |
---|
32 | uv3dmix.F t3dmix.F smagorinsky.F\ |
---|
33 | u3dbc.F v3dbc.F t3dbc.F\ |
---|
34 | \ |
---|
35 | rho_eos.F ab_ratio.F alfabeta.F\ |
---|
36 | \ |
---|
37 | ana_vmix.F bvf_mix.F lmd_vmix.F\ |
---|
38 | lmd_skpp.F lmd_bkpp.F lmd_swfrac.F lmd_wscale.F\ |
---|
39 | \ |
---|
40 | diag.F wvlcty.F checkdims.F grid_stiffness.F\ |
---|
41 | bio_diag.F\ |
---|
42 | \ |
---|
43 | get_date.F lenstr.F closecdf.F ana_initracer.F\ |
---|
44 | insert_node.F nf_fread.F get_grid.F get_initial.F\ |
---|
45 | def_grid.F def_his.F def_rst.F set_avg.F\ |
---|
46 | wrt_grid.F wrt_his.F wrt_rst.F wrt_avg.F\ |
---|
47 | output.F put_global_atts.F\ |
---|
48 | def_diags.F wrt_diags.F\ |
---|
49 | wrt_diags_avg.F set_diags_avg.F\ |
---|
50 | def_diagsM.F wrt_diagsM.F\ |
---|
51 | wrt_diagsM_avg.F set_diagsM_avg.F\ |
---|
52 | def_bio_diags.F wrt_bio_diags.F\ |
---|
53 | wrt_bio_diags_avg.F set_bio_diags_avg.F\ |
---|
54 | \ |
---|
55 | get_vbc.F set_cycle.F get_wwave.F\ |
---|
56 | get_tclima.F get_uclima.F get_ssh.F get_sss.F\ |
---|
57 | get_smflux.F get_stflux.F get_srflux.F get_sst.F\ |
---|
58 | get_tides.F clm_tides.F get_bulk.F bulk_flux.F\ |
---|
59 | get_bry.F get_bry_bio.F nf_read_bry.F\ |
---|
60 | \ |
---|
61 | MPI_Setup.F MessPass2D.F MessPass3D.F exchange.F\ |
---|
62 | \ |
---|
63 | biology.F sediment.F bbl.F\ |
---|
64 | \ |
---|
65 | init_floats.F wrt_floats.F step_floats.F rhs_floats.F\ |
---|
66 | interp_rho.F def_floats.F init_arrays_floats.F\ |
---|
67 | random_walk.F get_initial_floats.F\ |
---|
68 | \ |
---|
69 | init_sta.F wrt_sta.F step_sta.F interp_sta.F\ |
---|
70 | def_sta.F init_arrays_sta.F\ |
---|
71 | \ |
---|
72 | zoom.F update2D.F set_nudgcof_fine.F\ |
---|
73 | zoombc_2D.F zoombc_3D.F uv3dmix_fine.F\ |
---|
74 | t3dmix_fine.F update3D.F \ |
---|
75 | \ |
---|
76 | ropigrid.F ropistep.F pirostep.F\ |
---|
77 | trcini.F trclsm.F pisces_ini.F\ |
---|
78 | p4zday.F p4znano.F p4zlys.F\ |
---|
79 | p4zdiat.F p4zopt.F p4zsink.F\ |
---|
80 | p4zflx.F p4zprg.F p4zslow.F\ |
---|
81 | p4zint.F p4zprod.F p4zmicro.F\ |
---|
82 | p4zlim.F p4zrem.F p4zche.F\ |
---|
83 | p4zbio.F p4zmeso.F p4zsink2.F \ |
---|
84 | p4zsed.F Agrif2Model.F |
---|
85 | |
---|
86 | AMRDIR = AGRIFZOOM/AGRIF_YOURFILES |
---|
87 | |
---|
88 | #-------------------------------------------------------------------- |
---|
89 | |
---|
90 | RCS = $(SRCS:.F=.f) |
---|
91 | |
---|
92 | OBJS = $(RCS:.f=.o) |
---|
93 | |
---|
94 | SBIN = roms |
---|
95 | |
---|
96 | AMRRCS=$(AMRSRCS:.F=.f) |
---|
97 | |
---|
98 | AMROBJS=$(AMRRCS:.f=.o) |
---|
99 | |
---|
100 | # |
---|
101 | # Eecutable file. |
---|
102 | # ========= ===== |
---|
103 | # |
---|
104 | $(SBIN): $(OBJS) |
---|
105 | $(LDR) $(FFLAGS) $(LDFLAGS) -o a.out $(OBJS) $(LCDF) $(LMPI) |
---|
106 | mv a.out $(SBIN) |
---|
107 | # |
---|
108 | # Everything |
---|
109 | # ========== |
---|
110 | all: tools depend $(SBIN) |
---|
111 | |
---|
112 | # |
---|
113 | # Auxiliary utility programs and List of Dependecies: |
---|
114 | # ========= ======= ======== === ==== == ============ |
---|
115 | # |
---|
116 | TOOLS = mpc cross_matrix cppcheck srcscheck checkkwds partit ncjoin ncrename |
---|
117 | |
---|
118 | tools: $(TOOLS) |
---|
119 | |
---|
120 | mpc: mpc.F |
---|
121 | $(CPP) -P $(CPPFLAGS) mpc.F > mpc_.f |
---|
122 | $(LDR) $(FFLAGS) $(LDFLAGS) -o mpc mpc_.f |
---|
123 | cross_matrix: cross_matrix.o |
---|
124 | $(LDR) $(FFLAGS) $(LDFLAGS) -o cross_matrix cross_matrix.o |
---|
125 | cppcheck: cppcheck.o |
---|
126 | $(LDR) $(FFLAGS) $(LDFLAGS) -o cppcheck cppcheck.o |
---|
127 | srcscheck: srcscheck.o |
---|
128 | $(LDR) $(FFLAGS) $(LDFLAGS) -o srcscheck srcscheck.o |
---|
129 | checkkwds: checkkwds.o |
---|
130 | $(LDR) $(FFLAGS) $(LDFLAGS) -o checkkwds checkkwds.o |
---|
131 | checkdefs: check_switches1.F setup_kwds.F |
---|
132 | |
---|
133 | check_switches1.F: cppcheck cppdefs.h |
---|
134 | ./cppcheck |
---|
135 | check_srcs.F: srcscheck Makefile |
---|
136 | ./srcscheck |
---|
137 | setup_kwds.F: checkkwds read_inp.F |
---|
138 | ./checkkwds |
---|
139 | partit: partit.o insert_node.o lenstr.o |
---|
140 | $(LDR) $(FFLAGS) $(LDFLAGS) -o partit partit.o insert_node.o lenstr.o $(LCDF) |
---|
141 | ncjoin: ncjoin.o lenstr.o |
---|
142 | $(LDR) $(FFLAGS) $(LDFLAGS) -o ncjoin ncjoin.o lenstr.o $(LCDF) |
---|
143 | ncrename: ncrename.o lenstr.o |
---|
144 | $(LDR) $(FFLAGS) $(LDFLAGS) -o ncrename ncrename.o lenstr.o $(LCDF) |
---|
145 | |
---|
146 | depend: checkdefs cross_matrix |
---|
147 | ./cross_matrix *.F |
---|
148 | |
---|
149 | mymodules: $(MOBJS) $(AMROBJS) |
---|
150 | # |
---|
151 | # Target to create tar file. |
---|
152 | # ====== == ====== === ===== |
---|
153 | # |
---|
154 | tarfile: |
---|
155 | tar cvf roms.tar Make* *.h *.F *.README README.* *.in *.in.* |
---|
156 | # |
---|
157 | # Cleaning: |
---|
158 | # ========= |
---|
159 | # |
---|
160 | rmtools: |
---|
161 | /bin/rm -f $(TOOLS) |
---|
162 | clean: |
---|
163 | /bin/rm -rf core *.o $(AMRDIR)/*.o *.i *.s *.f *.trace *.mod ${COMP_FILES} |
---|
164 | |
---|
165 | clobber: clean |
---|
166 | /bin/rm -rf $(SBIN) $(TOOLS) ./rii_files |
---|
167 | |
---|
168 | |
---|
169 | plotter: plotter.F |
---|
170 | f77 -n32 -o plotter plotter.F $(LIBNCAR) |
---|
171 | |
---|
172 | # |
---|
173 | # Special treatment for barrier function: |
---|
174 | # THERE SHALL BE NO OPTIMIZATION HERE!!!! |
---|
175 | # |
---|
176 | my_barrier.o: my_barrier.f |
---|
177 | $(CFT) -c -O0 my_barrier.f |
---|
178 | # |
---|
179 | # Include automatically generated dependency list: |
---|
180 | # |
---|
181 | |
---|
182 | include Make.depend |
---|
183 | |
---|