Changeset 738
- Timestamp:
- 10/30/12 19:38:03 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/libIGCM_ensemble/libIGCM_ensemble.ksh
r737 r738 202 202 IGCM_sys_Cp Job_${ensemble_Ens_PERTURB_NAME} ${SUBMIT_DIR}/${StartDir}/${MemberDir}/${JobName} 203 203 204 ############################## 205 # TO BE A SYS FUNCTION BEGIN # 206 ############################## 207 204 208 # Dump command to be lauched in Qsub.txt 205 209 echo "cd ${StartDir}/${MemberDir}/ ;" >> Qsub.txt … … 207 211 echo "mv ${JobName}.tmp ${JobName} ; " >> Qsub.txt 208 212 echo "ccc_msub ${JobName} ; cd -" >> Qsub.txt 213 214 ############################ 215 # TO BE A SYS FUNCTION END # 216 ############################ 209 217 210 218 fi … … 311 319 IGCM_sys_Cp Job_${ensemble_Ens_PERTURB_NAME} ${SUBMIT_DIR}/${StartDir}/${MemberDir}/Job_${MemberDir} 312 320 321 ############################## 322 # TO BE A SYS FUNCTION BEGIN # 323 ############################## 324 313 325 # Dump command to be lauched in Qsub.txt 314 326 echo "cd ${StartDir}/${MemberDir}/ ;" >> Qsub.txt … … 316 328 echo "mv ${JobName}.tmp ${JobName} ; " >> Qsub.txt 317 329 echo "ccc_msub ${JobName} ; cd -" >> Qsub.txt 330 331 ############################ 332 # TO BE A SYS FUNCTION END # 333 ############################ 334 318 335 fi 319 336 … … 338 355 { 339 356 IGCM_debug_PushStack "IGCM_ensemble_CastFilesUpdate" 340 341 # set -vx342 357 343 358 # Debug Print : … … 365 380 done 366 381 # ==> Job 367 # SD : to be encapsulated in a sys function 382 ############################## 383 # TO BE A SYS FUNCTION BEGIN # 384 ############################## 385 368 386 sed -e "s/\(#MSUB -r \)[A-Za-z0-9]*\( *#.*\)/\1 ${MemberDir} \2/" \ 369 387 -e "s/\(#MSUB -o Script_Output_\)[A-Za-z0-9]*\(\.*\)/\1${MemberDir}\2/" \ … … 372 390 IGCM_sys_Mv Job_${MemberDir}.tmp ${SUBMIT_DIR}/${StartDir}/${MemberDir}/Job_${MemberDir} 373 391 392 ############################ 393 # TO BE A SYS FUNCTION END # 394 ############################ 395 374 396 IGCM_debug_PopStack "IGCM_ensemble_CastFilesUpdate" 375 397 } … … 383 405 IGCM_debug_Print 1 "IGCM_ensemble_CastDirectoryName :" 384 406 echo 385 386 # set -vx387 407 388 408 Name=$1 … … 422 442 #.. FileIn ? => RestartDate .. 423 443 DirIn="${ensemble_Ens_PERTURB_INITPATH}/${ensemble_Ens_PERTURB_INITFROM}/${PerturbComp}/Restart" 424 FileIn="${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${PerturbFile}.nc" 444 DirInTar="${ensemble_Ens_PERTURB_INITPATH}/${ensemble_Ens_PERTURB_INITFROM}/RESTART" 445 FileIn="${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${PerturbFile}" 425 446 DirOut="${RestartDir}/${MemberDir}/${PerturbComp}/Restart" 426 # FileOut="${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${PerturbFile}_${MemberDir}.nc"427 # FileOut=${FileIn}428 FileOut="${MemberDir}_${RestartDate}_${PerturbFile}.nc"429 IGCM_debug_Print 1 "FileIn = ${DirIn}/${FileIn}"430 IGCM_debug_Print 1 "FileOut = ${DirOut}/${FileOut}"431 447 432 448 # * Create member restart directory … … 437 453 fi 438 454 439 IGCM_sys_TestFileArchive ${DirOut}/${FileOut} 455 FileOut="${MemberDir}_${RestartDate}_${PerturbFile}" 456 IGCM_debug_Print 1 "FileOut = ${DirOut}/${FileOut}.nc" 457 458 #IGCM_debug_Print 1 "FileIn = ${DirIn}/${FileIn}" 459 460 IGCM_sys_TestFileArchive ${DirOut}/${FileOut}.nc 440 461 RET=$? 441 462 if [ $RET -gt 0 ] ; then 442 463 443 # ${PerturbExe} ${DirIn}/${FileIn} ${DirOut}/${FileOut} \ 444 # ${PerturbVar} ${PerturbAmp} 445 # IGCM_sys_Cp ${DirIn}/${FileIn} ${DirOut}/${FileOut} 446 # IGCM_sys_Chmod u+w ${DirOut}/${FileOut} 447 # ${PerturbExe} ${DirOut}/${FileOut} ${PerturbVar} ${PerturbAmp} 448 449 IGCM_sys_Get ${DirIn}/${FileIn} ${RUN_DIR}/${FileOut} 450 IGCM_sys_Chmod 744 ${RUN_DIR}/${FileOut} 451 452 IGCM_debug_Print 1 "${PerturbExe} ${RUN_DIR}/${FileOut} ${PerturbVar} ${PerturbAmp}" 464 # * Look for the restart file we apply the noise to 465 466 ########################## 467 # TO BE A FUNCTION BEGIN # 468 ########################## 469 470 if [ $( IGCM_sys_TestFileBuffer ${DirIn}/${FileIn}*.nc ; echo $? ) = 0 ] ; then 471 IGCM_debug_Print 3 "Buffered restart" 472 Buffered=true 473 Archived=false 474 Tared=false 475 nb_restart_file=$(IGCM_sys_CountFileBuffer ${DirIn}/${FileIn}_????.nc) 476 elif [ $( IGCM_sys_TestFileArchive ${DirIn}/${FileIn}*.nc ; echo $? ) = 0 ] ; then 477 IGCM_debug_Print 3 "Archived restart" 478 Buffered=false 479 Archived=true 480 Tared=false 481 nb_restart_file=$(IGCM_sys_CountFileArchive ${DirIn}/${FileIn}_????.nc) 482 else 483 IGCM_debug_Print 3 "Tared restart" 484 Buffered=false 485 Archived=false 486 Tared=true 487 # Look for the tar file we want if we did not found it already 488 #if [ X${IsMatching} = X ] ; then 489 for PotentialTarFile in $( find ${ensemble_Ens_PERTURB_INITPATH}/${ensemble_Ens_PERTURB_INITFROM}/RESTART -name "${ensemble_Ens_PERTURB_INITFROM}_*_restart.tar" -print ) ; do 490 IsMatching=$( echo ${PotentialTarFile##*/} | sed "s:^${ensemble_Ens_PERTURB_INITFROM}_::" | sed "s:\.restart\.tar$::" | gawk -F_ -v restartdate=${RestartDate} '{if (($1 < restartdate) && ($2 >= restartdate)) {print $1"_"$2}}' ) 491 if [ ! X${IsMatching} = X ] ; then 492 TarFileFound=${PotentialTarFile} 493 break 494 fi 495 done 496 #fi 497 # already specialized for CPL sstoc and flxat! 498 IGCM_debug_Print 1 "tar xvf ${TarFileFound} ${PerturbComp}_${FileIn}*.nc ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc" 499 tar xvf ${TarFileFound} ${PerturbComp}_${FileIn}*.nc ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc 500 nb_restart_file=$( IGCM_sys_CountFileBuffer ${PerturbComp}_${FileIn}_????.nc ) 501 fi 502 503 if [ ${nb_restart_file} -gt 1 ] ; then 504 j=0 505 until [ $j -ge $nb_restart_file ]; do 506 j4=${j} 507 if [ X${Buffered} = Xtrue ] ; then 508 IGCM_sys_GetBuffer ${DirIn}/${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc 509 elif [ X${Archived} = Xtrue ] ; then 510 IGCM_sys_Get ${DirIn}/${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc 511 elif [ X${Tared} = Xtrue ] ; then 512 IGCM_sys_Mv ${PerturbComp}_${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc 513 fi 514 (( j=j+1 )) 515 done 516 else 517 if [ X${Buffered} = Xtrue ] ; then 518 IGCM_sys_GetBuffer ${DirIn}/${FileIn}.nc ${RUN_DIR}/${FileOut}.nc 519 # already specialized for CPL sstoc and flxat! 520 IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc ${MemberDir}_${RestartDate}_flxat.nc" 521 elif [ X${Archived} = Xtrue ] ; then 522 IGCM_sys_Get ${DirIn}/${FileIn}.nc ${RUN_DIR}/${FileOut}.nc 523 # already specialized for CPL sstoc and flxat! 524 IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc ${MemberDir}_${RestartDate}_flxat.nc" 525 elif [ X${Tared} = Xtrue ] ; then 526 IGCM_sys_Mv ${PerturbComp}_${FileIn}.nc ${RUN_DIR}/${FileOut}.nc 527 # already specialized for CPL sstoc and flxat! 528 IGCM_sys_Mv ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc ${DirOut}/${MemberDir}_${RestartDate}_flxat.nc 529 fi 530 fi 531 532 ######################## 533 # TO BE A FUNCTION END # 534 ######################## 535 536 IGCM_sys_Chmod 644 ${RUN_DIR}/${FileOut}.nc 537 IGCM_debug_Print 1 "${PerturbExe} ${RUN_DIR}/${FileOut}.nc ${PerturbVar} ${PerturbAmp}" 453 538 echo 454 ${PerturbExe} ${RUN_DIR}/${FileOut} ${PerturbVar} ${PerturbAmp} > /dev/null 2>&1539 ${PerturbExe} ${RUN_DIR}/${FileOut}.nc ${PerturbVar} ${PerturbAmp} > /dev/null 2>&1 455 540 456 541 if [ $? -ne 0 ] ; then … … 458 543 return 459 544 fi 460 461 IGCM_sys_Put_Out ${RUN_DIR}/${FileOut} ${DirOut}/ 744 462 463 # IGCM_sys_Cd ${DirOut} 464 # ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc ${MemberDir}_${RestartDate}_flxat.nc 465 # IGCM_sys_Cd - 466 IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc ${MemberDir}_${RestartDate}_flxat.nc" 545 IGCM_sys_Put_Out ${RUN_DIR}/${FileOut}.nc ${DirOut}/ 644 467 546 fi 468 547
Note: See TracChangeset
for help on using the changeset viewer.