source: BOL/script_install/check_version.sh @ 3928

Last change on this file since 3928 was 3926, checked in by Laurent Fairhead, 3 years ago

Initial import of quality coontrol scripts

  • Property svn:executable set to *
  • Property svn:keywords set to Id
File size: 8.4 KB
Line 
1#!/bin/bash
2# $Id: check_version.sh 3926 2021-06-09 09:09:29Z musat $
3
4#########################################################################
5# Verification de a convergence du modele par rapport aux versions
6# precedentes
7# + 1+1=2
8#########################################################################
9
10
11version_ref=latest
12resolution=48x36x19
13resolution=48x36x39 #20160622 : nouveau bench avec deux versions de la physique
14compilo=gfortran
15parallel=none
16parallel=mpi_omp
17tmpdir=/tmp/`whoami` ; mkdir -p $tmpdir
18
19if [ `whoami` = lmdz ] ; then
20   get="ln -sf /u/lmdz/WWW/pub"
21   getold="ln -sf /u/lmdz/WWW/Distrib"
22else
23   get="wget https://www.lmd.jussieu.fr/~lmdz/pub"
24   getold="wget https://www.lmd.jussieu.fr/~lmdz/Distrib"
25fi
26
27if [ `hostname` != cameron.lmd.jussieu.fr ] ; then
28    echo Machine non prevu
29fi
30
31
32# Option pour le debug du script check_version lui meme qui consiste a ne
33# pars reexecuter l'installation et les simulations mais a simplement
34# refaire les diff sur des simulations existantes.
35diagonly=0
36
37
38
39while (($# > 0))
40  do
41  case $1 in
42      "-h") cat <<fin
43check_version.sh [-h] version [version_ref]
44version is the name of the version of LMDZ to be checked modipsl.version.tar.gz
45version_ref is the version to be compared with.
46Default "latest".
47enfo
48fin
49          exit;;
50
51      "-c")
52          compilo="$2" ; shift ; shift ;;
53      *)
54          version="$1" ; shift ; if [ "$#" = 1 ] ; then version_ref=$1 ; shift ; fi ;;
55   esac
56done
57
58
59# branche=`echo $version | cut -d. -f2`
60branche=`echo $version |cut -c 10-`
61datelmdz=`echo $version | cut -d. -f1`
62echo version $version $branche $datelmdz
63
64RESU_D=~/WWW/RESUBENCH/$branche/$compilo
65mkdir -p $RESU_D
66resubench=$RESU_D/$datelmdz
67latest=$RESU_D/$version_ref
68echo version_ref $version_ref $latest
69ls -l  $latest
70
71# recuperation de la version a laquelle on compare pour le message final :
72comparea=`ls -l $RESU_D/$version_ref | awk -F/ ' { print $NF } '`
73
74#  LANCEMENT D UN CERTAIN NOMBRE DE TESTS
75
76
77# Edition de install.sh, install.sh avec bench 48x36x19
78cd $tmpdir
79MODEL=$tmpdir/LMDZ$version
80if [ $diagonly = 0 ] ; then
81  \rm -f install_lmdz.sh ; $get/install_lmdz.sh ; chmod +x install_lmdz.sh
82  ./install_lmdz.sh -v $version -d $resolution -SCM -parallel $parallel
83fi
84
85######################################################
86# Sauvegarde du 1D
87######################################################
88outf=$MODEL/1D/EXEC/NPv6.1L79/ARMCU/REF/restartphy.nc
89if [ -f $outf ] ; then
90   mkdir -p $resubench/ARMCU/REF
91   cp $MODEL/1D/EXEC/NPv6.1L79/ARMCU/REF/restartphy.nc $resubench/ARMCU/REF/
92   cmp -s $resubench/ARMCU/REF/restartphy.nc $latest/ARMCU/REF/restartphy.nc
93   if [ $? = 0 ] ; then converge1D=U ; else converge1D=u ; fi
94else
95   converge1D=-
96fi
97
98
99######################################################
100BENCH=BENCH$resolution
101cd $MODEL/modipsl/mod*/LMD*/$BENCH
102echo BENCH FINI
103ls -lrt
104pwd
105
106
107
108
109
110if [ -f restartphy.nc ] ; then
111#########################################################################
112   echo Verification de la convergence avec la version precedente
113#########################################################################
114# Faite soit sur les restart.nc soit sur une exctraction de ps.nc
115# A une epoque, ne marchait paps avec les restart a cause des traceurs.
116# Le 2014/01/30, ne marchait plus avec ps.nc car les axes de lattiudes
117# s'étaient inversés pour une raison inconnue.
118# 2016/06/21 : on utilise deux versions de la physique pour le test.
119
120# Aide a l'interpretation de resultats problematiques
121#    Les resultats de la simu ancienne physique sont directement
122#      dans BENC*
123#    Les resultats de la nouvelle physique sont dans SIM1 utilise
124#      pour 1+1=2
125#    Les resultats de la simulation debug sont dans SIMD
126
127   mkdir -p $resubench/$BENCH
128   if [ -f restartphy.nc ] ; then
129      ncks -M -m -h -v ps -O restart.nc $resubench/$BENCH/ps.nc
130      cp restart.nc $resubench/$BENCH/restart.nc
131      cmp -s $resubench/$BENCH/restart.nc $latest/$BENCH/restart.nc
132      if [ $? = 0 ] ; then converge=S ; else converge=s ; fi
133   else
134      converge=-
135   fi
136
137#########################################################################
138   echo Verification de 1+1=2
139#########################################################################
140# 2016/06/21 : 1+1=2 est fait sur la nouvelle physique
141# Permet de tester aussi la convergence numérique
142
143   suf=NPv5.5
144   suf=NPv6.0.14splith
145   cp -f config.def_oraer config.def
146   if [ -f physiq.def_$suf ] ; then \cp -f physiq.def_$suf physiq.def ; fi
147   if [ $diagonly = 0 ] ; then 
148       $getold/unpun.sh
149       chmod +x unpun.sh ; ./unpun.sh -parallel $parallel
150   fi
151   cmp -s SIM2/ps_end.nc SIM1+1/ps_end.nc
152   if [ $? = 0 ] ; then
153       unpun=OK
154   else
155       unpun=-
156   fi
157
158#########################################################################
159   echo Test en fonction du nombre de processeurs
160#########################################################################
161   if [ "$parallel" == "mpi_omp" ] ; then
162      mkdir SIM1_41
163      cd SIM1_41
164      ln -s ../SIM1/start* ../SIM1/limit* ../SIM1/sechiba_rest_in.nc ../SIM1/aer*nc ../SIM1/*def .
165      ../run_local.sh 4 1 ../gcm.e > listing
166      cd ..
167      cmp -s SIM1/restart.nc SIM1_41/restart.nc
168      if [ $? = 0 ] ; then
169          if [ "$unpun" = "OK" ] ; then
170             unpun=OK2
171          else
172             unpun=-OK
173          fi
174      else
175          unpun=${unpun}-
176      fi
177   fi
178
179# 2016/06/21 : comparaison des versions nouvelles physique (dans SIM1)
180#   if [ -f restartphy.nc ] ; then  Correction 2017/04/26
181   if [ -f SIM1/restartphy.nc ] ; then
182      ncks -M -m -h -v ps -O SIM1/restart.nc $resubench/$BENCH/ps$suf.nc
183      cp SIM1/restart.nc $resubench/$BENCH/restart$suf.nc
184      \rm sechiba_out_2.nc sechiba_history.nc sechiba_rest_out.nc
185      cmp -s $resubench/$BENCH/restart$suf.nc $latest/$BENCH/restart$suf.nc
186      if [ $? = 0 ] ; then convergeNP=N ; else convergeNP=n ; fi
187   else
188      convergeNP=-
189   fi
190
191#########################################################################
192   echo Verification en mode debug + parallele
193#########################################################################
194   if [ -f compilegcm.sh ] ; then
195      mv gcm.e gcm.install
196      ./compilegcm.sh -debug
197      mkdir SIMD
198      cd SIMD
199      ln -s ../SIM1/start* ../SIM1/limit* ../SIM1/sechiba_rest_in.nc ../SIM1/aer*nc ../SIM1/*def .
200      ../run_local.sh 2 2 ../gcm.e > listing 2>&1
201      cd ../
202      suf=D
203      if [ -f SIMD/restartphy.nc ] ; then
204         ncks -M -m -h -v ps -O SIMD/restart.nc $resubench/$BENCH/ps$suf.nc
205         cp SIMD/restart.nc $resubench/$BENCH/restart$suf.nc
206         cmp -s $resubench/$BENCH/restart$suf.nc $latest/$BENCH/restart$suf.nc
207         if [ $? = 0 ] ; then convergeD=D ; else convergeD=d ; fi
208      else
209         convergeD=-
210      fi
211   fi
212
213#########################################################################
214   echo Verification de initialisation
215#########################################################################
216   rm -rf ../INIT
217   mkdir ../INIT
218   cp *def ../INIT
219   cd ../INIT
220   pwd
221   $getold/initialisation.sh
222   sed -e 's/grid_resolution=48x36x39/grid_resolution='$resolution'/' initialisation.sh > ini.sh
223   chmod +x ini.sh ; ./ini.sh
224   if [ -f limit.nc ] ; then
225      var=Tsoil01srf01
226      mkdir -p $resubench/START$resolution
227      ncks -M -m -h -v $var startphy.nc -O  $resubench/START$resolution/$var.nc
228      cp startphy.nc $resubench/START$resolution/
229#!     cmp -s  $resubench/START$resolution/$var.nc  $latest/START$resolution/$var.nc
230      cmp -s  $resubench/START$resolution/startphy.nc  $latest/START$resolution/startphy.nc
231      if [ $? = 0 ] ; then
232          init=OK
233      else
234          init=noc
235      fi
236   else
237      init=-
238   fi
239   bench=OK
240else
241   echo PROBLEME : LE BENCH N EST PAS ALLE AU BOUT
242   bench=-
243fi
244
245latest=$RESU_D/latest
246\rm -f $latest
247ln -sf  $resubench $latest
248
249cd $MODEL/m*/m*/
250LMDZ=`\ls -d LMD*` #Nom du modele LMDZ sur modeles/ : LMDZ4, LMDZ5, LMDZ
251
252svn upgrade # Il faut mettre à jour le svn si la version sur
253            # laquelle le checkout a ete fait est plus ancienne
254            # ce qu'on souhaite par ailleurs pour pouvoir ensuite
255            # commettre depuis une version ancienne de svn (comme celles
256            # des SL du réseau local
257svnrel=`svn info $LMDZ | grep 'Changed Rev' | head -1 | awk ' { print $4 } '`
258#FH 20160822
259if [ "$svnrel" = "" ] ; then
260  svnrel=`svn info $LMDZ | grep vision | head -1 | awk ' { print $2 } '`
261fi
262
263ccc=$converge$convergeNP$convergeD$converge1D
264if [ "$ccc" = "SNDU" ] ; then ccc="OK " ;  fi
265
266
267echo $version'          '$svnrel'       '$bench'        '$ccc ' '$unpun'        '$init'   (ref:' $comparea ')'
268
269exit
270rm -fr $MODEL
Note: See TracBrowser for help on using the repository browser.