- Timestamp:
- 03/07/12 10:39:55 (12 years ago)
- Location:
- branches/libIGCM_MPI_OpenMP
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/libIGCM_MPI_OpenMP
-
Property
svn:mergeinfo
set to
False
/trunk/libIGCM merged eligible
-
Property
svn:mergeinfo
set to
False
-
branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_cesium.ksh
r521 r571 117 117 #==================================================== 118 118 #- IN 119 typeset -r R_IN=${R_IN:=/ dmnfs/cont003/p86ipsl/IGCM}119 typeset -r R_IN=${R_IN:=/ccc/work/cont003/dsm/p86ipsl/IGCM} 120 120 typeset -r R_IN_ECMWF=${R_IN_ECMWF:=/dmnfs/cont003/p24data} 121 121 122 122 #==================================================== 123 #- OUT123 #- R_OUT 124 124 typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 125 125 126 126 #==================================================== 127 #- OUT_SCR(ONLY FOR double copy an scratch)128 typeset -r R_ OUT_SCR=${SCRATCHDIR}/IGCM_OUT127 #- R_BUF (ONLY FOR double copy an scratch) 128 typeset -r R_BUF=${SCRATCHDIR}/IGCM_OUT 129 129 130 130 #==================================================== … … 151 151 #D- 152 152 function IGCM_sys_RshMaster { 153 154 155 156 157 158 159 160 161 162 153 IGCM_debug_PushStack "IGCM_sys_RshMaster" $@ 154 typeset NB_ESSAI DELAI status i 155 # number of tentative 156 NB_ESSAI=10 157 # time delay between tentative 158 DELAI=10 159 # 160 (( i = 0 )) 161 while [ $i -lt $NB_ESSAI ] ; do 162 ssh ${MASTER} exec /bin/ksh <<-EOF 163 163 export libIGCM=${libIGCM_SX} 164 164 export DEBUG_debug=${DEBUG_debug} … … 167 167 ${@} 168 168 EOF 169 170 171 172 173 174 175 176 177 178 179 180 169 status=$? 170 if [ ${status} -gt 0 ]; then 171 IGCM_debug_Print 2 "IGCM_sys_RshMaster : ssh failed ${i}/${NB_ESSAI}" 172 IGCM_debug_Print 2 "IGCM_sys_RshMaster : sleep ${DELAI} seconds and try again." 173 sleep $DELAI 174 else 175 break 176 fi 177 (( i = i + 1 )) 178 done 179 180 IGCM_debug_PopStack "IGCM_sys_RshMaster" 181 181 } 182 182 … … 187 187 #D- 188 188 function IGCM_sys_RshArchive { 189 190 189 IGCM_debug_PushStack "IGCM_sys_RshArchive" $@ 190 /bin/ksh <<-EOF 191 191 ${@} 192 192 EOF 193 194 195 196 197 193 if [ $? -gt 0 ] ; then 194 echo "IGCM_sys_RshArchive : erreur." 195 IGCM_debug_Exit "IGCM_sys_RshArchive" 196 fi 197 IGCM_debug_PopStack "IGCM_sys_RshArchive" 198 198 } 199 199 … … 204 204 #D- 205 205 function IGCM_sys_RshPost { 206 IGCM_debug_PushStack "IGCM_sys_RshPost" $@ 207 if ( $DEBUG_sys ) ; then 208 echo "IGCM_sys_RshPost :" $@ 209 fi 210 /bin/ksh ${@} 211 if [ $? -gt 0 ] ; then 212 echo "IGCM_sys_RshPost : erreur." 213 IGCM_debug_Exit "IGCM_sys_RshPost" 214 fi 215 IGCM_debug_PopStack "IGCM_sys_RshPost" 206 IGCM_debug_PushStack "IGCM_sys_RshPost" $@ 207 if ( $DEBUG_sys ) ; then 208 echo "IGCM_sys_RshPost :" $@ 209 fi 210 211 #echo cat tmp_IGCM_sys_RshPost_$$ INITIAL 212 #cat tmp_IGCM_sys_RshPost_$$ 213 # keep standard input (stdin) for the loop onto temporary file 214 cat >tmp_IGCM_sys_RshPost_$$ 215 216 /bin/ksh <tmp_IGCM_sys_RshPost_$$ 217 if [ $? -gt 0 ] ; then 218 echo "IGCM_sys_RshPost : erreur." 219 IGCM_debug_Exit "IGCM_sys_RshPost" 220 cat tmp_IGCM_sys_RshPost_$$ 221 fi 222 # delete temporary file 223 \rm tmp_IGCM_sys_RshPost_$$ 224 225 IGCM_debug_PopStack "IGCM_sys_RshPost" 216 226 } 217 227 … … 222 232 #D- 223 233 function IGCM_sys_SendMail { 224 225 226 227 228 229 230 231 232 233 234 235 234 IGCM_debug_PushStack "IGCM_sys_SendMail" $@ 235 if ( $DEBUG_sys ) ; then 236 echo "IGCM_sys_SendMail :" $@ 237 fi 238 239 if ( ${ExitFlag} ) ; then 240 status=failed 241 else 242 status=completed 243 fi 244 245 ssh mercure <<-EOF 236 246 export LOGIN=${LOGIN} 237 247 export config_UserChoices_JobName=${config_UserChoices_JobName} … … 262 272 EOF 263 273 264 265 266 267 268 274 if [ $? -gt 0 ] ; then 275 echo "IGCM_sys_SendMail : erreur." 276 IGCM_debug_Exit "IGCM_sys_SendMail" 277 fi 278 IGCM_debug_PopStack "IGCM_sys_SendMail" 269 279 } 270 280 … … 275 285 #D- 276 286 function IGCM_sys_Mkdir { 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 287 IGCM_debug_PushStack "IGCM_sys_Mkdir" $@ 288 if ( $DEBUG_sys ) ; then 289 echo "IGCM_sys_Mkdir :" $@ 290 fi 291 if [ ! -d ${1} ]; then 292 \mkdir -p $1 293 if [ $? -gt 0 ] ; then 294 echo "IGCM_sys_Mkdir : erreur." 295 IGCM_debug_Exit "IGCM_sys_Mkdir" 296 fi 297 fi 298 # vérification : 299 if [ ! -d ${1} ] ; then 300 echo "IGCM_sys_Mkdir : erreur." 301 IGCM_debug_Exit "IGCM_sys_Mkdir" 302 fi 303 IGCM_debug_PopStack "IGCM_sys_Mkdir" 294 304 } 295 305 … … 300 310 #D- 301 311 function IGCM_sys_MkdirArchive { 302 303 304 305 306 307 308 309 310 311 312 313 314 312 IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@ 313 if ( $DEBUG_sys ) ; then 314 echo "IGCM_sys_MkdirArchive :" $@ 315 fi 316 #- creation de repertoire sur le serveur fichier 317 if [ ! -d ${1} ]; then 318 \mkdir -p $1 319 if [ $? -gt 0 ] ; then 320 echo "IGCM_sys_MkdirArchive : erreur." 321 IGCM_debug_Exit "IGCM_sys_MkdirArchive" 322 fi 323 fi 324 IGCM_debug_PopStack "IGCM_sys_MkdirArchive" 315 325 } 316 326 … … 321 331 #D- 322 332 function IGCM_sys_MkdirWork { 323 324 325 326 327 328 329 330 331 332 333 334 335 333 IGCM_debug_PushStack "IGCM_sys_MkdirWork" $@ 334 if ( $DEBUG_sys ) ; then 335 echo "IGCM_sys_MkdirWork :" $@ 336 fi 337 #- creation de repertoire sur le serveur fichier 338 if [ ! -d ${1} ]; then 339 \mkdir -p $1 340 if [ $? -gt 0 ] ; then 341 echo "IGCM_sys_MkdirWork : erreur." 342 IGCM_debug_Exit "IGCM_sys_MkdirWork" 343 fi 344 fi 345 IGCM_debug_PopStack "IGCM_sys_MkdirWork" 336 346 } 337 347 … … 342 352 #D- 343 353 function IGCM_sys_Cd { 344 345 346 347 348 349 350 351 352 353 354 IGCM_debug_PushStack "IGCM_sys_Cd" $@ 355 if ( $DEBUG_sys ) ; then 356 echo "IGCM_sys_Cd :" $@ 357 fi 358 \cd $1 359 if [ $? -gt 0 ] ; then 360 echo "IGCM_sys_Cd : erreur." 361 IGCM_debug_Exit "IGCM_sys_Cd" 362 fi 363 IGCM_debug_PopStack "IGCM_sys_Cd" 354 364 } 355 365 … … 360 370 #D- 361 371 function IGCM_sys_Chmod { 362 363 364 365 366 367 368 369 370 371 372 373 374 375 372 IGCM_debug_PushStack "IGCM_sys_Chmod" -- $@ 373 if ( $DEBUG_sys ) ; then 374 echo "IGCM_sys_Chmod :" $@ 375 fi 376 if [ $DRYRUN -le 1 ]; then 377 \chmod $@ 378 if [ $? -gt 0 ] ; then 379 echo "IGCM_sys_Chmod : erreur." 380 IGCM_debug_Exit "IGCM_sys_Chmod" 381 fi 382 else 383 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 384 fi 385 IGCM_debug_PopStack "IGCM_sys_Chmod" 376 386 } 377 387 … … 382 392 #D- 383 393 function IGCM_sys_FileSize { 384 385 386 387 388 389 390 391 392 393 394 IGCM_debug_PushStack "IGCM_sys_FileSize" $@ 395 396 typeset sizeF 397 set +A sizeF -- $( ls -la ${1} ) 398 if [ $? -gt 0 ] ; then 399 IGCM_debug_Exit "IGCM_sys_FileSize" 400 fi 401 eval ${2}=${sizeF[4]} 402 403 IGCM_debug_PopStack "IGCM_sys_FileSize" 394 404 } 395 405 … … 400 410 #D- 401 411 function IGCM_sys_TestDir { 402 403 404 405 406 407 408 409 410 412 IGCM_debug_PushStack "IGCM_sys_TestDir" $@ 413 if ( $DEBUG_sys ) ; then 414 echo "IGCM_sys_TestDir :" $@ 415 fi 416 typeset ExistFlag 417 ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 418 IGCM_debug_PopStack "IGCM_sys_TestDir" 419 420 return ${ExistFlag} 411 421 } 412 422 … … 417 427 #D- 418 428 function IGCM_sys_TestDirArchive { 419 IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ 420 if ( $DEBUG_sys ) ; then 421 echo "IGCM_sys_TestDirArchive :" $@ 422 fi 423 typeset ExistFlag 424 ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 425 IGCM_debug_PopStack "IGCM_sys_TestDirArchive" 426 427 return ${ExistFlag} 429 IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ 430 if ( $DEBUG_sys ) ; then 431 echo "IGCM_sys_TestDirArchive :" $@ 432 fi 433 typeset ExistFlag 434 ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 435 IGCM_debug_PopStack "IGCM_sys_TestDirArchive" 436 437 return ${ExistFlag} 438 } 439 440 #D-#================================================== 441 #D-function IGCM_sys_IsFileArchived 442 #D-* Purpose: Test file that must NOT EXISTS on Archive 443 #D-* Examples: 444 #D- 445 function IGCM_sys_IsFileArchived { 446 IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@ 447 if ( $DEBUG_sys ) ; then 448 echo "IGCM_sys_IsFileArchived :" $@ 449 fi 450 typeset IsArchivedFlag 451 IsArchivedFlag=$( [ X$( echo $1 | grep ^\/dmnfs ) != X ] && echo 0 || echo 1 ) 452 IGCM_debug_PopStack "IGCM_sys_IsFileArchived" 453 454 return ${IsArchivedFlag} 428 455 } 429 456 … … 434 461 #D- 435 462 function IGCM_sys_TestFileArchive { 436 IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ 437 if ( $DEBUG_sys ) ; then 438 echo "IGCM_sys_TestFileArchive :" $@ 439 fi 440 typeset ExistFlag 441 ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 442 IGCM_debug_PopStack "IGCM_sys_TestFileArchive" 443 444 return ${ExistFlag} 463 IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ 464 if ( $DEBUG_sys ) ; then 465 echo "IGCM_sys_TestFileArchive :" $@ 466 fi 467 typeset ExistFlag 468 ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 469 IGCM_debug_PopStack "IGCM_sys_TestFileArchive" 470 471 return ${ExistFlag} 472 } 473 474 #D-#================================================== 475 #D-function IGCM_sys_TestFileBuffer 476 #D-* Purpose: Test file that must NOT EXISTS on Buffer 477 #D-* Examples: 478 #D- 479 function IGCM_sys_TestFileBuffer { 480 IGCM_debug_PushStack "IGCM_sys_TestFileBuffer" $@ 481 typeset ExistFlag 482 ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 483 IGCM_debug_PopStack "IGCM_sys_TestFileBuffer" 484 485 return ${ExistFlag} 445 486 } 446 487 … … 451 492 #D- 452 493 function IGCM_sys_CountFileArchive { 453 IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ 454 ls ${@} 2>/dev/null | wc -l 455 if [ $? -gt 0 ] ; then 456 echo "IGCM_sys_CountFileArchive : erreur." 457 fi 458 IGCM_debug_PopStack "IGCM_sys_CountFileArchive" 494 IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ 495 ls ${@} 2>/dev/null | wc -l 496 if [ $? -gt 0 ] ; then 497 echo "IGCM_sys_CountFileArchive : erreur." 498 fi 499 IGCM_debug_PopStack "IGCM_sys_CountFileArchive" 500 } 501 502 #D-#================================================== 503 #D-function IGCM_sys_CountFileBuffer 504 #D-* Purpose: Count files on Master Scratch filesystem 505 #D-* Examples: 506 #D- 507 function IGCM_sys_CountFileBuffer { 508 IGCM_debug_PushStack "IGCM_sys_CountFileBuffer" $@ 509 ls ${@} 2>/dev/null | wc -l 510 if [ $? -gt 0 ] ; then 511 echo "IGCM_sys_CountFileBuffer : erreur." 512 fi 513 IGCM_debug_PopStack "IGCM_sys_CountFileBuffer" 459 514 } 460 515 … … 465 520 #D- 466 521 function IGCM_sys_Tree { 467 468 469 470 471 472 473 474 522 IGCM_debug_PushStack "IGCM_sys_Tree" $@ 523 if ( $DEBUG_sys ) ; then 524 echo "IGCM_sys_Tree :" $@ 525 fi 526 527 \tree -f $@ 528 529 IGCM_debug_PopStack "IGCM_sys_Tree" 475 530 } 476 531 477 532 #D-#================================================== 478 533 #D-function IGCM_sys_Tar 479 #D-* Purpose: master un-tar command534 #D-* Purpose: master tar command 480 535 #D-* Examples: 481 536 #D- 482 537 function IGCM_sys_Tar { 483 IGCM_debug_PushStack "IGCM_sys_Tar" $@ 484 if ( $DEBUG_sys ) ; then 485 echo "IGCM_sys_Tar :" $@ 486 fi 487 \tar cvf $@ 488 if [ $? -gt 0 ] ; then 489 echo "IGCM_sys_Tar : erreur." 490 IGCM_debug_Exit "IGCM_sys_Tar" 491 fi 492 \tar tvf $1 493 494 IGCM_debug_PopStack "IGCM_sys_Tar" 538 IGCM_debug_PushStack "IGCM_sys_Tar" $@ 539 if ( $DEBUG_sys ) ; then 540 echo "IGCM_sys_Tar :" $@ 541 fi 542 \tar cf $@ 543 if [ $? -gt 0 ] ; then 544 echo "IGCM_sys_Tar : erreur." 545 IGCM_debug_Exit "IGCM_sys_Tar" 546 fi 547 IGCM_debug_PopStack "IGCM_sys_Tar" 495 548 } 496 549 … … 501 554 #D- 502 555 function IGCM_sys_UnTar { 503 504 505 506 507 508 509 510 511 512 556 IGCM_debug_PushStack "IGCM_sys_UnTar" $@ 557 if ( $DEBUG_sys ) ; then 558 echo "IGCM_sys_UnTar :" $@ 559 fi 560 \tar xvf $1 561 if [ $? -gt 0 ] ; then 562 echo "IGCM_sys_UnTar : erreur." 563 IGCM_debug_Exit "IGCM_sys_UnTar" 564 fi 565 IGCM_debug_PopStack "IGCM_sys_UnTar" 513 566 } 514 567 … … 519 572 #D- 520 573 function IGCM_sys_Qsub { 521 522 523 524 525 526 527 528 529 530 574 IGCM_debug_PushStack "IGCM_sys_Qsub" $@ 575 if ( $DEBUG_sys ) ; then 576 echo "IGCM_sys_Qsub :" $@ 577 fi 578 /usr/local/bin/ccc_msub -o ${Script_Output} -e ${Script_Output}.e < $1 579 if [ $? -gt 0 ] ; then 580 echo "IGCM_sys_Qsub : erreur -o ${Script_Output} -e ${Script_Output}.e $@" 581 IGCM_debug_Exit "IGCM_sys_Qsub" 582 fi 583 IGCM_debug_PopStack "IGCM_sys_Qsub" 531 584 } 532 585 … … 537 590 #D- 538 591 function IGCM_sys_QsubPost { 539 540 541 542 543 544 545 546 547 548 592 IGCM_debug_PushStack "IGCM_sys_QsubPost" $@ 593 if ( $DEBUG_sys ) ; then 594 echo "IGCM_sys_QsubPost :" $@ 595 fi 596 /usr/local/bin/ccc_msub -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.e.out -E "-v ${listVarEnv}" ${libIGCM}/$1.job 597 if [ $? -gt 0 ] ; then 598 echo "IGCM_sys_QsubPost : erreur " $@ 599 IGCM_debug_Exit "IGCM_sys_QsubPost" 600 fi 601 IGCM_debug_PopStack "IGCM_sys_QsubPost" 549 602 } 550 603 … … 560 613 #D- Error values and explanations can depend on your system version. 561 614 function IGCM_sys_Rsync_out { 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 } 665 615 RET=$1 616 if [ ! $RET ] ; then 617 echo "rsync error !" 618 fi 619 620 if [ $MYLANG = "fr" ]; then 621 case $RET in 622 0) return ;; 623 1) echo "Erreur de rsync ; RERR_SYNTAX : " 624 echo "Erreur de syntaxe ou d'utilisation." 625 return;; 626 2) echo "Erreur de rsync ; RERR_PROTOCOL : " 627 echo "Incompatibilité de protocole." 628 return;; 629 3) echo "Erreur de rsync ; RERR_FILESELECT 3" 630 echo "Erreurs lors de la sélection des fichiers d'entrée sortie et" 631 echo "répertoires" 632 return;; 633 4) echo "Erreur de rsync ; RERR_UNSUPPORTED" 634 echo "Action demandée non supportée : une tentative de manipulation de" 635 echo "fichiers 64-bits sur une plate-forme qui ne les supporte pas a" 636 echo "été faite ; ou une option qui est supportée par le client mais" 637 echo "pas par le serveur a été spécifiée." 638 return;; 639 10) echo "Erreur de rsync ; RERR_SOCKETIO" 640 echo "Erreur dans le socket d'entrée sortie" 641 return;; 642 11) echo "Erreur de rsync ; RERR_FILEIO" 643 echo "Erreur d'entrée sortie fichier" 644 return;; 645 12) echo "Erreur de rsync ; RERR_STREAMIO" 646 echo "Erreur dans flux de donnée du protocole rsync" 647 return;; 648 13) echo "Erreur de rsync ; RERR_MESSAGEIO" 649 echo "Erreur avec les diagnostics du programme" 650 return;; 651 14) echo "Erreur de rsync ; RERR_IPC" 652 echo "Erreur dans le code IPC" 653 return;; 654 20) echo "Erreur de rsync ; RERR_SIGNAL" 655 echo "SIGUSR1 ou SIGINT reçu" 656 return;; 657 21) echo "Erreur de rsync ; RERR_WAITCHILD" 658 echo "Une erreur retournée par waitpid()" 659 return;; 660 22) echo "Erreur de rsync ; RERR_MALLOC" 661 echo "Erreur lors de l'allocation des tampons de mémoire de coeur" 662 return;; 663 23) echo "" 664 echo "Erreur fichier inexistant" 665 return;; 666 30) echo "Erreur de rsync ; RERR_TIMEOUT" 667 echo "Temps d'attente écoulé dans l'envoi/réception de données" 668 return;; 669 *) echo "Erreur de rsync : code de retour de rsync inconnu :" $RET 670 return;; 671 esac 672 elif [ $MYLANG = "en" ] ; then 673 case $RET in 674 0) return;; 675 1) echo "rsync error : Syntax or usage error " 676 return;; 677 2) echo "rsync error : Protocol incompatibility " 678 return;; 679 3) echo "rsync error : Errors selecting input/output files, dirs" 680 return;; 681 4) echo "rsync error : Requested action not supported: an attempt" 682 echo "was made to manipulate 64-bit files on a platform that cannot support" 683 echo "them; or an option was specified that is supported by the client and" 684 echo "not by the server." 685 return;; 686 5) echo "rsync error : Error starting client-server protocol" 687 return;; 688 10) echo "rsync error : Error in socket I/O " 689 return;; 690 11) echo "rsync error : Error in file I/O " 691 return;; 692 12) echo "rsync error : Error in rsync protocol data stream " 693 return;; 694 13) echo "rsync error : Errors with program diagnostics " 695 return;; 696 14) echo "rsync error : Error in IPC code " 697 return;; 698 20) echo "rsync error : Received SIGUSR1 or SIGINT " 699 return;; 700 21) echo "rsync error : Some error returned by waitpid() " 701 return;; 702 22) echo "rsync error : Error allocating core memory buffers " 703 return;; 704 23) echo "rsync error : Partial transfer due to error" 705 return;; 706 24) echo "rsync error : Partial transfer due to vanished source files" 707 return;; 708 30) echo "rsync error : Timeout in data send/receive " 709 return;; 710 *) echo "rsync error : return code of rsync unknown :" $RET 711 return;; 712 esac 713 else 714 echo "unknown language $MYLANG." 715 return 716 fi 717 } 718 666 719 #D-#================================================== 667 720 #D-function IGCM_sys_Cp … … 670 723 #D- 671 724 function IGCM_sys_Cp { 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 725 IGCM_debug_PushStack "IGCM_sys_Cp" $@ 726 if ( $DEBUG_sys ) ; then 727 echo "IGCM_sys_Cp :" $@ 728 fi 729 730 typeset RET 731 732 echo cp $@ > out_rsync 2>&1 733 \cp $@ >> out_rsync 2>&1 734 RET=$? 735 736 if [ ${RET} -gt 0 ] ; then 737 echo "IGCM_sys_Cp : error." 738 cat out_rsync 739 IGCM_debug_Exit "IGCM_sys_Cp" 740 else 741 \rm out_rsync 742 fi 743 IGCM_debug_PopStack "IGCM_sys_Cp" 691 744 } 692 745 … … 697 750 #D- 698 751 function IGCM_sys_Rm { 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 752 IGCM_debug_PushStack "IGCM_sys_Rm" -- $@ 753 if ( $DEBUG_sys ) ; then 754 echo "IGCM_sys_Rm :" $@ 755 fi 756 757 typeset RET 758 759 echo rm $@ > out_rsync 2>&1 760 \rm $@ >> out_rsync 2>&1 761 RET=$? 762 763 if [ ${RET} -gt 0 ] ; then 764 echo "IGCM_sys_Rm : error." 765 cat out_rsync 766 IGCM_debug_Exit "IGCM_sys_Rm" 767 else 768 \rm out_rsync 769 fi 770 IGCM_debug_PopStack "IGCM_sys_Rm" 718 771 } 719 772 … … 725 778 #D- 726 779 function IGCM_sys_RmRunDir { 727 IGCM_debug_PushStack "IGCM_sys_RmRunDir" -- $@ 728 if ( $DEBUG_sys ) ; then 729 echo "IGCM_sys_RmRunDir :" $@ 730 fi 731 732 typeset RET 733 734 echo rm $@ > out_rsync 2>&1 735 \rm $@ >> out_rsync 2>&1 736 RET=$? 737 738 if [ ${RET} -gt 0 ] ; then 739 echo "IGCM_sys_RmRunDir : error." 740 cat out_rsync 741 IGCM_debug_Exit "IGCM_sys_RmRunDir" 742 else 743 \rm out_rsync 744 fi 745 746 IGCM_debug_PopStack "IGCM_sys_RmRunDir" 780 IGCM_debug_PushStack "IGCM_sys_RmRunDir" -- $@ 781 if ( $DEBUG_sys ) ; then 782 echo "IGCM_sys_RmRunDir :" $@ 783 fi 784 785 typeset RET 786 787 echo rm $@ > out_rsync 2>&1 788 \rm $@ >> out_rsync 2>&1 789 RET=$? 790 791 if [ ${RET} -gt 0 ] ; then 792 echo "IGCM_sys_RmRunDir : error." 793 cat out_rsync 794 IGCM_debug_Exit "IGCM_sys_RmRunDir" 795 else 796 \rm out_rsync 797 fi 798 IGCM_debug_PopStack "IGCM_sys_RmRunDir" 747 799 } 748 800 … … 753 805 #D- 754 806 function IGCM_sys_Mv { 755 IGCM_debug_PushStack "IGCM_sys_Mv" $@ 756 if ( $DEBUG_sys ) ; then 757 echo "IGCM_sys_Mv :" $@ 758 fi 759 760 if [ $DRYRUN = 0 ]; then 761 762 typeset RET 763 764 echo mv $@ > out_rsync 2>&1 765 \mv $@ >> out_rsync 2>&1 766 RET=$? 807 IGCM_debug_PushStack "IGCM_sys_Mv" $@ 808 if ( $DEBUG_sys ) ; then 809 echo "IGCM_sys_Mv :" $@ 810 fi 811 812 if [ $DRYRUN = 0 ]; then 813 814 typeset RET 767 815 768 if [ ${RET} -gt 0 ] ; then 769 echo "IGCM_sys_Mv : error in mv." 770 cat out_rsync 771 IGCM_debug_Exit "IGCM_sys_Mv" 772 else 773 \rm out_rsync 774 fi 816 echo mv $@ > out_rsync 2>&1 817 \mv $@ >> out_rsync 2>&1 818 RET=$? 819 820 if [ ${RET} -gt 0 ] ; then 821 echo "IGCM_sys_Mv : error in mv." 822 cat out_rsync 823 IGCM_debug_Exit "IGCM_sys_Mv" 775 824 else 776 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 777 fi 778 779 IGCM_debug_PopStack "IGCM_sys_Mv" 825 \rm out_rsync 826 fi 827 else 828 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 829 fi 830 831 IGCM_debug_PopStack "IGCM_sys_Mv" 780 832 } 781 833 … … 786 838 #D- 787 839 function IGCM_sys_Put_Dir { 788 IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ 789 if ( $DEBUG_sys ) ; then 790 echo "IGCM_sys_Put_Dir :" $@ 791 fi 792 if [ $DRYRUN = 0 ]; then 793 if [ ! -d ${1} ] ; then 794 echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." 795 IGCM_debug_PopStack "IGCM_sys_Put_Dir" 796 return 797 fi 798 799 typeset RET 800 801 # Only if we use rsync 802 #IGCM_sys_TestDirArchive $( dirname $2 ) 803 # 804 #USUAL WAY 805 \cp -r $1 $2 > out_rsync 2>&1 806 RET=$? 807 808 if [ ${RET} -gt 0 ] ; then 809 echo "IGCM_sys_Put_Dir : error." 810 cat out_rsync 811 IGCM_debug_Exit "IGCM_sys_Put_Dir" 812 else 813 \rm out_rsync 814 fi 840 IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ 841 if ( $DEBUG_sys ) ; then 842 echo "IGCM_sys_Put_Dir :" $@ 843 fi 844 if [ $DRYRUN = 0 ]; then 845 if [ ! -d ${1} ] ; then 846 echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." 847 IGCM_debug_PopStack "IGCM_sys_Put_Dir" 848 return 849 fi 850 851 typeset RET 852 853 # Only if we use rsync 854 #IGCM_sys_TestDirArchive $( dirname $2 ) 855 # 856 #USUAL WAY 857 \cp -r $1 $2 > out_rsync 2>&1 858 RET=$? 859 860 if [ ${RET} -gt 0 ] ; then 861 echo "IGCM_sys_Put_Dir : error." 862 cat out_rsync 863 IGCM_debug_Exit "IGCM_sys_Put_Dir" 815 864 else 816 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 817 fi 818 IGCM_debug_PopStack "IGCM_sys_Put_Dir" 865 \rm out_rsync 866 fi 867 else 868 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 869 fi 870 IGCM_debug_PopStack "IGCM_sys_Put_Dir" 819 871 } 820 872 821 873 #D-#================================================== 822 874 #D-function IGCM_sys_Get_Dir 823 #D-* Purpose: Copy a complete directory from $ (ARCHIVE)875 #D-* Purpose: Copy a complete directory from ${ARCHIVE} 824 876 #D-* Examples: 825 877 #D- 826 878 function IGCM_sys_Get_Dir { 827 IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ 828 if ( $DEBUG_sys ) ; then 829 echo "IGCM_sys_Get_Dir :" $@ 830 fi 831 if [ $DRYRUN = 0 ]; then 832 # if [ ! -d ${1} ] ; then 833 # echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ." 834 # IGCM_debug_PopStack "IGCM_sys_Get_Dir" 835 # return 836 # fi 837 838 typeset RET 839 840 # Only if we use rsync 841 #IGCM_sys_TestDirArchive $( dirname $2 ) 842 # 843 #USUAL WAY 844 # add dmget (to demigrate all offline files) to reduce time of this command : 845 dmget $1/* 846 \cp -r $1 $2 > out_rsync 2>&1 847 RET=$? 848 849 if [ ${RET} -gt 0 ] ; then 850 echo "IGCM_sys_Get_Dir : error." 851 cat out_rsync 852 IGCM_debug_Exit "IGCM_sys_Get_Dir" 853 else 854 \rm out_rsync 855 fi 879 IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ 880 if ( $DEBUG_sys ) ; then 881 echo "IGCM_sys_Get_Dir :" $@ 882 fi 883 if [ $DRYRUN = 0 ]; then 884 # if [ ! -d ${1} ] ; then 885 # echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ." 886 # IGCM_debug_PopStack "IGCM_sys_Get_Dir" 887 # return 888 # fi 889 890 typeset RET 891 892 # Only if we use rsync 893 #IGCM_sys_TestDirArchive $( dirname $2 ) 894 # 895 # USUAL WAY 896 # add dmfind/dmget (to demigrate all offline files) : 897 dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 898 \cp -r $1 $2 > out_rsync 2>&1 899 RET=$? 900 901 if [ ${RET} -gt 0 ] ; then 902 echo "IGCM_sys_Get_Dir : error." 903 cat out_rsync 904 IGCM_debug_Exit "IGCM_sys_Get_Dir" 856 905 else 857 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 858 fi 859 IGCM_debug_PopStack "IGCM_sys_Get_Dir" 906 \rm out_rsync 907 fi 908 else 909 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 910 fi 911 IGCM_debug_PopStack "IGCM_sys_Get_Dir" 860 912 } 861 913 … … 866 918 #D- 867 919 function IGCM_sys_Get_Master { 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 920 IGCM_debug_PushStack "IGCM_sys_Get_Master" $@ 921 if ( $DEBUG_sys ) ; then 922 echo "IGCM_sys_Get_Master :" $@ 923 fi 924 if [ $DRYRUN = 0 ]; then 925 926 typeset TEST NB_ESSAI DELAI status i 927 928 TEST=$( IGCM_sys_RshMaster [ -d $1 ] && echo 1 || echo 0 ) 929 if [ ${TEST} -ne 1 ] ; then 930 echo "WARNING : IGCM_sys_Get_Master ${1} DOES NOT EXIST ON ${MASTER}." 931 IGCM_debug_PopStack "IGCM_sys_Get_Master" 932 return 933 fi 934 935 # number of tentative 936 NB_ESSAI=10 937 # time delay between tentative 938 DELAI=10 939 # 940 (( i = 0 )) 941 while [ $i -lt $NB_ESSAI ] ; do 890 942 #USUAL WAY 891 scp -r ${MASTER}:$1 $2 > out_rsync 2>&1 892 status=$? 893 if [ ${status} -gt 0 ]; then 894 IGCM_debug_Print 2 "IGCM_sys_Get_Master : scp failed ${i}/${NB_ESSAI}" 895 IGCM_debug_Print 2 "IGCM_sys_Get_Master : sleep ${DELAI} seconds and try again." 896 sleep $DELAI 897 else 898 break 899 fi 900 (( i = i + 1 )) 901 done 902 903 if [ ${status} -gt 0 ] ; then 904 echo "IGCM_sys_Get_Master : error." 905 cat out_rsync 906 IGCM_debug_Exit "IGCM_sys_Get_Master" 907 else 908 \rm out_rsync 909 fi 943 scp -r ${MASTER}:$1 $2 > out_rsync 2>&1 944 status=$? 945 if [ ${status} -gt 0 ]; then 946 IGCM_debug_Print 2 "IGCM_sys_Get_Master : scp failed ${i}/${NB_ESSAI}" 947 IGCM_debug_Print 2 "IGCM_sys_Get_Master : sleep ${DELAI} seconds and try again." 948 sleep $DELAI 949 else 950 break 951 fi 952 (( i = i + 1 )) 953 done 954 955 if [ ${status} -gt 0 ] ; then 956 echo "IGCM_sys_Get_Master : error." 957 cat out_rsync 958 IGCM_debug_Exit "IGCM_sys_Get_Master" 910 959 else 911 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 912 fi 913 IGCM_debug_PopStack "IGCM_sys_Get_Master" 960 \rm out_rsync 961 fi 962 else 963 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 964 fi 965 IGCM_debug_PopStack "IGCM_sys_Get_Master" 914 966 } 915 967 916 968 #D-#================================================== 917 969 #D-function IGCM_sys_Put_Rest 918 #D-* Purpose: Put computied restarts on $ (ARCHIVE).970 #D-* Purpose: Put computied restarts on ${ARCHIVE}. 919 971 #D- File and target directory must exist. 920 972 #D-* Examples: 921 973 #D- 922 974 function IGCM_sys_Put_Rest { 923 IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ 924 if ( $DEBUG_sys ) ; then 925 echo "IGCM_sys_Put_Rest :" $@ 926 fi 927 if [ $DRYRUN = 0 ]; then 928 if [ ! -f ${1} ] ; then 929 echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." 930 IGCM_debug_Exit "IGCM_sys_Put_Rest" 931 fi 932 933 typeset RET 934 # 935 if [ X${JobType} = XRUN ] ; then 936 IGCM_sys_Chmod 444 ${1} 937 fi 938 # 939 IGCM_sys_TestDirArchive $( dirname $2 ) 940 # 941 # USUAL WAY 942 \cp $1 $2 > out_rsync 2>&1 943 RET=$? 975 IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ 976 if ( $DEBUG_sys ) ; then 977 echo "IGCM_sys_Put_Rest :" $@ 978 fi 979 if [ $DRYRUN = 0 ]; then 980 if [ ! -f ${1} ] ; then 981 echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." 982 IGCM_debug_Exit "IGCM_sys_Put_Rest" 983 fi 984 985 typeset RET 986 # 987 if [ X${JobType} = XRUN ] ; then 988 IGCM_sys_Chmod 444 ${1} 989 fi 990 991 # 992 # USUAL WAY 993 \cp $1 $2 > out_rsync 2>&1 994 RET=$? 944 995 945 996 # #RSYNC WITH NETWORK SSH CALL 946 # echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${ RHOST}:${2} > out_rsync 2>&1947 # ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${ RHOST}:${2} >> out_rsync 2>&1997 # echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 998 # ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 948 999 949 1000 # #RSYNC WITH NFS USE … … 957 1008 # (( RET=RET+$? )) 958 1009 959 if [ ${RET} -gt 0 ] ; then 960 echo "IGCM_sys_Put_Rest : error." 961 cat out_rsync 962 IGCM_debug_Exit "IGCM_sys_Put_Rest" 963 else 964 \rm out_rsync 965 fi 1010 if [ ${RET} -gt 0 ] ; then 1011 echo "IGCM_sys_Put_Rest : error." 1012 cat out_rsync 1013 IGCM_debug_Exit "IGCM_sys_Put_Rest" 966 1014 else 967 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 968 fi 969 IGCM_debug_PopStack "IGCM_sys_Put_Rest" 1015 \rm out_rsync 1016 fi 1017 else 1018 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1019 fi 1020 IGCM_debug_PopStack "IGCM_sys_Put_Rest" 970 1021 } 971 1022 972 1023 #D-#================================================== 973 1024 #D-function IGCM_sys_Put_Out 974 #D-* Purpose: Copy a file on $ (ARCHIVE) after havechmod it in readonly1025 #D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly 975 1026 #D-* Examples: 976 1027 #D- 977 1028 function IGCM_sys_Put_Out { 978 IGCM_debug_PushStack "IGCM_sys_Put_Out" $@ 979 if ( $DEBUG_sys ) ; then 980 echo "IGCM_sys_Put_Out :" $@ 981 fi 982 if [ $DRYRUN = 0 ]; then 983 if [ ! -f ${1} ] ; then 984 echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ." 985 IGCM_debug_PopStack "IGCM_sys_Put_Out" 986 return 1 987 fi 988 # 989 IGCM_sys_MkdirArchive $( dirname $2 ) 990 # 991 typeset RET exist skip 992 993 #===================================================== 994 # COMMENT OUT DOUBLE COPY ON SCRATCHDIR 995 #===================================================== 996 997 #echo ${2} | grep "${R_OUT}" > /dev/null 2>&1 998 #if [ $? -eq 0 ] ; then 999 # typeset WORKPATH FILEPATH 1000 # WORKPATH=$( dirname $2 | sed -e "s|${R_OUT}|${R_OUT_SCR}|" ) 1001 # IGCM_sys_MkdirWork ${WORKPATH} 1002 # FILEPATH=${WORKPATH}/$( basename $2 ) 1003 # # 1004 # IGCM_sys_Cp ${1} ${FILEPATH} 1005 #fi 1006 1007 if [ X${JobType} = XRUN ] ; then 1008 if [ X${3} = X ] ; then 1009 IGCM_sys_Chmod 444 ${1} 1010 fi 1011 fi 1012 1013 exist=false 1029 IGCM_debug_PushStack "IGCM_sys_Put_Out" $@ 1030 if ( $DEBUG_sys ) ; then 1031 echo "IGCM_sys_Put_Out :" $@ 1032 fi 1033 if [ $DRYRUN = 0 ]; then 1034 if [ ! -f ${1} ] ; then 1035 echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ." 1036 IGCM_debug_PopStack "IGCM_sys_Put_Out" 1037 return 1 1038 fi 1039 # 1040 IGCM_sys_MkdirArchive $( dirname $2 ) 1041 # 1042 typeset RET exist skip 1043 1044 #===================================================== 1045 # COMMENT OUT DOUBLE COPY ON SCRATCHDIR 1046 #===================================================== 1047 1048 #echo ${2} | grep "${R_OUT}" > /dev/null 2>&1 1049 #if [ $? -eq 0 ] ; then 1050 # typeset WORKPATH FILEPATH 1051 # WORKPATH=$( dirname $2 | sed -e "s|${R_OUT}|${R_BUF}|" ) 1052 # IGCM_sys_MkdirWork ${WORKPATH} 1053 # FILEPATH=${WORKPATH}/$( basename $2 ) 1054 # # 1055 # IGCM_sys_Cp ${1} ${FILEPATH} 1056 #fi 1057 1058 if [ X${JobType} = XRUN ] ; then 1059 if [ X${3} = X ] ; then 1060 IGCM_sys_Chmod 444 ${1} 1061 fi 1062 fi 1063 1064 exist=false 1065 skip=false 1066 if [ -f $2 ] ; then 1067 IGCM_debug_Print 1 "$2 already exist" 1068 dmget $2 1069 exist=true 1070 if [ "X$( diff $1 $2 )" = X ] ; then 1071 IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy" 1072 skip=true 1073 else 1074 IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy" 1014 1075 skip=false 1015 if [ -f $2 ] ; then 1016 IGCM_debug_Print 1 "$2 already exist" 1017 dmget $2 1018 exist=true 1019 if [ "X$( diff $1 $2 )" = X ] ; then 1020 IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy" 1021 skip=true 1022 else 1023 IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy" 1024 skip=false 1025 fi 1026 fi 1076 fi 1077 fi 1027 1078 # 1028 1029 1030 1079 if ( [ X${exist} = Xtrue ] && [ X${skip} = Xfalse ] ) ; then 1080 IGCM_sys_Chmod u+w $2 1081 fi 1031 1082 # USUAL WAY 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1083 if [ X${skip} = Xfalse ] ; then 1084 cp $1 $2 > out_rsync 2>&1 1085 RET=$? 1086 if [ ${RET} -gt 0 ] ; then 1087 echo "IGCM_sys_Put_Out : error." 1088 cat out_rsync 1089 IGCM_debug_Exit "IGCM_sys_Put_Out" 1090 else 1091 \rm out_rsync 1092 fi 1093 fi 1043 1094 1044 1095 # #RSYNC WITH NETWORK RSH CALL … … 1057 1108 1058 1109 1059 1060 1061 1062 1063 1110 else 1111 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1112 fi 1113 IGCM_debug_PopStack "IGCM_sys_Put_Out" 1114 return 0 1064 1115 } 1065 1116 … … 1070 1121 #D- IGCM_sys_Get /l Array_contain_myfiles /destpath/ 1071 1122 function IGCM_sys_Get { 1072 IGCM_debug_PushStack "IGCM_sys_Get" $@ 1073 1074 typeset DEST RET dm_liste ifile target file_work 1075 1076 if ( $DEBUG_sys ) ; then 1077 echo "IGCM_sys_Get :" $@ 1078 fi 1079 if [ $DRYRUN -le 2 ]; then 1080 if [ X${1} = X'/l' ] ; then 1081 # test if the first file is present in the old computation : 1082 eval set +A dm_liste \${${2}} 1083 else 1084 eval set +A dm_liste ${1} 1085 fi 1086 eval DEST=\${${#}} 1087 1088 #===================================================== 1089 # COMMENT OUT DOUBLE COPY ON SCRATCHDIR 1090 #===================================================== 1091 1092 # Is it an R_OUT file (not R_IN) ? 1093 #echo ${dm_liste[0]} | grep "${R_OUT}" > /dev/null 2>&1 1094 #if [ $? -eq 0 ] ; then 1095 # # Yes ? then we try to get it in SCRATCHDIR 1096 # set +A file_work $( echo ${dm_liste[*]} | sed -e "s|${R_OUT}|${R_OUT_SCR}|g" ) 1097 # if [ -f ${file_work[0]} ] ; then 1098 # IGCM_sys_Cp ${file_work[*]} ${DEST} 1099 # IGCM_debug_PopStack "IGCM_sys_Get" 1100 # return 1101 # fi 1102 #fi 1103 1104 # test if the (first) file is present in the old computation : 1105 IGCM_sys_TestFileArchive ${dm_liste[0]} 1106 RET=$? 1107 if [ ${RET} -gt 0 ] ; then 1108 echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ." 1109 IGCM_debug_Exit "IGCM_sys_Get" 1110 fi 1111 1112 dmget ${dm_liste[*]} > out_rsync 2>&1 1113 RET=$? 1114 1115 if [ ${RET} -gt 0 ] ; then 1116 echo "WARNING IGCM_sys_Get : demigration error." 1117 cat out_rsync 1118 echo "WARNING IGCM_sys_Get : will stop later if the cp fails." 1119 fi 1120 1121 #if [ ${RET} -gt 0 ] ; then 1122 # if [ ! "X$( grep "Lost dmusrcmd connection" out_rsync )" = "X" ] ; then 1123 # cat out_rsync 1124 # echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : " 1125 # sleep 30 1126 # echo "We try another time" 1127 # dmget ${dm_liste[*]} > out_rsync 2>&1 1128 # RET=$? 1129 # if [ ${RET} -gt 0 ] ; then 1130 # echo "ERROR IGCM_sys_Get : again demigration error :" 1131 # cat out_rsync 1132 # IGCM_debug_Exit "IGCM_sys_Get" 1133 # fi 1134 # else 1135 # echo "ERROR IGCM_sys_Get : demigration error :" 1136 # cat out_rsync 1137 # IGCM_debug_Exit "IGCM_sys_Get" 1138 # fi 1139 #fi 1140 1141 #USUAL WAY 1142 (( RET=0 )) 1143 if [ X${1} = X'/l' ] ; then 1144 (( RET=0 )) 1145 for target in ${dm_liste[*]} ; do 1146 local_file=$( basename ${target} ) 1147 \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 1148 (( RET = RET + $? )) 1149 done 1150 else 1151 \cp ${dm_liste} ${DEST} >> out_rsync 2>&1 1152 RET=$? 1153 fi 1123 IGCM_debug_PushStack "IGCM_sys_Get" $@ 1124 1125 typeset DEST RET dm_liste ifile target file_work 1126 1127 if ( $DEBUG_sys ) ; then 1128 echo "IGCM_sys_Get :" $@ 1129 fi 1130 if [ $DRYRUN -le 2 ]; then 1131 if [ X${1} = X'/l' ] ; then 1132 # test if the first file is present in the old computation : 1133 eval set +A dm_liste \${${2}} 1134 else 1135 eval set +A dm_liste ${1} 1136 fi 1137 eval DEST=\${${#}} 1138 1139 #===================================================== 1140 # COMMENT OUT DOUBLE COPY ON SCRATCHDIR 1141 #===================================================== 1142 1143 # Is it an R_OUT file (not R_IN) ? 1144 #echo ${dm_liste[0]} | grep "${R_OUT}" > /dev/null 2>&1 1145 #if [ $? -eq 0 ] ; then 1146 # # Yes ? then we try to get it in SCRATCHDIR 1147 # set +A file_work $( echo ${dm_liste[*]} | sed -e "s|${R_OUT}|${R_BUF}|g" ) 1148 # if [ -f ${file_work[0]} ] ; then 1149 # IGCM_sys_Cp ${file_work[*]} ${DEST} 1150 # IGCM_debug_PopStack "IGCM_sys_Get" 1151 # return 1152 # fi 1153 #fi 1154 1155 # test if the (first) file is present in the old computation : 1156 IGCM_sys_TestFileArchive ${dm_liste[0]} 1157 RET=$? 1158 if [ ${RET} -gt 0 ] ; then 1159 echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ." 1160 IGCM_debug_Exit "IGCM_sys_Get" 1161 fi 1162 1163 dmget ${dm_liste[*]} > out_rsync 2>&1 1164 RET=$? 1165 if [ ${RET} -gt 0 ] ; then 1166 echo "WARNING IGCM_sys_Get : demigration error." 1167 cat out_rsync 1168 echo "WARNING IGCM_sys_Get : will stop later if the cp fails." 1169 fi 1170 #if [ ${RET} -gt 0 ] ; then 1171 # if [ ! "X$( grep "Lost dmusrcmd connection" out_rsync )" = "X" ] ; then 1172 # cat out_rsync 1173 # echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : " 1174 # sleep 30 1175 # echo "We try another time" 1176 # dmget ${dm_liste[*]} > out_rsync 2>&1 1177 # RET=$? 1178 # if [ ${RET} -gt 0 ] ; then 1179 # echo "ERROR IGCM_sys_Get : again demigration error :" 1180 # cat out_rsync 1181 # IGCM_debug_Exit "IGCM_sys_Get" 1182 # fi 1183 # else 1184 # echo "ERROR IGCM_sys_Get : demigration error :" 1185 # cat out_rsync 1186 # IGCM_debug_Exit "IGCM_sys_Get" 1187 # fi 1188 #fi 1189 1190 #USUAL WAY 1191 if [ X${1} = X'/l' ] ; then 1192 (( RET=0 )) 1193 for target in ${dm_liste[*]} ; do 1194 local_file=$( basename ${target} ) 1195 \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 1196 (( RET = RET + $? )) 1197 done 1198 else 1199 \cp ${dm_liste} ${DEST} >> out_rsync 2>&1 1200 RET=$? 1201 fi 1154 1202 1155 1203 # #RSYNC WITH NETWORK SSH CALL … … 1167 1215 # (( RET=RET+$? )) 1168 1216 1169 if [ ${RET} -gt 0 ] ; then 1170 echo "IGCM_sys_Get : copy error." 1171 cat out_rsync 1172 IGCM_debug_Exit "IGCM_sys_Get" 1173 else 1174 \rm out_rsync 1175 fi 1217 if [ ${RET} -gt 0 ] ; then 1218 echo "IGCM_sys_Get : copy error." 1219 cat out_rsync 1220 IGCM_debug_Exit "IGCM_sys_Get" 1176 1221 else 1177 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1178 fi 1179 IGCM_debug_PopStack "IGCM_sys_Get" 1222 \rm out_rsync 1223 fi 1224 else 1225 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1226 fi 1227 IGCM_debug_PopStack "IGCM_sys_Get" 1228 } 1229 1230 #D-#================================================== 1231 #D-function IGCM_sys_GetBuffer 1232 #D-* Purpose: Get a file from ${SCRATCHDIR} 1233 #D-* Examples: IGCM_sys_GetBuffer myfile /destpath/myfile_with_PREFIX 1234 #D- IGCM_sys_GetBuffer /l Array_contain_myfiles /destpath/ 1235 function IGCM_sys_GetBuffer { 1236 IGCM_debug_PushStack "IGCM_sys_GetBuffer" $@ 1237 1238 typeset DEST RET buf_liste ifile target file_work 1239 1240 if ( $DEBUG_sys ) ; then 1241 echo "IGCM_sys_GetBuffer :" $@ 1242 fi 1243 if [ $DRYRUN -le 2 ]; then 1244 if [ X${1} = X'/l' ] ; then 1245 # test if the first file is present in the old computation : 1246 eval set +A buf_liste \${${2}} 1247 else 1248 eval set +A buf_liste ${1} 1249 fi 1250 eval DEST=\${${#}} 1251 1252 #USUAL WAY 1253 if [ X${1} = X'/l' ] ; then 1254 (( RET=0 )) 1255 for target in ${buf_liste[*]} ; do 1256 local_file=$( basename ${target} ) 1257 \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 1258 (( RET = RET + $? )) 1259 done 1260 else 1261 \cp ${buf_liste} ${DEST} >> out_rsync 2>&1 1262 RET=$? 1263 fi 1264 1265 if [ ${RET} -gt 0 ] ; then 1266 echo "IGCM_sys_GetBuffer : copy error." 1267 cat out_rsync 1268 IGCM_debug_Exit "IGCM_sys_GetBuffer" 1269 else 1270 \rm out_rsync 1271 fi 1272 else 1273 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1274 fi 1275 IGCM_debug_PopStack "IGCM_sys_GetBuffer" 1276 } 1277 1278 #D-#================================================== 1279 #D-function IGCM_sys_GetDate_FichWork 1280 #D-* Purpose: donne la date filesys d'un fichier sur le filesystem WORK 1281 #D-* Examples: 1282 #D- 1283 function IGCM_sys_GetDate_FichWork { 1284 IGCM_debug_PushStack "IGCM_sys_FichWork" $@ 1285 if ( $DEBUG_sys ) ; then 1286 echo "IGCM_sys_GetDate_FichWork :" $@ 1287 fi 1288 # donne la date filesys d'un fichier sur la machine work 1289 IGCM_debug_PopStack "IGCM_sys_FichWork" 1290 } 1291 1292 #D-#================================================== 1293 #D-function IGCM_sys_GetDate_FichArchive 1294 #D-* Purpose: donne la date filesys d'un fichier sur le filesystem ARCHIVE 1295 #D-* Examples: 1296 #D- 1297 function IGCM_sys_GetDate_FichArchive { 1298 IGCM_debug_PushStack "IGCM_sys_FichArchive" $@ 1299 if ( $DEBUG_sys ) ; then 1300 echo "IGCM_sys_GetDate_FichArchive :" $@ 1301 fi 1302 IGCM_debug_PopStack "IGCM_sys_FichArchive" 1180 1303 } 1181 1304 1182 1305 #D-#================================================== 1183 1306 #D-function IGCM_sys_Dods_Rm 1184 #D-* Purpose: DO NOTHING ! Put $ (ARCHIVE)files on DODS internet protocole.1307 #D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole. 1185 1308 #D-* Examples: 1186 1309 #D- 1187 1310 function IGCM_sys_Dods_Rm { 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 dods_rm public/${LOGIN}/${R_DODS}/${1} #> out_dods_rm 2>&11200 1201 1311 if ( $DEBUG_sys ) ; then 1312 echo "IGCM_sys_Dods_Rm :" $@ 1313 fi 1314 typeset RET 1315 RET=0 1316 if [ $DRYRUN = 0 ]; then 1317 if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 1318 echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 1319 echo "Nothing has been done." 1320 return 1321 fi 1322 dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 1323 RET=$? 1324 1202 1325 # if [ ${RET} -gt 0 ] ; then 1203 1326 # echo "IGCM_sys_Dods_Rm : error." … … 1208 1331 # fi 1209 1332 1210 else 1211 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1212 fi 1213 return $RET 1214 } 1215 1333 else 1334 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1335 fi 1336 return $RET 1337 } 1216 1338 1217 1339 #D-#================================================== … … 1221 1343 #D- 1222 1344 function IGCM_sys_Dods_Cp { 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1345 if ( $DEBUG_sys ) ; then 1346 echo "IGCM_sys_Dods_Cp :" $@ 1347 fi 1348 typeset RET 1349 RET=0 1350 if [ $DRYRUN = 0 ]; then 1351 if [ ! -d ${R_SAVE}/${1} ] ; then 1352 echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 1353 echo "Nothing has been done." 1354 return 1355 fi 1356 # 1357 dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 1358 RET=$? 1359 1238 1360 # if [ ${RET} -gt 0 ] ; then 1239 1361 # echo "IGCM_sys_Dods_Cp : error." … … 1244 1366 # fi 1245 1367 1246 1247 1248 1249 1368 else 1369 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1370 fi 1371 return $RET 1250 1372 } 1251 1373 … … 1256 1378 #D- 1257 1379 function IGCM_sys_Put_Dods { 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1380 IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@ 1381 if ( $DEBUG_sys ) ; then 1382 echo "IGCM_sys_Put_Dods :" $@ 1383 fi 1384 if [ $DRYRUN = 0 ]; then 1385 if [ ! -d ${R_SAVE}/${1} ] ; then 1386 echo "WARNING : IGCM_sys_Put_Dods ${R_SAVE}/${1} DOES NOT EXIST ." 1387 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1388 return 1389 fi 1390 1391 typeset RET 1270 1392 # 1271 cd ${R_SAVE} 1272 IGCM_sys_Dods_Rm ${1} 1273 IGCM_sys_Dods_Cp ${1} 1274 RET=0 1275 1276 if [ ${RET} -gt 0 ] ; then 1277 echo "IGCM_sys_Put_Dods : error." 1278 IGCM_debug_Exit "IGCM_sys_Put_Dods" 1279 fi 1280 else 1281 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1282 fi 1283 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1284 } 1285 1286 ############################################################## A FINIR !! 1287 1288 #D-#================================================== 1289 #D-function IGCM_sys_GetDate_FichWork 1290 #D-* Purpose: donne la date filesys d'un fichier sur le filesystem WORK 1291 #D-* Examples: 1292 #D- 1293 function IGCM_sys_GetDate_FichWork { 1294 IGCM_debug_PushStack "IGCM_sys_FichWork" $@ 1295 if ( $DEBUG_sys ) ; then 1296 echo "IGCM_sys_GetDate_FichWork :" $@ 1297 fi 1298 # donne la date filesys d'un fichier sur la machine work 1299 IGCM_debug_PopStack "IGCM_sys_FichWork" 1300 } 1301 1302 #D-#================================================== 1303 #D-function IGCM_sys_GetDate_FichArchive 1304 #D-* Purpose: donne la date filesys d'un fichier sur le filesystem ARCHIVE 1305 #D-* Examples: 1306 #D- 1307 function IGCM_sys_GetDate_FichArchive { 1308 IGCM_debug_PushStack "IGCM_sys_FichArchive" $@ 1309 if ( $DEBUG_sys ) ; then 1310 echo "IGCM_sys_GetDate_FichArchive :" $@ 1311 fi 1312 IGCM_debug_PopStack "IGCM_sys_FichArchive" 1393 cd ${R_SAVE} 1394 IGCM_sys_Dods_Rm ${1} 1395 IGCM_sys_Dods_Cp ${1} 1396 RET=0 1397 1398 if [ ${RET} -gt 0 ] ; then 1399 echo "IGCM_sys_Put_Dods : error." 1400 IGCM_debug_Exit "IGCM_sys_Put_Dods" 1401 fi 1402 else 1403 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1404 fi 1405 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1313 1406 } 1314 1407 … … 1317 1410 1318 1411 function IGCM_sys_rebuild { 1319 IGCM_debug_PushStack "IGCM_sys_rebuild" -- $@ 1320 if ( $DEBUG_sys ) ; then 1321 echo "IGCM_sys_rebuild :" $@ 1322 fi 1323 /home/cont003/p86ipsl/CESIUM/bin/rebuild -f -o $@ 1324 if [ $? -gt 0 ] ; then 1325 echo "IGCM_sys_rebuild : erreur ${@}." 1326 IGCM_debug_Exit "rebuild" 1327 fi 1328 1329 IGCM_debug_PopStack "IGCM_sys_rebuild" 1412 IGCM_debug_PushStack "IGCM_sys_rebuild" -- $@ 1413 if ( $DEBUG_sys ) ; then 1414 echo "IGCM_sys_rebuild :" $@ 1415 fi 1416 /home/cont003/p86ipsl/CESIUM/bin/rebuild -f -o $@ 1417 if [ $? -gt 0 ] ; then 1418 echo "IGCM_sys_rebuild : erreur ${@}." 1419 IGCM_debug_Exit "rebuild" 1420 fi 1421 1422 IGCM_debug_PopStack "IGCM_sys_rebuild" 1423 } 1424 1425 1426 ############################################################ 1427 # Activate Running Environnment Variables 1428 1429 function IGCM_sys_activ_variables { 1430 IGCM_debug_PushStack "IGCM_sys_activ_variables" 1431 if ( $DEBUG_sys ) ; then 1432 echo "IGCM_sys_activ_variables" 1433 fi 1434 IGCM_debug_PopStack "IGCM_sys_activ_variables" 1435 } 1436 1437 ############################################################ 1438 # Desactivate Running Environnment Variables 1439 1440 function IGCM_sys_desactiv_variables { 1441 IGCM_debug_PushStack "IGCM_sys_desactiv_variables" 1442 if ( $DEBUG_sys ) ; then 1443 echo "IGCM_sys_desactiv_variables" 1444 fi 1445 IGCM_debug_PopStack "IGCM_sys_desactiv_variables" 1446 } 1447 1448 ############################################################ 1449 # Build run file 1450 1451 function IGCM_sys_build_run_file { 1452 IGCM_debug_PushStack "IGCM_sys_build_run_file" $@ 1453 if ( $DEBUG_sys ) ; then 1454 echo "IGCM_sys_build_run_file" 1455 fi 1456 IGCM_debug_PopStack "IGCM_sys_build_run_file" 1330 1457 } 1331 1458 … … 1334 1461 1335 1462 function IGCM_sys_ncap2 { 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1463 IGCM_debug_PushStack "IGCM_sys_ncap2" -- $@ 1464 if ( $DEBUG_sys ) ; then 1465 echo "IGCM_sys_ncap2 :" $@ 1466 fi 1467 ncap2 "$@" 1468 if [ $? -gt 0 ] ; then 1469 echo "IGCM_sys_ncap2 : erreur ${@}." 1470 IGCM_debug_Exit "ncap2" 1471 fi 1472 1473 IGCM_debug_PopStack "IGCM_sys_ncap2" 1347 1474 } 1348 1475 1349 1476 function IGCM_sys_ncatted { 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1477 IGCM_debug_PushStack "IGCM_sys_ncatted" -- $@ 1478 if ( $DEBUG_sys ) ; then 1479 echo "IGCM_sys_ncatted :" $@ 1480 fi 1481 ncatted "$@" 1482 if [ $? -gt 0 ] ; then 1483 echo "IGCM_sys_ncatted : erreur ${@}." 1484 IGCM_debug_Exit "ncatted" 1485 fi 1486 1487 IGCM_debug_PopStack "IGCM_sys_ncatted" 1361 1488 } 1362 1489 1363 1490 function IGCM_sys_ncbo { 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1491 IGCM_debug_PushStack "IGCM_sys_ncbo" -- $@ 1492 if ( $DEBUG_sys ) ; then 1493 echo "IGCM_sys_ncbo :" $@ 1494 fi 1495 ncbo $@ 1496 if [ $? -gt 0 ] ; then 1497 echo "IGCM_sys_ncbo : erreur ${@}." 1498 IGCM_debug_Exit "ncbo" 1499 fi 1500 1501 IGCM_debug_PopStack "IGCM_sys_ncbo" 1375 1502 } 1376 1503 1377 1504 function IGCM_sys_ncdiff { 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1505 IGCM_debug_PushStack "IGCM_sys_ncdiff" -- $@ 1506 if ( $DEBUG_sys ) ; then 1507 echo "IGCM_sys_ncdiff :" $@ 1508 fi 1509 ncdiff $@ 1510 if [ $? -gt 0 ] ; then 1511 echo "IGCM_sys_ncdiff : erreur ${@}." 1512 IGCM_debug_Exit "ncdiff" 1513 fi 1514 1515 IGCM_debug_PopStack "IGCM_sys_ncdiff" 1389 1516 } 1390 1517 1391 1518 function IGCM_sys_ncea { 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1519 IGCM_debug_PushStack "IGCM_sys_ncea" -- $@ 1520 if ( $DEBUG_sys ) ; then 1521 echo "IGCM_sys_ncea :" $@ 1522 fi 1523 ncea $@ 1524 if [ $? -gt 0 ] ; then 1525 echo "IGCM_sys_ncea : erreur ${@}." 1526 IGCM_debug_Exit "ncea" 1527 fi 1528 1529 IGCM_debug_PopStack "IGCM_sys_ncea" 1403 1530 } 1404 1531 1405 1532 function IGCM_sys_ncecat { 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1533 IGCM_debug_PushStack "IGCM_sys_ncecat" -- $@ 1534 if ( $DEBUG_sys ) ; then 1535 echo "IGCM_sys_ncecat :" $@ 1536 fi 1537 ncecat $@ 1538 if [ $? -gt 0 ] ; then 1539 echo "IGCM_sys_ncecat : erreur ${@}." 1540 IGCM_debug_Exit "ncecat" 1541 fi 1542 1543 IGCM_debug_PopStack "IGCM_sys_ncecat" 1417 1544 } 1418 1545 1419 1546 function IGCM_sys_ncflint { 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1547 IGCM_debug_PushStack "IGCM_sys_ncflint" -- $@ 1548 if ( $DEBUG_sys ) ; then 1549 echo "IGCM_sys_ncflint :" $@ 1550 fi 1551 ncflint $@ 1552 if [ $? -gt 0 ] ; then 1553 echo "IGCM_sys_ncflint : erreur ${@}." 1554 IGCM_debug_Exit "ncflint" 1555 fi 1556 1557 IGCM_debug_PopStack "IGCM_sys_ncflint" 1431 1558 } 1432 1559 1433 1560 function IGCM_sys_ncks { 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1561 IGCM_debug_PushStack "IGCM_sys_ncks" -- $@ 1562 if ( $DEBUG_sys ) ; then 1563 echo "IGCM_sys_ncks :" $@ 1564 fi 1565 ncks $@ 1566 if [ $? -gt 0 ] ; then 1567 echo "IGCM_sys_ncks : erreur ${@}." 1568 IGCM_debug_Exit "ncks" 1569 fi 1570 1571 IGCM_debug_PopStack "IGCM_sys_ncks" 1445 1572 } 1446 1573 1447 1574 function IGCM_sys_ncpdq { 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1575 IGCM_debug_PushStack "IGCM_sys_ncpdq" -- $@ 1576 if ( $DEBUG_sys ) ; then 1577 echo "IGCM_sys_ncpdq :" $@ 1578 fi 1579 ncpdq $@ 1580 if [ $? -gt 0 ] ; then 1581 echo "IGCM_sys_ncpdq : erreur ${@}." 1582 IGCM_debug_Exit "ncpdq" 1583 fi 1584 1585 IGCM_debug_PopStack "IGCM_sys_ncpdq" 1459 1586 } 1460 1587 1461 1588 function IGCM_sys_ncra { 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1589 IGCM_debug_PushStack "IGCM_sys_ncra" -- $@ 1590 if ( $DEBUG_sys ) ; then 1591 echo "IGCM_sys_ncra :" $@ 1592 fi 1593 ncra $@ 1594 if [ $? -gt 0 ] ; then 1595 echo "IGCM_sys_ncra : erreur ${@}." 1596 IGCM_debug_Exit "ncra" 1597 fi 1598 1599 IGCM_debug_PopStack "IGCM_sys_ncra" 1473 1600 } 1474 1601 1475 1602 function IGCM_sys_ncrcat { 1476 1477 1478 1479 1480 1481 1482 1603 IGCM_debug_PushStack "IGCM_sys_ncrcat" -- $@ 1604 if ( $DEBUG_sys ) ; then 1605 echo "IGCM_sys_ncrcat :" $@ 1606 fi 1607 ncrcat $@ 1608 if [ $? -gt 0 ] ; then 1609 echo "IGCM_sys_ncrcat : erreur ${@}." 1483 1610 # IGCM_debug_Exit "ncrcat" 1484 1485 1486 1611 fi 1612 1613 IGCM_debug_PopStack "IGCM_sys_ncrcat" 1487 1614 } 1488 1615 1489 1616 function IGCM_sys_ncrename { 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1617 IGCM_debug_PushStack "IGCM_sys_ncrename" -- $@ 1618 if ( $DEBUG_sys ) ; then 1619 echo "IGCM_sys_ncrename :" $@ 1620 fi 1621 ncrename $@ 1622 if [ $? -gt 0 ] ; then 1623 echo "IGCM_sys_ncrename : erreur ${@}." 1624 IGCM_debug_Exit "ncrename" 1625 fi 1626 1627 IGCM_debug_PopStack "IGCM_sys_ncrename" 1501 1628 } 1502 1629 1503 1630 function IGCM_sys_ncwa { 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1631 IGCM_debug_PushStack "IGCM_sys_ncwa" -- $@ 1632 if ( $DEBUG_sys ) ; then 1633 echo "IGCM_sys_ncwa :" $@ 1634 fi 1635 ncwa $@ 1636 if [ $? -gt 0 ] ; then 1637 echo "IGCM_sys_ncwa : erreur ${@}." 1638 IGCM_debug_Exit "ncwa" 1639 fi 1640 1641 IGCM_debug_PopStack "IGCM_sys_ncwa" 1515 1642 } 1516 1643 … … 1519 1646 1520 1647 function IGCM_sys_cdo { 1521 IGCM_debug_PushStack "IGCM_sys_cdo" -- $@ 1522 1523 \cdo $@ 1524 if [ $? -gt 0 ] ; then 1525 echo "IGCM_sys_cdo : erreur ${@}." 1526 IGCM_debug_PopStack "IGCM_sys_cdo" 1527 return 1 1528 else 1529 IGCM_debug_PopStack "IGCM_sys_cdo" 1530 return 0 1531 fi 1532 1648 IGCM_debug_PushStack "IGCM_sys_cdo" -- $@ 1649 if ( $DEBUG_sys ) ; then 1650 echo "IGCM_sys_cdo :" $@ 1651 fi 1652 \cdo $@ 1653 if [ $? -gt 0 ] ; then 1654 echo "IGCM_sys_cdo : erreur ${@}." 1533 1655 IGCM_debug_PopStack "IGCM_sys_cdo" 1534 } 1535 1536 ############################################################ 1537 # Activate Running Environnment Variables 1538 1539 function IGCM_sys_activ_variables { 1540 IGCM_debug_PushStack "IGCM_sys_activ_variables" 1541 if ( $DEBUG_sys ) ; then 1542 echo "IGCM_sys_activ_variables" 1543 fi 1544 IGCM_debug_PopStack "IGCM_sys_activ_variables" 1545 } 1546 1547 ############################################################ 1548 # Desactivate Running Environnment Variables 1549 1550 function IGCM_sys_desactiv_variables { 1551 IGCM_debug_PushStack "IGCM_sys_desactiv_variables" 1552 if ( $DEBUG_sys ) ; then 1553 echo "IGCM_sys_desactiv_variables" 1554 fi 1555 IGCM_debug_PopStack "IGCM_sys_desactiv_variables" 1556 } 1557 1558 ############################################################ 1559 # Build run file 1560 1561 function IGCM_sys_build_run_file { 1562 IGCM_debug_PushStack "IGCM_sys_build_run_file" $@ 1563 if ( $DEBUG_sys ) ; then 1564 echo "IGCM_sys_build_run_file" 1565 fi 1566 IGCM_debug_PopStack "IGCM_sys_build_run_file" 1567 } 1656 return 1 1657 else 1658 IGCM_debug_PopStack "IGCM_sys_cdo" 1659 return 0 1660 fi 1661 1662 IGCM_debug_PopStack "IGCM_sys_cdo" 1663 }
Note: See TracChangeset
for help on using the changeset viewer.