[2] | 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 | |
---|