Changeset 10713 for NEMO/branches/2019
- Timestamp:
- 2019-02-21T21:29:46+01:00 (5 years ago)
- Location:
- NEMO/branches/2019/fix_sette_ticket2239
- Files:
-
- 1 added
- 4 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/fix_sette_ticket2239/README
r10708 r10713 69 69 in sette_rpt.sh : if no argument are given, the report will be generated on the last changed revision. 70 70 if an argument is given (revision number) the report will be generated for this revision 71 if 'old' is given as argument the former behavior is applied (the latest revision is check whatever the current revision 71 72 72 73 NOTE: -
NEMO/branches/2019/fix_sette_ticket2239/param.cfg
r10699 r10713 2 2 # 3 3 # Compiler among those in NEMOGCM/ARCH 4 COMPILER=X 64_ADA4 COMPILER=XC40_METO_perso 5 5 # 6 6 # BATCH command 7 BATCH_CMD=llsubmit 7 # command to submit a job 8 BATCH_CMD=qsub 9 # command to check job status 10 BATCH_STAT=qstat 8 11 # 9 12 #- FORCING files storing 10 FORCING_DIR= $WORKDIR/FORCING13 FORCING_DIR=/projects/jomp/pmathiot/SETTE_FORCING/v4.0 11 14 # 12 15 #- INPUT files storing … … 14 17 # 15 18 #- VALIDATION files storing 16 NEMO_VALIDATION_DIR= $WORKDIR/NEMO_VALIDATION19 NEMO_VALIDATION_DIR=/projects/jomp/pmathiot/NEMO/NEMO_dev/NEMO/trunk/sette_ticket2239/NEMO_VALIDATION 17 20 # 18 21 # REFERENCE run.stat tracer.stat you want to compare with 19 22 # (if no change to the default, no check on result change will be done) 20 NEMO_VALIDATION_REF=/p ath/to/reference/sette/results21 NEMO_REV_REF= 000023 NEMO_VALIDATION_REF=/projects/jomp/pmathiot/NEMO/NEMO_dev/NEMO/trunk/sette/NEMO_VALIDATION 24 NEMO_REV_REF=10508 22 25 # 23 26 # CMD for svn (some people use git svn) -
NEMO/branches/2019/fix_sette_ticket2239/sette.sh
r10690 r10713 1 1 #!/bin/sh 2 # initialise user dependent variable 3 . ./param.cfg 2 4 3 5 # run sette on reference configuration 4 ./sette_ cfg-ref.sh6 ./sette_reference-configurations.sh 5 7 if [[ $? != 0 ]]; then 6 8 echo "" … … 24 26 25 27 # run sette report 26 ./sette_rpt.sh 27 28 echo "" 29 echo "-------------------------------------------------------------" 30 echo "./sette_rpt.sh (script will wait all nemo_sette run are done)" 31 echo "-------------------------------------------------------------" 32 echo "" 33 NRUN=999 34 NIT=0 35 while [[ $NRUN -ne 0 && $nit -le 1080 ]]; do 36 nit=$((nit+1)) 37 NRUN=$( ${BATCH_STAT} | grep nemo_sette | wc -l ) 38 if [[ $NRUN -ne 0 ]]; then 39 printf "%-3d %s\r" $NRUN 'nemo_sette run still in queue or running ...'; 40 else 41 printf "%s\n" " " 42 ./sette_rpt.sh 43 exit 44 fi 45 sleep 10 46 done 47 printf "\n" 48 echo "" 49 echo "Something wrong happened, it tooks more than 3 hours to run all the sette tests" 50 echo "" -
NEMO/branches/2019/fix_sette_ticket2239/sette_reference-configurations.sh
r10700 r10713 325 325 set_namelist namelist_cfg ln_stcor .true. 326 326 set_namelist namelist_cfg ln_tauwoc .true. 327 set_namelist namelist_cfg nn_fsbc 5328 327 # 329 328 if [ ${USING_ICEBERGS} == "no" ] ; then set_namelist namelist_cfg ln_icebergs .false. ; fi … … 377 376 set_namelist namelist_cfg ln_stcor .true. 378 377 set_namelist namelist_cfg ln_tauwoc .true. 379 set_namelist namelist_cfg nn_fsbc 5380 378 # 381 379 if [ ${USING_ICEBERGS} == "no" ] ; then set_namelist namelist_cfg ln_icebergs .false. ; fi … … 450 448 set_namelist namelist_cfg ln_stcor .true. 451 449 set_namelist namelist_cfg ln_tauwoc .true. 452 set_namelist namelist_cfg nn_fsbc 5453 450 454 451 if [ ${USING_ICEBERGS} == "no" ] ; then set_namelist namelist_cfg ln_icebergs .false. ; fi … … 502 499 set_namelist namelist_cfg ln_stcor .true. 503 500 set_namelist namelist_cfg ln_tauwoc .true. 504 set_namelist namelist_cfg nn_fsbc 5505 501 506 502 if [ ${USING_ICEBERGS} == "no" ] ; then set_namelist namelist_cfg ln_icebergs .false. ; fi … … 860 856 set_namelist namelist_cfg cn_exp \"SAS\" 861 857 set_namelist namelist_cfg nn_it000 1 862 set_namelist namelist_cfg nn_itend 2 40863 set_namelist namelist_cfg nn_stock 12 0858 set_namelist namelist_cfg nn_itend 256 859 set_namelist namelist_cfg nn_stock 128 864 860 set_namelist namelist_cfg jpni 4 865 861 set_namelist namelist_cfg jpnj 8 … … 882 878 cd ${EXE_DIR} 883 879 set_namelist namelist_cfg cn_exp \"SAS\" 884 set_namelist namelist_cfg nn_it000 12 1885 set_namelist namelist_cfg nn_itend 2 40880 set_namelist namelist_cfg nn_it000 129 881 set_namelist namelist_cfg nn_itend 256 886 882 set_namelist namelist_cfg jpni 4 887 883 set_namelist namelist_cfg jpnj 8 … … 892 888 set_namelist namelist_cfg nn_rstctl 2 893 889 set_namelist namelist_cfg nn_date0 010109 894 set_namelist namelist_cfg cn_ocerst_in \"SAS_0000012 0_restart\"895 set_namelist namelist_ice_cfg cn_icerst_in \"SAS_0000012 0_restart_ice\"890 set_namelist namelist_cfg cn_ocerst_in \"SAS_00000128_restart\" 891 set_namelist namelist_ice_cfg cn_icerst_in \"SAS_00000128_restart_ice\" 896 892 if [ ${USING_MPMD} == "yes" ] ; then 897 893 set_xio_using_server iodef.xml true … … 902 898 L_NPROC=$(( $i - 1 )) 903 899 L_NPROC=`printf "%04d\n" ${L_NPROC}` 904 ln -sf ../LONG/SAS_0000012 0_restart_${L_NPROC}.nc .905 ln -sf ../LONG/SAS_0000012 0_restart_ice_${L_NPROC}.nc .900 ln -sf ../LONG/SAS_00000128_restart_${L_NPROC}.nc . 901 ln -sf ../LONG/SAS_00000128_restart_ice_${L_NPROC}.nc . 906 902 done 907 903 cd ${SETTE_DIR} … … 924 920 set_namelist namelist_cfg cn_exp \"SAS_48\" 925 921 set_namelist namelist_cfg nn_it000 1 926 set_namelist namelist_cfg nn_itend 75922 set_namelist namelist_cfg nn_itend 80 927 923 set_namelist namelist_cfg jpni 4 928 924 set_namelist namelist_cfg jpnj 8 … … 950 946 set_namelist namelist_cfg cn_exp \"SAS_84\" 951 947 set_namelist namelist_cfg nn_it000 1 952 set_namelist namelist_cfg nn_itend 75948 set_namelist namelist_cfg nn_itend 80 953 949 set_namelist namelist_cfg jpni 8 954 950 set_namelist namelist_cfg jpnj 4 … … 990 986 set_namelist namelist_cfg cn_exp \"O2L3OBS_48\" 991 987 set_namelist namelist_cfg nn_it000 1 992 set_namelist namelist_cfg nn_itend 75988 set_namelist namelist_cfg nn_itend 80 993 989 set_namelist namelist_cfg ln_read_cfg .true. 994 990 set_namelist namelist_cfg jpni 4 … … 1043 1039 set_namelist namelist_cfg cn_exp \"O2L3OBS_84\" 1044 1040 set_namelist namelist_cfg nn_it000 1 1045 set_namelist namelist_cfg nn_itend 751041 set_namelist namelist_cfg nn_itend 80 1046 1042 set_namelist namelist_cfg ln_read_cfg .true. 1047 1043 set_namelist namelist_cfg jpni 8 -
NEMO/branches/2019/fix_sette_ticket2239/sette_rpt.sh
r10709 r10713 10 10 ######################### Start of function definitions ################################# 11 11 ## 12 13 function get_dorv() { 14 if [ $lastchange == 'old' ] ; then 15 dorv=`ls -1rt $vdir/$nam/$mach/ | tail -1l ` 16 dorv=`echo $dorv | sed -e 's:.*/::'` 17 else 18 dorv=$lastchange 19 fi 20 } 12 21 13 22 function restfile() { … … 23 32 pass=$3 24 33 25 # 34 # get $dorv 35 get_dorv 26 36 # 27 37 # check if directory is here 28 38 if [ ! -d $vdir/$nam/$mach/$dorv ]; then 29 printf "%-27s %s %s %s\n" $nam " directory MISSING : " $dorv " ( run did not start / finish correctly ) "39 printf "%-27s %s %s\n" $nam " directory MISSING : " $dorv 30 40 return 31 41 fi … … 108 118 pass=$3 109 119 # 120 # get $dorv 121 get_dorv 110 122 # 111 123 # check if directory is here 112 124 if [ ! -d $vdir/$nam/$mach/$dorv ]; then 113 printf "%-27s %s %s %s\n" $nam " directory MISSING : " $dorv " ( run did not start / finish correctly ) "125 printf "%-27s %s %s\n" $nam " directory MISSING : " $dorv 114 126 return 115 127 fi 116 128 117 129 if [ -d $vdir/$nam/$mach/$dorv ]; then 130 # check ocean output 131 runtest $vdir $nam $pass RST 132 # 133 # run restartibility test 118 134 f1o=$vdir/$nam/$mach/$dorv/LONG/ocean.output 119 135 f1s=$vdir/$nam/$mach/$dorv/LONG/run.stat … … 206 222 pass=$3 207 223 # 224 # get $dorv 225 get_dorv 226 # 208 227 # check if directory is here 209 228 if [ ! -d $vdir/$nam/$mach/$dorv ]; then 210 printf "%-27s %s %s %s\n" $nam " directory MISSING : " $dorv " ( run did not start / finish correctly ) "229 printf "%-27s %s %s\n" $nam " directory MISSING : " $dorv 211 230 return 212 231 fi 213 232 # 214 233 if [ -d $vdir/$nam/$mach/$dorv ]; then 234 # check ocean output 235 runtest $vdir $nam $pass REPRO 236 # 237 # check reproducibility 215 238 rep1=`ls -1rt $vdir/$nam/$mach/$dorv/ | grep REPRO | tail -2l | head -1 ` 216 239 rep2=`ls -1rt $vdir/$nam/$mach/$dorv/ | grep REPRO | tail -1l` … … 301 324 pass=$5 302 325 # 326 # get $dorv 327 get_dorv 328 # 303 329 # check if reference directory is present 304 330 if [ ! -d $vdirref/$nam/$mach/$dorvref ]; then … … 332 358 if [ $? == 0 ]; then 333 359 if [ $pass == 0 ]; then 334 printf "%-20s %s %s\n" $nam " run.stat before/after are similar"360 printf "%-20s %s %s\n" $nam " run.stat files are identical " 335 361 fi 336 362 else 337 printf "%-20s %s %s\n" $nam " run.stat before/afterare DIFFERENT "363 printf "%-20s %s %s\n" $nam " run.stat files are DIFFERENT " 338 364 # 339 365 # Offer view of differences on the second pass … … 342 368 echo "<return> to view run.stat differences" 343 369 read y 344 sdiff f1.tmp$$$f2s370 sdiff $f1s $f2s 345 371 done_oce=1 346 372 echo "<return> to continue" … … 355 381 if [ $? == 0 ]; then 356 382 if [ $pass == 0 ]; then 357 printf "%-20s %s %s\n" $nam " tracer.stat before/after are similar"383 printf "%-20s %s %s\n" $nam " tracer.stat files are identical " 358 384 fi 359 385 else 360 printf "%-20s %s %s\n" $nam " tracer.stat before/afterare DIFFERENT "386 printf "%-20s %s %s\n" $nam " tracer.stat files are DIFFERENT " 361 387 # 362 388 # Offer view of differences on the second pass … … 380 406 nam=$2 381 407 pass=$3 408 ttype=$4 409 [[ $ttype == 'RST' ]] && ttype="LONG|SHORT" 410 # 411 # get $dorv 412 get_dorv 382 413 # 383 414 # no print needed if the repository is not here (already catch before) 384 415 # 385 416 if [ -d $vdir/$nam/$mach/$dorv/ ]; then 386 rep1=`ls -1rt $vdir/$nam/$mach/$dorv/ | grep LONG | head -1 `387 if [ -z $rep1 ] ; then388 # Not all configurations test restartability (LONG/SHORT);389 # check for a reproducibility directory instead (REPRO)390 rep1=`ls -1rt $vdir/$nam/$mach/$dorv/ | grep REPRO | head -1 `391 fi392 f1o=$vdir/$nam/$mach/$dorv/$rep1/ocean.output393 if [ ! -f $f1o ] ; then394 if [ $pass == 0 ]; then printf "%-27s %s %s %s\n" $nam " ocean.output MISSING : " $dorv " ( run did not start / finish correctly ) " ; fi395 return;396 else397 nerr=`grep 'E R R O R' $f1o | wc -l`398 if [[ $nerr > 0 ]]; then399 printf "%-27s %s %s %s\n" $nam " run FAILED : " $dorv " ( E R R O R in ocean.output) "400 if [ $pass == 1 ]; then401 echo "<return> to view end of ocean.output"402 read y403 tail -100 $f1o404 echo ''405 echo "full ocean.output available here: $f1o"406 fi407 fi408 fi417 # 418 # apply check for all ttype directory 419 rep1=$(ls -rt $vdir/$nam/$mach/$dorv/ | grep -E $ttype) 420 for tdir in $rep1 ; do 421 f1o=$vdir/$nam/$mach/$dorv/$tdir/ocean.output 422 if [ ! -f $f1o ] ; then 423 if [ $pass == 0 ]; then printf "%-27s %s %s\n" $nam " ocean.output MISSING : " $dorv ; fi 424 return; 425 else 426 nerr=`grep 'E R R O R' $f1o | wc -l` 427 if [[ $nerr > 0 ]]; then 428 printf "%-27s %s %s %s\n" $nam " run FAILED : " $dorv " ( E R R O R in ocean.output) " 429 if [ $pass == 1 ]; then 430 echo "<return> to view end of ocean.output" 431 read y 432 tail -100 $f1o 433 echo '' 434 echo "full ocean.output available here: $f1o" 435 fi 436 return; 437 fi 438 fi 439 done 409 440 else 410 if [ $pass == 0 ]; then printf "%-27s %s %s %s\n" $nam " directory MISSING : " $dorv " ( run did not start / finish correctly ) "; fi441 if [ $pass == 0 ]; then printf "%-27s %s %s\n" $nam " directory MISSING : " $dorv ; fi 411 442 fi 412 443 } … … 502 533 503 534 # overwrite revision is argument 1 present 504 [[ $# -eq 1 ]] && revision=$1535 [[ $# -eq 1 ]] && lastchange=$1 505 536 506 537 echo "" 507 echo "SETTE validation report generated for : $branchname @ r$ revision"538 echo "SETTE validation report generated for : $branchname @ r$lastchange (last changed revision)" 508 539 echo "" 509 510 dorv=$revision511 540 512 541 # … … 539 568 do 540 569 resttest $NEMO_VALID $restart_test $pass 541 runtest $NEMO_VALID $restart_test $pass542 570 done 543 571 # … … 548 576 do 549 577 reprotest $NEMO_VALID $repro_test $pass 550 runtest $NEMO_VALID $repro_test $pass551 578 done 552 579 … … 559 586 # 560 587 # before/after tests 561 echo "" 562 echo " !----result comparison check----! " 563 if [ $NEMO_VALID_REF != "/path/to/reference/sette/results" ]; then 564 echo '' 565 echo 'check result differences between :' 566 echo "VALID directory : $NEMO_VALID at rev $revision" 567 echo 'and' 568 echo "REFERENCE directory : $NEMO_VALID_REF at rev $NEMO_REV_REF" 569 echo '' 570 for repro_test in WGYRE_PISCES_ST WORCA2_ICE_PISCES_ST WORCA2_OFF_PISCES_ST WAMM12_ST WISOMIP_ST WORCA2_SAS_ICE_ST WAGRIF_DEMO_ST WSPITZ12_ST WISOMIP_ST WVORTEX_ST WICE_AGRIF_ST 571 do 572 runcmpres $NEMO_VALID $repro_test $NEMO_VALID_REF $NEMO_REV_REF $pass 573 done 588 if [ $lastchange == 'old' ] ; then 589 echo "" 590 echo " !---- 'old' specified as revision => no comparison with reference results ----! " 591 echo "" 574 592 else 575 echo '' 576 echo ' No path for comparison specified. Result are not compare with any other revision. ' 577 echo ' To do it please fill NEMO_VALID_REF and NEMO_REV_REF in param.cfg. ' 578 echo '' 593 echo "" 594 echo " !----result comparison check----! " 595 if [ $NEMO_VALID_REF != "/path/to/reference/sette/results" ]; then 596 echo '' 597 echo 'check result differences between :' 598 echo "VALID directory : $NEMO_VALID at rev $lastchange" 599 echo 'and' 600 echo "REFERENCE directory : $NEMO_VALID_REF at rev $NEMO_REV_REF" 601 echo '' 602 for repro_test in WGYRE_PISCES_ST WORCA2_ICE_PISCES_ST WORCA2_OFF_PISCES_ST WAMM12_ST WISOMIP_ST WORCA2_SAS_ICE_ST WAGRIF_DEMO_ST WSPITZ12_ST WISOMIP_ST WVORTEX_ST WICE_AGRIF_ST 603 do 604 runcmpres $NEMO_VALID $repro_test $NEMO_VALID_REF $NEMO_REV_REF $pass 605 done 606 else 607 echo '' 608 echo ' No path for comparison specified. Result are not compare with any other revision. ' 609 echo ' To do it please fill NEMO_VALID_REF and NEMO_REV_REF in param.cfg. ' 610 echo '' 611 fi 579 612 fi 580 581 613 done 582 614 #
Note: See TracChangeset
for help on using the changeset viewer.