Changeset 14867
- Timestamp:
- 2021-05-14T18:51:03+02:00 (3 years ago)
- Location:
- utils/CI/sette_ticket2673
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
utils/CI/sette_ticket2673/all_functions.sh
r13795 r14867 184 184 fi 185 185 [ `${SVN_CMD} status -q ${SETTE_DIR}/../{cfgs,tests,src} | wc -l` -ge 1 ] && REVISION_NB=${REVISION_NB}+ 186 NEMO_VALID=${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME} 186 #NEMO_VALID=${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME} 187 NEMO_VALID=${NEMO_VALIDATION_DIR}/${CMP_NAM}/${REVISION_NB}/${NEW_CONF/%_ST//}/${TEST_NAME} 187 188 } 188 189 -
utils/CI/sette_ticket2673/param.cfg
r14861 r14867 41 41 # 42 42 # RUN setup 43 # generi quebatch scrip prefix name if MPMD set to true/false43 # generic batch scrip prefix name if MPMD set to true/false 44 44 JOB_PREFIX_MPMD=${SETTE_JOB_PREFIX_MPMD:-batch-mpmd} 45 45 JOB_PREFIX_NOMPMD=${SETTE_JOB_PREFIX_NOMPMD:-batch} 46 46 # ------------------------------------------------------------------------------------------ 47 47 # 48 # MISCEL ENIOUS48 # MISCELLANEOUS 49 49 # command for svn (some people use git svn) 50 50 # used in sette_rpt and in all_function to display revision and build correct repository name -
utils/CI/sette_ticket2673/sette.sh
r14861 r14867 4 4 SETTE_DIR=$(cd $(dirname "$0"); pwd) 5 5 MAIN_DIR=$(dirname $SETTE_DIR) 6 export CMPL_CORES=8 # Number of threads to use for compiling 7 dry_run=0 6 8 # 7 9 # controls for some common namelist, run-time options: … … 10 12 export USING_ICEBERGS='yes' # Default: yes => set ln_icebergs=.true. ; use -i to disable 11 13 export USING_EXTRA_HALO='yes' # Default: yes => set nn_hls=2 ; use -e to set nn_hls=1 14 export USING_COLLECTIVES='yes' # Default: yes => set nn_comm=2 ; use -C to set nn_comm=1 12 15 export USING_TILING='yes' # Default: yes => set ln_tile=.true. ; use -t to disable 13 16 # Note: yes also ensures nn_hls=2 but -t will not alter nn_hls … … 30 33 # Parse command-line arguments 31 34 if [ $# -gt 0 ]; then 32 while getopts n:x:v:c shTzqQteiAFX option; do35 while getopts n:x:v:cdshTzqQteiACFX option; do 33 36 case $option in 34 37 c) export SETTE_CLEAN_CONFIGS='yes' 35 38 export SETTE_SYNC_CONFIGS='yes' 36 39 echo "-c: Configuration $SETTE_TEST_CONFIGS will be cleaned; this option enforces also synchronisation" 40 echo "";; 41 d) dry_run=1 37 42 echo "";; 38 43 s) export SETTE_SYNC_CONFIGS='yes' … … 65 70 echo "-i: ln_icebergs will be set to false" 66 71 echo "";; 67 z) export USING_NOSIGNED0='no' 72 C) export USING_COLLECTIVES='no' 73 echo "-C: nn_comm will be set to 1" 74 echo "";; 75 z) export USING_NOSIGNED0='no' 68 76 echo "-z: key_nosignedzero will NOT be activated" 69 77 echo "";; 70 78 q) export USING_QCO='no' 71 79 echo "-q: key_qco and key_linssh will NOT be activated" 72 80 echo "";; 73 81 Q) export USING_RK3='no' 74 82 echo "-Q: key_qco and key_RK3 will not be activated" 75 83 echo " This is the curent default for now since RK3 is not ready" … … 89 97 echo '-e set nn_hls=1 (default: nn_hls=2)' 90 98 echo '-i set ln_icebergs false (default: true)' 99 echo '-C set nn_comm=1 (default: nn_comm=2 ==> use MPI3 collective comms)' 91 100 echo '-z to remove the key_nosignedzero key (default: added)' 92 101 echo '-q to remove the key_qco key (default: added)' … … 98 107 echo '-x "TEST_type TEST_type ..." to specify particular types of test (RESTART is mandatory)' 99 108 echo '-v "subdir" optional validation record subdirectory to be created below NEMO_VALIDATION_DIR' 109 echo '-d to perform a dryrun to simply report what settings will be used' 100 110 echo '-c to clean each configuration' 101 111 echo '-s to synchronise the sette MY_SRC and EXP00 with the reference MY_SRC and EXPREF'; exit 42 ;; … … 150 160 fi 151 161 export NEMO_VALIDATION_DIR=$NEMO_VALIDATION_DIR/$SETTE_SUB_VAL 152 if [ -d $NEMO_VALIDATION_REF/$SETTE_SUB_VAL ] ; then153 while true; do154 read -p "$NEMO_VALIDATION_REF/$SETTE_SUB_VAL exists. Do you wish to use it as a reference? " yn155 case $yn in156 [Yy]* ) export $NEMO_VALIDATION_REF-$NEMO_VALIDATION_REF/$SETTE_SUB_VAL; break;;157 [Nn]* ) exit;;158 * ) echo "Please answer yes or no.";;159 esac160 done161 fi162 162 fi 163 163 … … 172 172 printf "%-33s : %s\n" USING_EXTRA_HALO $USING_EXTRA_HALO 173 173 printf "%-33s : %s\n" USING_TILING $USING_TILING 174 printf "%-33s : %s\n" USING_COLLECTIVES $USING_COLLECTIVES 174 175 printf "%-33s : %s\n" USING_NOSIGNED0 $USING_NOSIGNED0 175 176 printf "%-33s : %s\n" USING_QCO $USING_QCO … … 187 188 # 188 189 if [ ${USING_MPMD} == "yes" ] && [ ${USING_XIOS} == "no" ] ; then echo "Incompatible choices. MPMD mode requires the XIOS server" ; exit ; fi 190 191 if [ ${dry_run} -eq 1 ] ; then echo "dryrun only: no tests performed" ; exit ; fi 189 192 190 193 # run sette on reference configuration -
utils/CI/sette_ticket2673/sette_reference-configurations.sh
r14861 r14867 150 150 clean_config GYRE_PISCES GYRE_PISCES_ST 'cfgs' 151 151 # 152 . ./makenemo -m ${CMP_NAM} -n GYRE_PISCES_ST -r GYRE_PISCES -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"153 cd ${SETTE_DIR}154 . ./param.cfg152 # GYRE uses linssh so remove key_qco if added by default 153 . ./makenemo -m ${CMP_NAM} -n GYRE_PISCES_ST -r GYRE_PISCES -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}" 154 cd ${SETTE_DIR} 155 155 . ./all_functions.sh 156 156 . ./prepare_exe_dir.sh … … 224 224 cd ${MAIN_DIR} 225 225 cd ${SETTE_DIR} 226 . ./param.cfg227 226 . ./all_functions.sh 228 227 . ./prepare_exe_dir.sh … … 302 301 clean_config ORCA2_ICE_PISCES ORCA2_ICE_PISCES_ST 'cfgs' 303 302 # 304 . ./makenemo -m ${CMP_NAM} -n ORCA2_ICE_PISCES_ST -r ORCA2_ICE_PISCES -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 305 cd ${SETTE_DIR} 306 . ./param.cfg 303 . ./makenemo -m ${CMP_NAM} -n ORCA2_ICE_PISCES_ST -r ORCA2_ICE_PISCES -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 304 cd ${SETTE_DIR} 307 305 . ./all_functions.sh 308 306 . ./prepare_exe_dir.sh … … 331 329 if [ ${USING_EXTRA_HALO} == "no" ] ; then set_namelist namelist_cfg nn_hls 1 ; fi 332 330 if [ ${USING_EXTRA_HALO} == "yes" ] ; then set_namelist namelist_cfg nn_hls 2 ; fi 331 if [ ${USING_COLLECTIVES} == "no" ] ; then set_namelist namelist_cfg nn_comm 1 ; fi 332 if [ ${USING_COLLECTIVES} == "yes" ] ; then set_namelist namelist_cfg nn_comm 2 ; fi 333 333 if [ ${USING_TILING} == "no" ] ; then set_namelist namelist_cfg ln_tile .false. ; fi 334 334 if [ ${USING_TILING} == "yes" ] ; then set_namelist namelist_cfg ln_tile .true. ; fi … … 381 381 if [ ${USING_EXTRA_HALO} == "no" ] ; then set_namelist namelist_cfg nn_hls 1 ; fi 382 382 if [ ${USING_EXTRA_HALO} == "yes" ] ; then set_namelist namelist_cfg nn_hls 2 ; fi 383 if [ ${USING_COLLECTIVES} == "no" ] ; then set_namelist namelist_cfg nn_comm 1 ; fi 384 if [ ${USING_COLLECTIVES} == "yes" ] ; then set_namelist namelist_cfg nn_comm 2 ; fi 383 385 if [ ${USING_TILING} == "no" ] ; then set_namelist namelist_cfg ln_tile .false. ; fi 384 386 if [ ${USING_TILING} == "yes" ] ; then set_namelist namelist_cfg ln_tile .true. ; fi … … 430 432 cd ${MAIN_DIR} 431 433 cd ${SETTE_DIR} 432 . ./param.cfg433 434 . ./all_functions.sh 434 435 . ./prepare_exe_dir.sh … … 455 456 if [ ${USING_EXTRA_HALO} == "no" ] ; then set_namelist namelist_cfg nn_hls 1 ; fi 456 457 if [ ${USING_EXTRA_HALO} == "yes" ] ; then set_namelist namelist_cfg nn_hls 2 ; fi 458 if [ ${USING_COLLECTIVES} == "no" ] ; then set_namelist namelist_cfg nn_comm 1 ; fi 459 if [ ${USING_COLLECTIVES} == "yes" ] ; then set_namelist namelist_cfg nn_comm 2 ; fi 457 460 if [ ${USING_TILING} == "no" ] ; then set_namelist namelist_cfg ln_tile .false. ; fi 458 461 if [ ${USING_TILING} == "yes" ] ; then set_namelist namelist_cfg ln_tile .true. ; fi … … 505 508 if [ ${USING_EXTRA_HALO} == "no" ] ; then set_namelist namelist_cfg nn_hls 1 ; fi 506 509 if [ ${USING_EXTRA_HALO} == "yes" ] ; then set_namelist namelist_cfg nn_hls 2 ; fi 510 if [ ${USING_COLLECTIVES} == "no" ] ; then set_namelist namelist_cfg nn_comm 1 ; fi 511 if [ ${USING_COLLECTIVES} == "yes" ] ; then set_namelist namelist_cfg nn_comm 2 ; fi 507 512 if [ ${USING_TILING} == "no" ] ; then set_namelist namelist_cfg ln_tile .false. ; fi 508 513 if [ ${USING_TILING} == "yes" ] ; then set_namelist namelist_cfg ln_tile .true. ; fi … … 551 556 clean_config ORCA2_OFF_PISCES ORCA2_OFF_PISCES_ST 'cfgs' 552 557 # 553 . ./makenemo -m ${CMP_NAM} -n ORCA2_OFF_PISCES_ST -r ORCA2_OFF_PISCES -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"554 cd ${SETTE_DIR}555 . ./param.cfg558 # ORCA2_OFF_PISCES uses linssh so remove key_qco if added by default 559 . ./makenemo -m ${CMP_NAM} -n ORCA2_OFF_PISCES_ST -r ORCA2_OFF_PISCES -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}" 560 cd ${SETTE_DIR} 556 561 . ./all_functions.sh 557 562 . ./prepare_exe_dir.sh … … 582 587 set_namelist namelist_pisces_cfg ln_pisdmp .false. 583 588 if [ ${USING_TIMING} == "yes" ] ; then set_namelist namelist_cfg ln_timing .true. ; fi 589 if [ ${USING_COLLECTIVES} == "no" ] ; then set_namelist namelist_cfg nn_comm 1 ; fi 590 if [ ${USING_COLLECTIVES} == "yes" ] ; then set_namelist namelist_cfg nn_comm 2 ; fi 584 591 if [ ${USING_MPMD} == "yes" ] ; then 585 592 set_xio_using_server iodef.xml true … … 623 630 set_namelist namelist_pisces_cfg ln_pisdmp .false. 624 631 if [ ${USING_TIMING} == "yes" ] ; then set_namelist namelist_cfg ln_timing .true. ; fi 632 if [ ${USING_COLLECTIVES} == "no" ] ; then set_namelist namelist_cfg nn_comm 1 ; fi 633 if [ ${USING_COLLECTIVES} == "yes" ] ; then set_namelist namelist_cfg nn_comm 2 ; fi 625 634 if [ ${USING_MPMD} == "yes" ] ; then 626 635 set_xio_using_server iodef.xml true … … 640 649 cd ${MAIN_DIR} 641 650 cd ${SETTE_DIR} 642 . ./param.cfg643 651 . ./all_functions.sh 644 652 . ./prepare_exe_dir.sh … … 668 676 set_namelist namelist_pisces_cfg ln_pisdmp .false. 669 677 if [ ${USING_TIMING} == "yes" ] ; then set_namelist namelist_cfg ln_timing .true. ; fi 678 if [ ${USING_COLLECTIVES} == "no" ] ; then set_namelist namelist_cfg nn_comm 1 ; fi 679 if [ ${USING_COLLECTIVES} == "yes" ] ; then set_namelist namelist_cfg nn_comm 2 ; fi 670 680 if [ ${USING_MPMD} == "yes" ] ; then 671 681 set_xio_using_server iodef.xml true … … 706 716 set_namelist namelist_pisces_cfg ln_pisdmp .false. 707 717 if [ ${USING_TIMING} == "yes" ] ; then set_namelist namelist_cfg ln_timing .true. ; fi 718 if [ ${USING_COLLECTIVES} == "no" ] ; then set_namelist namelist_cfg nn_comm 1 ; fi 719 if [ ${USING_COLLECTIVES} == "yes" ] ; then set_namelist namelist_cfg nn_comm 2 ; fi 708 720 if [ ${USING_MPMD} == "yes" ] ; then 709 721 set_xio_using_server iodef.xml true … … 737 749 clean_config AMM12 AMM12_ST 'cfgs' 738 750 # 739 . ./makenemo -m ${CMP_NAM} -n AMM12_ST -r AMM12 -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 740 cd ${SETTE_DIR} 741 . ./param.cfg 751 . ./makenemo -m ${CMP_NAM} -n AMM12_ST -r AMM12 -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 752 cd ${SETTE_DIR} 742 753 . ./all_functions.sh 743 754 . ./prepare_exe_dir.sh … … 804 815 cd ${MAIN_DIR} 805 816 cd ${SETTE_DIR} 806 . ./param.cfg807 817 . ./all_functions.sh 808 818 . ./prepare_exe_dir.sh … … 877 887 clean_config ORCA2_SAS_ICE ORCA2_SAS_ICE_ST 'cfgs' 878 888 # 879 . ./makenemo -m ${CMP_NAM} -n ORCA2_SAS_ICE_ST -r ORCA2_SAS_ICE -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"880 cd ${SETTE_DIR}881 . ./param.cfg889 # ORCA2_SAS_ICE uses linssh so remove key_qco if added by default 890 . ./makenemo -m ${CMP_NAM} -n ORCA2_SAS_ICE_ST -r ORCA2_SAS_ICE -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}" 891 cd ${SETTE_DIR} 882 892 . ./all_functions.sh 883 893 . ./prepare_exe_dir.sh … … 953 963 cd ${MAIN_DIR} 954 964 cd ${SETTE_DIR} 955 . ./param.cfg956 965 . ./all_functions.sh 957 966 . ./prepare_exe_dir.sh … … 1029 1038 clean_config ORCA2_ICE_PISCES ORCA2_ICE_OBS_ST 'cfgs' 1030 1039 # 1031 . ./makenemo -m ${CMP_NAM} -n ORCA2_ICE_OBS_ST -r ORCA2_ICE_PISCES -d "OCE ICE" -j 8 add_key "key_asminc ${ADD_KEYS}" del_key "key_top ${DEL_KEYS}" 1032 cd ${SETTE_DIR} 1033 . ./param.cfg 1040 . ./makenemo -m ${CMP_NAM} -n ORCA2_ICE_OBS_ST -r ORCA2_ICE_PISCES -d "OCE ICE" -j ${CMPL_CORES} add_key "key_asminc ${ADD_KEYS}" del_key "key_top ${DEL_KEYS}" 1041 cd ${SETTE_DIR} 1034 1042 . ./all_functions.sh 1035 1043 . ./prepare_exe_dir.sh … … 1153 1161 clean_config AGRIF_DEMO AGRIF_DEMO_ST 'cfgs' 1154 1162 # 1155 . ./makenemo -m ${CMP_NAM} -n AGRIF_DEMO_ST -r AGRIF_DEMO -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 1156 cd ${SETTE_DIR} 1157 . ./param.cfg 1163 . ./makenemo -m ${CMP_NAM} -n AGRIF_DEMO_ST -r AGRIF_DEMO -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 1164 cd ${SETTE_DIR} 1158 1165 . ./all_functions.sh 1159 1166 . ./prepare_exe_dir.sh … … 1267 1274 cd ${MAIN_DIR} 1268 1275 cd ${SETTE_DIR} 1269 . ./param.cfg1270 1276 . ./all_functions.sh 1271 1277 . ./prepare_exe_dir.sh … … 1370 1376 cd ${MAIN_DIR} 1371 1377 cd ${SETTE_DIR} 1372 . ./param.cfg1373 1378 . ./all_functions.sh 1374 1379 . ./prepare_exe_dir.sh … … 1411 1416 clean_config AGRIF_DEMO AGRIF_DEMO_NOAGRIF_ST 'cfgs' 1412 1417 # 1413 . ./makenemo -m ${CMP_NAM} -n AGRIF_DEMO_NOAGRIF_ST -r AGRIF_DEMO -j 8 add_key "${ADD_KEYS}" del_key "key_agrif ${DEL_KEYS}" 1414 cd ${SETTE_DIR} 1415 . ./param.cfg 1418 . ./makenemo -m ${CMP_NAM} -n AGRIF_DEMO_NOAGRIF_ST -r AGRIF_DEMO -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "key_agrif ${DEL_KEYS}" 1419 cd ${SETTE_DIR} 1416 1420 . ./all_functions.sh 1417 1421 . ./prepare_exe_dir.sh … … 1460 1464 clean_config WED025 WED025_ST 'cfgs' 1461 1465 # 1462 . ./makenemo -m ${CMP_NAM} -n WED025_ST -r WED025 -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"1463 cd ${SETTE_DIR}1464 . ./param.cfg1466 # WED025 uses ln_hpg_isf so remove key_qco if added by default 1467 . ./makenemo -m ${CMP_NAM} -n WED025_ST -r WED025 -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}" 1468 cd ${SETTE_DIR} 1465 1469 . ./all_functions.sh 1466 1470 . ./prepare_exe_dir.sh … … 1530 1534 cd ${MAIN_DIR} 1531 1535 cd ${SETTE_DIR} 1532 . ./param.cfg1533 1536 . ./all_functions.sh 1534 1537 . ./prepare_exe_dir.sh -
utils/CI/sette_ticket2673/sette_rpt.sh
r14844 r14867 13 13 function get_dorv() { 14 14 if [ $lastchange == 'old' ] ; then 15 dorv=`ls -1rt $vdir/$ nam/$mach/ | tail -1l `15 dorv=`ls -1rt $vdir/$mach/ | tail -1l ` 16 16 dorv=`echo $dorv | sed -e 's:.*/::'` 17 dorv2=`ls -1rt $vdir/$ nam2/$mach/ 2>/dev/null | tail -1l `17 dorv2=`ls -1rt $vdir/$mach/ 2>/dev/null | tail -1l ` 18 18 dorv2=`echo $dorv2 | sed -e 's:.*/::'` 19 19 else … … 44 44 # 45 45 # check if directory is here 46 if [ ! -d $vdir/$ nam/$mach/$dorv]; then46 if [ ! -d $vdir/$mach/$dorv/$nam ]; then 47 47 printf "%-27s %s %s\n" $nam " directory MISSING : " $dorv 48 48 return 49 49 fi 50 50 51 if [ -d $vdir/$ nam/$mach/$dorv]; then51 if [ -d $vdir/$mach/$dorv/$nam ]; then 52 52 # check ocean output 53 53 runtest $vdir $nam $pass RST 54 54 # 55 55 # run restartibility test 56 f1o=$vdir/$ nam/$mach/$dorv/LONG/ocean.output57 f1s=$vdir/$ nam/$mach/$dorv/LONG/run.stat58 f1t=$vdir/$ nam/$mach/$dorv/LONG/tracer.stat59 f2o=$vdir/$ nam/$mach/$dorv/SHORT/ocean.output60 f2s=$vdir/$ nam/$mach/$dorv/SHORT/run.stat61 f2t=$vdir/$ nam/$mach/$dorv/SHORT/tracer.stat56 f1o=$vdir/$mach/$dorv/$nam/LONG/ocean.output 57 f1s=$vdir/$mach/$dorv/$nam/LONG/run.stat 58 f1t=$vdir/$mach/$dorv/$nam/LONG/tracer.stat 59 f2o=$vdir/$mach/$dorv/$nam/SHORT/ocean.output 60 f2s=$vdir/$mach/$dorv/$nam/SHORT/run.stat 61 f2t=$vdir/$mach/$dorv/$nam/SHORT/tracer.stat 62 62 63 63 if [ ! -f $f1s ] && [ ! -f $f1t ] ; then … … 150 150 # 151 151 # check if directory is here 152 if [ ! -d $vdir/$ nam/$mach/$dorv]; then152 if [ ! -d $vdir/$mach/$dorv/$nam ]; then 153 153 printf "%-27s %s %s\n" $nam " directory MISSING : " $dorv 154 154 return 155 155 fi 156 156 # 157 if [ -d $vdir/$ nam/$mach/$dorv]; then157 if [ -d $vdir/$mach/$dorv/$nam ]; then 158 158 # check ocean output 159 159 runtest $vdir $nam $pass REPRO 160 160 # 161 161 # check reproducibility 162 rep1=`ls -1rt $vdir/$ nam/$mach/$dorv/ | grep REPRO | tail -2l | head -1 `163 rep2=`ls -1rt $vdir/$ nam/$mach/$dorv/ | grep REPRO | tail -1l`162 rep1=`ls -1rt $vdir/$mach/$dorv/$nam/ | grep REPRO | tail -2l | head -1 ` 163 rep2=`ls -1rt $vdir/$mach/$dorv/$nam/ | grep REPRO | tail -1l` 164 164 if [ $rep1 == $rep2 ]; then 165 165 rep2='' 166 166 fi 167 f1o=$vdir/$ nam/$mach/$dorv/$rep1/ocean.output168 f1s=$vdir/$ nam/$mach/$dorv/$rep1/run.stat169 f1t=$vdir/$ nam/$mach/$dorv/$rep1/tracer.stat170 f2o=$vdir/$ nam/$mach/$dorv/$rep2/ocean.output171 f2s=$vdir/$ nam/$mach/$dorv/$rep2/run.stat172 f2t=$vdir/$ nam/$mach/$dorv/$rep2/tracer.stat167 f1o=$vdir/$mach/$dorv/$nam/$rep1/ocean.output 168 f1s=$vdir/$mach/$dorv/$nam/$rep1/run.stat 169 f1t=$vdir/$mach/$dorv/$nam/$rep1/tracer.stat 170 f2o=$vdir/$mach/$dorv/$nam/$rep2/ocean.output 171 f2s=$vdir/$mach/$dorv/$nam/$rep2/run.stat 172 f2t=$vdir/$mach/$dorv/$nam/$rep2/tracer.stat 173 173 174 174 if [ ! -f $f1s ] && [ ! -f $f1t ] ; then … … 257 257 # 258 258 # check if reference directory is present 259 if [ ! -d $vdirref/$ nam/$mach/$dorvref ]; then259 if [ ! -d $vdirref/$mach/$dorv/$namref ]; then 260 260 printf "%-27s %s\n" $nam " REFERENCE directory at $dorvref is MISSING" 261 261 return 262 262 fi 263 if [ ! -d $vdir/$ nam/$mach/$dorv]; then263 if [ ! -d $vdir/$mach/$dorv/$nam ]; then 264 264 printf "%-27s %s\n" $nam " VALID directory at $dorv is MISSING" 265 265 return … … 267 267 268 268 # 269 if [ -d $vdir/$ nam/$mach/$dorv]; then270 f1s=$vdir/$ nam/$mach/$dorv/LONG/run.stat271 f1t=$vdir/$ nam/$mach/$dorv/LONG/tracer.stat272 f2s=$vdirref/$ nam/$mach/$dorvref/LONG/run.stat273 f2t=$vdirref/$ nam/$mach/$dorvref/LONG/tracer.stat269 if [ -d $vdir/$mach/$dorv/$nam ]; then 270 f1s=$vdir/$mach/$dorv/$nam/LONG/run.stat 271 f1t=$vdir/$mach/$dorv/$nam/LONG/tracer.stat 272 f2s=$vdirref/$mach/$dorv/$namref/LONG/run.stat 273 f2t=$vdirref/$mach/$dorv/$namref/LONG/tracer.stat 274 274 if [ ! -f $f1s ] && [ ! -f $f1t ] ; then 275 275 printf "%-20s %s\n" $nam " incomplete test"; … … 343 343 # 344 344 # check if reference directory is present 345 if [ ! -d $vdirref/$ nam/$mach/$dorvref ]; then345 if [ ! -d $vdirref/$mach/$dorv/$namref ]; then 346 346 return 347 347 fi 348 if [ ! -d $vdir/$ nam/$mach/$dorv]; then348 if [ ! -d $vdir/$mach/$dorv/$nam ]; then 349 349 return 350 350 fi 351 351 352 352 # 353 if [ -d $vdir/$ nam/$mach/$dorv]; then354 f1a=$vdir/$ nam/$mach/$dorv/LONG/timing.output355 f2a=$vdirref/$ nam/$mach/$dorvref/LONG/timing.output353 if [ -d $vdir/$mach/$dorv/$nam ]; then 354 f1a=$vdir/$mach/$dorv/$nam/LONG/timing.output 355 f2a=$vdirref/$mach/$dorv/$namref/LONG/timing.output 356 356 # 357 357 # Report average CPU time differences (if available) … … 390 390 # no print needed if the repository is not here (already catch before) 391 391 # 392 if [ -d $vdir/$ nam/$mach/$dorv/ ]; then392 if [ -d $vdir/$mach/$dorv/$nam/ ]; then 393 393 # 394 394 # apply check for all ttype directory 395 rep1=$(ls -rt $vdir/$ nam/$mach/$dorv/ | grep -E $ttype)395 rep1=$(ls -rt $vdir/$mach/$dorv/$nam/ | grep -E $ttype) 396 396 for tdir in $rep1 ; do 397 f1o=$vdir/$ nam/$mach/$dorv/$tdir/ocean.output397 f1o=$vdir/$mach/$dorv/$nam/$tdir/ocean.output 398 398 if [ ! -f $f1o ] ; then 399 399 if [ $pass == 0 ]; then printf "%-27s %s %s\n" $nam " ocean.output MISSING : " $dorv ; fi … … 430 430 get_dorv 431 431 # 432 rep=`ls -1rt $vdir/$ nam/$mach/$dorv/ | tail -1l`433 f1s=${vdir}/${ nam}/${mach}/${dorv}/${rep}/run.stat434 f2s=${vdir}/${ nam2}/${mach}/${dorv2}/${rep}/run.stat432 rep=`ls -1rt $vdir/$mach/$dorv/$nam/ | tail -1l` 433 f1s=${vdir}/${mach}/${dorv}/${nam}/${rep}/run.stat 434 f2s=${vdir}/${mach}/${dorv2}/${nam2}/${rep}/run.stat 435 435 # 436 436 if [ -f $f1s ] && [ -f $f2s ] ; then … … 470 470 471 471 mach=${COMPILER} 472 NEMO_VALID=${NEMO_VALIDATION_DIR} 473 NEMO_VALID_REF=${NEMO_VALIDATION_REF} 474 # 475 if [ ! -d $NEMO_VALID ]; then 476 echo "$NEMO_VALID validation directory not found" 477 exit 478 fi 479 # 480 # 481 # Show current revision tag and branch name 482 # 483 echo "" 484 lastchange=`${SVN_CMD} info ${MAIN_DIR} | grep 'Last Changed Rev' | awk '{print $NF}'` 485 revision=`${SVN_CMD} info ${MAIN_DIR} | grep 'Revision' | awk '{print $NF}'` 486 branchname=`${SVN_CMD} info ${MAIN_DIR} | grep ^URL | awk -F ipsl/forge/projets/nemo/svn/ '{print $NF}'` 487 echo "Current code is : $branchname @ r$revision ( last change @ r$lastchange )" 488 [ `${SVN_CMD} status -q ${MAIN_DIR}/{cfgs,tests,src} | wc -l` -ge 1 ] && lastchange=${lastchange}+ 489 490 # overwrite revision or compiler 472 # overwrite revision (later) or compiler 491 473 if [ $# -gt 0 ]; then 492 while getopts r:c: h option; do474 while getopts r:c:v:h option; do 493 475 case $option in 494 476 c) mach=$OPTARG;; 495 477 r) rev=$OPTARG;; 478 v) SETTE_SUB_VAL=$OPTARG;; 496 479 h | *) echo '' 497 480 echo 'sette_rpt.sh : ' … … 501 484 echo ' -r REVISION_number :' 502 485 echo ' display sette results for the specified revision (set old for the latest revision available for each config)' 486 echo ' -v sub_dir :' 487 echo ' validation sub-directory below NEMO_VALIDATION_DIR' 503 488 echo '' 504 489 exit 42;; … … 506 491 done 507 492 shift $((OPTIND - 1)) 508 fi 509 493 fi 510 494 # if $1 (remaining arguments) 511 if [[ ! -z $1 ]] ; then rev=$1 ; fi 495 if [[ ! -z $1 ]] ; then rev=$1 ; fi 496 497 if [ ! -z $SETTE_SUB_VAL ] ; then 498 export NEMO_VALIDATION_DIR=$NEMO_VALIDATION_DIR/$SETTE_SUB_VAL 499 if [ -d $NEMO_VALIDATION_REF/$SETTE_SUB_VAL ] ; then 500 while true; do 501 read -p "$NEMO_VALIDATION_REF/$SETTE_SUB_VAL exists. Do you wish to use it as a reference? " yn 502 case $yn in 503 [Yy]* ) export $NEMO_VALIDATION_REF/$SETTE_SUB_VAL; break;; 504 [Nn]* ) exit;; 505 * ) echo "Please answer yes or no.";; 506 esac 507 done 508 fi 509 fi 510 NEMO_VALID=${NEMO_VALIDATION_DIR} 511 NEMO_VALID_REF=${NEMO_VALIDATION_REF} 512 # 513 if [ ! -d $NEMO_VALID ]; then 514 echo "$NEMO_VALID validation directory not found" 515 exit 516 fi 517 # 518 # 519 # Show current revision tag and branch name 520 # 521 echo "" 522 lastchange=`${SVN_CMD} info ${MAIN_DIR} | grep 'Last Changed Rev' | awk '{print $NF}'` 523 revision=`${SVN_CMD} info ${MAIN_DIR} | grep 'Revision' | awk '{print $NF}'` 524 branchname=`${SVN_CMD} info ${MAIN_DIR} | grep ^URL | awk -F ipsl/forge/projets/nemo/svn/ '{print $NF}'` 525 echo "Current code is : $branchname @ r$revision ( last change @ r$lastchange )" 526 [ `${SVN_CMD} status -q ${MAIN_DIR}/{cfgs,tests,src} | wc -l` -ge 1 ] && lastchange=${lastchange}+ 512 527 513 528 # by default use the current lastchanged revision … … 541 556 echo "" 542 557 echo " !----restart----! " 543 for restart_test in WGYRE_PISCES_ST WORCA2_ICE_PISCES_ST WORCA2_OFF_PISCES_ST WAMM12_ST WORCA2_SAS_ICE_ST WAGRIF_DEMO_ST WWED025_ST WISOMIP+_ST WOVERFLOW_ST WLOCK_EXCHANGE_ST WVORTEX_ST WICE_AGRIF_ST WSWG_ST558 for restart_test in GYRE_PISCES ORCA2_ICE_PISCES ORCA2_OFF_PISCES AMM12 ORCA2_SAS_ICE AGRIF_DEMO WED025 ISOMIP+ OVERFLOW LOCK_EXCHANGE VORTEX ICE_AGRIF SWG 544 559 do 545 560 resttest $NEMO_VALID $restart_test $pass … … 549 564 echo "" 550 565 echo " !----repro----! " 551 for repro_test in WGYRE_PISCES_ST WORCA2_ICE_PISCES_ST WORCA2_OFF_PISCES_ST WAMM12_ST WORCA2_SAS_ICE_ST WORCA2_ICE_OBS_ST WAGRIF_DEMO_ST WWED025_ST WISOMIP+_ST WVORTEX_ST WICE_AGRIF_ST WSWG_ST566 for repro_test in GYRE_PISCES ORCA2_ICE_PISCES ORCA2_OFF_PISCES AMM12 ORCA2_SAS_ICE ORCA2_ICE_OBS AGRIF_DEMO WED025 ISOMIP+ VORTEX ICE_AGRIF SWG 552 567 do 553 568 reprotest $NEMO_VALID $repro_test $pass … … 576 591 echo "REFERENCE directory : $NEMO_VALID_REF at rev $NEMO_REV_REF" 577 592 echo '' 578 checklist=( WGYRE_PISCES_ST WORCA2_ICE_PISCES_ST WORCA2_OFF_PISCES_ST WAMM12_ST WORCA2_SAS_ICE_ST WAGRIF_DEMO_ST WWED025_ST WISOMIP+_ST WVORTEX_ST WICE_AGRIF_ST WOVERFLOW_ST WLOCK_EXCHANGE_ST WSWG_ST)593 checklist=(GYRE_PISCES ORCA2_ICE_PISCES ORCA2_OFF_PISCES AMM12 ORCA2_SAS_ICE AGRIF_DEMO WED025 ISOMIP+ VORTEX ICE_AGRIF OVERFLOW LOCK_EXCHANGE SWG) 579 594 for repro_test in ${checklist[@]} 580 595 do -
utils/CI/sette_ticket2673/sette_test-cases.sh
r14861 r14867 151 151 sync_config OVERFLOW OVERFLOW_ST 'tests' 152 152 # 153 . ./makenemo -m ${CMP_NAM} -n OVERFLOW_ST -a OVERFLOW -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 154 cd ${SETTE_DIR} 155 . ./param.cfg 153 . ./makenemo -m ${CMP_NAM} -n OVERFLOW_ST -a OVERFLOW -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 154 cd ${SETTE_DIR} 156 155 . ./all_functions.sh 157 156 . ./prepare_exe_dir.sh … … 224 223 ## 225 224 cd ${SETTE_DIR} 226 . ./param.cfg227 225 . ./all_functions.sh 228 226 . ./prepare_exe_dir.sh … … 273 271 sync_config LOCK_EXCHANGE LOCK_EXCHANGE_ST 'tests' 274 272 # 275 . ./makenemo -m ${CMP_NAM} -n LOCK_EXCHANGE_ST -a LOCK_EXCHANGE -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 276 cd ${SETTE_DIR} 277 . ./param.cfg 273 . ./makenemo -m ${CMP_NAM} -n LOCK_EXCHANGE_ST -a LOCK_EXCHANGE -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 274 cd ${SETTE_DIR} 278 275 . ./all_functions.sh 279 276 . ./prepare_exe_dir.sh … … 346 343 ## 347 344 cd ${SETTE_DIR} 348 . ./param.cfg349 345 . ./all_functions.sh 350 346 . ./prepare_exe_dir.sh … … 397 393 sync_config VORTEX VORTEX_ST 'tests' 398 394 # 399 . ./makenemo -m ${CMP_NAM} -n VORTEX_ST -a VORTEX -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 400 cd ${SETTE_DIR} 401 . ./param.cfg 395 . ./makenemo -m ${CMP_NAM} -n VORTEX_ST -a VORTEX -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 396 cd ${SETTE_DIR} 402 397 . ./all_functions.sh 403 398 . ./prepare_exe_dir.sh … … 482 477 cd ${MAIN_DIR} 483 478 cd ${SETTE_DIR} 484 . ./param.cfg485 479 . ./all_functions.sh 486 480 . ./prepare_exe_dir.sh … … 581 575 sync_config ICE_AGRIF ICE_AGRIF_ST 'tests' 582 576 # 583 . ./makenemo -m ${CMP_NAM} -n ICE_AGRIF_ST -a ICE_AGRIF -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"584 cd ${SETTE_DIR}585 . ./param.cfg577 # ICE_AGRIF uses linssh so remove key_qco if added by default 578 . ./makenemo -m ${CMP_NAM} -n ICE_AGRIF_ST -a ICE_AGRIF -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}" 579 cd ${SETTE_DIR} 586 580 . ./all_functions.sh 587 581 . ./prepare_exe_dir.sh … … 675 669 cd ${MAIN_DIR} 676 670 cd ${SETTE_DIR} 677 . ./param.cfg678 671 . ./all_functions.sh 679 672 . ./prepare_exe_dir.sh … … 772 765 sync_config ISOMIP+ ISOMIP+_ST 'tests' 773 766 # 774 . ./makenemo -m ${CMP_NAM} -n ISOMIP+_ST -a ISOMIP+ -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"775 cd ${SETTE_DIR}776 . ./param.cfg767 # ISOMIP+ uses ln_hpg_isf so remove key_qco if added by default 768 . ./makenemo -m ${CMP_NAM} -n ISOMIP+_ST -a ISOMIP+ -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}" 769 cd ${SETTE_DIR} 777 770 . ./all_functions.sh 778 771 . ./prepare_exe_dir.sh … … 845 838 cd ${MAIN_DIR} 846 839 cd ${SETTE_DIR} 847 . ./param.cfg848 840 . ./all_functions.sh 849 841 . ./prepare_exe_dir.sh … … 903 895 # SWG 904 896 # --------- 905 if [ ${config} == "SWG" ] && [ ${DO_RESTART} == "1" ] && [ ${ NOT_USING_QCO} == "no" ] ; then897 if [ ${config} == "SWG" ] && [ ${DO_RESTART} == "1" ] && [ ${USING_QCO} == "yes" ] ; then 906 898 ## Restartability tests for SWG 907 899 if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ] … … 922 914 sync_config SWG SWG_ST 'tests' 923 915 # 924 . ./makenemo -m ${CMP_NAM} -n SWG_ST -a SWG -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 925 cd ${SETTE_DIR} 926 . ./param.cfg 916 . ./makenemo -m ${CMP_NAM} -n SWG_ST -a SWG -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}" 917 cd ${SETTE_DIR} 927 918 . ./all_functions.sh 928 919 . ./prepare_exe_dir.sh … … 984 975 fi 985 976 986 if [ ${config} == "SWG" ] && [ ${DO_REPRO} == "1" ] && [ ${ NOT_USING_QCO} == "no" ] ; then977 if [ ${config} == "SWG" ] && [ ${DO_REPRO} == "1" ] && [ ${USING_QCO} == "yes" ] ; then 987 978 988 979 ## Reproducibility tests for SWG … … 990 981 cd ${MAIN_DIR} 991 982 cd ${SETTE_DIR} 992 . ./param.cfg993 983 . ./all_functions.sh 994 984 . ./prepare_exe_dir.sh
Note: See TracChangeset
for help on using the changeset viewer.