# Compiler settings FC = ifort OPT = -O3 # Optimization level (you can adjust this) Inc = "/work/apps/intel_2016/netcdf/4.3.3.1/" # List of source files # BC_S2S_Ann_new.f90 BC_S2S_ecmwf.f90 S2S_Veri_BC_N2.f90 S2S_Veri_Org_N2.f90 # SOURCES = neural.f90 BC_ANN_New_1982_2020_Apr_2024.f90 SOURCES1 = Decom_IOD.f90 SOURCES2 = SOURCES3 = SOURCES4 = SOURCES5 = SOURCES6 = SOURCES7 = # Directory for object files OBJ_DIR = obj_files # Object files (replace .f90 with .o) OBJECTS1 = $(addprefix $(OBJ_DIR)/,$(SOURCES1:.f90=.o)) OBJECTS2 = $(addprefix $(OBJ_DIR)/,$(SOURCES2:.f90=.o)) OBJECTS3 = $(addprefix $(OBJ_DIR)/,$(SOURCES3:.f90=.o)) OBJECTS4 = $(addprefix $(OBJ_DIR)/,$(SOURCES4:.f90=.o)) OBJECTS5 = $(addprefix $(OBJ_DIR)/,$(SOURCES5:.f90=.o)) OBJECTS6 = $(addprefix $(OBJ_DIR)/,$(SOURCES6:.f90=.o)) OBJECTS7 = $(addprefix $(OBJ_DIR)/,$(SOURCES7:.f90=.o)) # Executable name a1 = 1.exe a2 = 2.exe a3 = 3.exe a4 = 4.exe a5 = 5.exe a6 = 6.exe a7 = 7.exe # Default target: build the executable all: $(a1) $(a2) $(a3) $(a4) $(a5) # $(EXECUTABLE1) $(EXECUTABLE2) 1: $(a1) 2: $(a2) 3: $(a3) 4: $(a4) 5: $(a5) 6: $(a6) 7: ${a7} # Compile Fortran source files to object files $(OBJ_DIR)/%.o: %.f90 @mkdir -p $(OBJ_DIR) $(FC) $(OPT) -c $< -o $@ -L ${Inc}lib/ -lnetcdff -I ${Inc}include/ # Link object files to create the executable #$(EXECUTABLE1): $(OBJECTS) $(a1): $(OBJECTS1) $(FC) -o $@ $(OBJECTS1) -L ${Inc}lib/ -lnetcdff -I ${Inc}include/ #$(MODULES) $(a2): $(OBJECTS2) $(FC) -o $@ $(OBJECTS2) -L ${Inc}lib/ -lnetcdff -I ${Inc}include/ $(a3): $(OBJECTS3) $(FC) -o $@ $(OBJECTS3) -L ${Inc}lib/ -lnetcdff -I ${Inc}include/ $(a4): $(OBJECTS4) $(FC) -o $@ $(OBJECTS4) -L ${Inc}lib/ -lnetcdff -I ${Inc}include/ $(a5): $(OBJECTS5) $(FC) -o $@ $(OBJECTS5) -L ${Inc}lib/ -lnetcdff -I ${Inc}include/ $(a6): $(OBJECTS6) $(FC) -o $@ $(OBJECTS6) -L ${Inc}lib/ -lnetcdff -I ${Inc}include/ $(a7): $(OBJECTS7) $(FC) -o $@ $(OBJECTS7) -L ${Inc}lib/ -lnetcdff -I ${Inc}include/ # Clean up intermediate files clean: rm -rf $(OBJ_DIR) $(a1) $(a2) *.exe #EXECUTABLE)