source: codes/icosagcm/devel/make_DySL @ 941

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

devel : split DySL from Python

  • Property svn:executable set to *
File size: 1.4 KB
Line 
1#!/bin/bash
2
3function log()
4{
5    echo $*
6    $*
7}
8
9#----------- Extract DySL from Fortran, invoked by : './make_DySL extract' ------------
10
11function cmd_extract()
12{
13    XT=$KERNELS/kernels_extracted.jin
14    rm -f $XT
15    touch $XT
16    cd $DYNAMICO_ROOT/src
17    for F90 in */*.F90 ; do
18        sed -n '/BEGIN_DYSL/,/END_DYSL/{//b;p}' $F90 >> $XT
19    done
20    cd $DYNAMICO_ROOT
21}
22
23#--------------- Generate kernels, invoked by : './make_DySL' ---------------
24
25function update()
26{
27    diff $2 $1 || log cp -pr $1 $2
28}
29
30function update_kernels()
31{
32    cd $KERNELS/$1
33    for x in *.k90 ; do
34        update "$x" "$DYNAMICO_ROOT/src/$2/$x"
35    done
36}
37
38function cmd_() 
39{
40    cmd_clean
41    cmd_extract
42    cd $KERNELS
43    ./codegen hexagonal hex_master unstructured
44    update_kernels hexagonal kernels_hex
45    update_kernels hex_master kernels_hex_master
46    update_kernels unstructured kernels_unst
47# make sure that ./rebuild recompiles dynamics
48    cd $DYNAMICO_ROOT
49#    touch src/dynamics/*.F90 src/diagnostics/*.F90 src/transport/*.F90 src/unstructured/*.F90
50}
51
52#------------------------- script starts here ------------------------
53
54DYNAMICO_ROOT=$PWD
55KERNELS=$DYNAMICO_ROOT/DySL
56
57. arch.env
58. arch.path
59echo "Selected architecture : $CURRENT_ARCH"
60if [[ "$CURRENT_ARCH" == "" ]] ; then echo "Current architecture undefined or unsupported" ; exit ; fi
61
62cd arch
63. "arch-${CURRENT_ARCH}.dev"
64cd ..
65time cmd_$1
Note: See TracBrowser for help on using the repository browser.