source: dynamico_lmdz/simple_physics/phyparam/Makefile @ 4231

Last change on this file since 4231 was 4229, checked in by dubos, 5 years ago

simple_physics : beautify code

File size: 1.5 KB
Line 
1# known to compile with gfortran version 7, ifort version 17, pgfortran version 18
2# Examples
3# F90=ifort FFLAGS=-fast make clean all
4# F90=gfortran F90FLAGS=-ffree-line-length-none make clean all
5# F90=pgfortran F90FLAGS="-fast -Minfo=loop" make clean all
6
7# if XCodeML F_Front is installed, set FFRONT=F_Front to parse code into XML
8FFRONT ?= true
9
10F90 ?= gfortran
11F90FLAGS ?= -ffree-line-length-none
12
13VPATH = obj
14NAMES = $(basename $(notdir $(wildcard physics/*.F90)))
15OBJECTS = $(addprefix obj/, $(addsuffix .o, $(NAMES)))
16
17all : obj $(OBJECTS) lib/libphyparam.so
18
19obj :
20        @mkdir obj include lib xml
21
22clean :
23        rm -f obj/* include/* lib/* xml/*
24        ../bash/beautify.sh physics/*.F90
25%.so : $(OBJECTS)
26        $(F90) -shared $^ -o $@ 
27
28obj/read_param_mod.o   : logging.o
29obj/write_field_mod.o  : logging.o
30obj/convection.o       : logging.o
31obj/surface.o          : logging.o
32obj/astronomy.o        : logging.o
33obj/solar.o            : logging.o astronomy.o
34obj/radiative_lw.o     : logging.o phys_const.o
35obj/radiative_sw.o     : logging.o phys_const.o
36obj/turbulence.o       : logging.o phys_const.o
37MAIN                   : callkeys.o phys_const.o astronomy.o turbulence.o surface.o convection.o planet.o
38obj/iniphyparam_mod.o  : MAIN read_param_mod.o
39obj/phyparam_mod.o     : MAIN solar.o radiative_sw.o radiative_lw.o comgeomfi.o writefield_mod.o
40
41SRC = $(basename $(notdir $@))
42obj/%.o: physics/%.F90
43        $(F90) -I include -fPIC $(F90FLAGS) -c $<
44        @mv $(SRC).mod include
45        @mv $(SRC).o obj
46        @cpp -DXCODEML $< > xml/$(SRC).f90
47        @$(FFRONT) -M xml xml/$(SRC).f90 > xml/$(SRC).xml
Note: See TracBrowser for help on using the repository browser.