source: trunk/UTIL/PYTHON/fmcd5_gfortran.sh @ 932

Last change on this file since 932 was 859, checked in by aslmd, 12 years ago

UTIL PYTHON MCDonline. Support for MCD5. Added eps figures. Various other informations added (diapo mode, text file with web arborescence).

  • Property svn:executable set to *
File size: 2.2 KB
Line 
1#! /bin/bash
2
3###
4### fmcd_gfortran.sh
5###
6### ---> This should be used to make MCD fortran stuff directly accessible in python
7### ---> This script is for gfortran, but it is easy to adapt to your other compilers
8### ---> A file fmcd.so should be created
9### ---> See mcd.py for use in python. Very easy!
10###
11### AS. 17/04/2012.
12###
13
14### LINKS
15NETCDF=/home/marshttp/NETCDF/netcdf64-4.0.1_gfortran_fPIC/
16wheremcd=/home/marshttp/MCD_v5.0//mcd/
17
18### LOG FILE
19touch fmcd5.log
20\rm fmcd5.log
21
22### COPY/PREPARE SOURCES
23### perform changes that makes f2py not to fail
24sed s/"\!\!'"/"'"/g $wheremcd/call_mcd.F         | sed s/"\!'"/"'"/g | sed s/"\!"/"\n\!"/g > tmp.call_mcd.F
25sed s/"\!\!'"/"'"/g $wheremcd/julian.F           | sed s/"\!'"/"'"/g | sed s/"\!"/"\n\!"/g > tmp.julian.F
26sed s/"\!\!'"/"'"/g $wheremcd/heights.F          | sed s/"\!'"/"'"/g | sed s/"\!"/"\n\!"/g > tmp.heights.F
27sed s/"\!\!'"/"'"/g $wheremcd/constants_mcd.inc  | sed s/"\!'"/"'"/g | sed s/"\!"/"\n\!"/g > constants_mcd.inc
28
29### BUILD THROUGH f2py WHAT IS NECESSARY TO CREATE THE PYTHON FUNCTIONS
30touch fmcd5.pyf
31\rm fmcd5.pyf
32f2py -h fmcd5.pyf -m fmcd5 tmp.call_mcd.F tmp.julian.F tmp.heights.F > fmcd5.log 2>&1
33
34#### IMPORTANT: we teach f2py about variables in the call_mcd subroutines which are intended to be out
35sed s/"real :: pres"/"real, intent(out) :: pres"/g fmcd5.pyf | \
36sed s/"real :: dens"/"real, intent(out) :: dens"/g | \
37sed s/"real :: temp"/"real, intent(out) :: temp"/g | \
38sed s/"real :: zonwind"/"real, intent(out) :: zonwind"/g | \
39sed s/"real :: merwind"/"real, intent(out) :: merwind"/g | \
40sed s/"real dimension(5) :: meanvar"/"real dimension(5),intent(out) :: meanvar"/g | \
41sed s/"real dimension(100) :: extvar"/"real dimension(100),intent(out) :: extvar"/g | \
42sed s/"real :: seedout"/"real, intent(out) :: seedout"/g | \
43sed s/"integer :: ier"/"integer, intent(out) :: ier"/g > fmcd5.pyf.modif
44mv fmcd5.pyf.modif fmcd5.pyf
45
46### BUILD
47f2py -c fmcd5.pyf tmp.call_mcd.F tmp.julian.F tmp.heights.F --fcompiler=gnu95 \
48  -L$NETCDF/lib -lnetcdf \
49  -lm -I$NETCDF/include \
50  --f90flags="-fPIC" \
51  --f77flags="-fPIC" \
52  --verbose \
53  > fmcd5.log 2>&1
54#  --include-paths $NETCDF/include:$NETCDF/lib \ ---> makes it fail
55
56### CLEAN THE PLACE
57\rm tmp.call_mcd.F tmp.julian.F tmp.heights.F constants_mcd.inc
Note: See TracBrowser for help on using the repository browser.