source: dynamico_lmdz/simple_physics/phyparam/Makefile @ 4226

Last change on this file since 4226 was 4226, checked in by dubos, 6 years ago

simple_physics : ensure F2003 compatibility (PGI Fortran)

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