Changeset 864 for trunk/libIGCM
- Timestamp:
- 05/31/13 15:58:18 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/libIGCM_ensemble/libIGCM_ensemble.ksh
r829 r864 87 87 IGCM_debug_Print 1 "periodic start not active" 88 88 CastPeriodicStart=false 89 return90 89 ;; 91 90 *[Yy]|*[Mm]) … … 116 115 IGCM_debug_Print 1 "non-periodic start not active" 117 116 CastNonPeriodicStart=false 118 return119 117 ;; 120 118 *[Yy]|*[Mm]) … … 129 127 (( DateNum = DateNum + 1 )) 130 128 done 129 130 # Need to know all the restart filename of the component we will apply the noise to 131 IGCM_card_DefineArrayFromOption config.card ListOfComponents ${PerturbComp} 132 eval compname=\${config_ListOfComponents_${PerturbComp}[0]} > /dev/null 2>&1 133 134 # Target the component's card we apply the noise to 135 card=${SUBMIT_DIR}/COMP/${compname}.card 136 137 # Read the restart file list. To be used later 138 IGCM_card_DefineArrayFromOption ${card} RestartFiles List 139 ListFilesName=${compname}_RestartFiles_List 140 eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1 141 eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 142 143 # Check 144 IGCM_debug_Print 1 "Nb Restart Files = ${NbFiles}" 131 145 132 146 IGCM_debug_PopStack "IGCM_ensemble_CastInit" … … 415 429 IGCM_debug_PushStack "IGCM_ensemble_CastPerturbFile" 416 430 431 typeset i i_ j j4 file_out file_out_ 432 417 433 #.. Debug Print .. 418 434 echo … … 433 449 434 450 FileOut="${MemberDir}_${RestartDate}_${PerturbFile}" 451 IGCM_debug_Print 1 "FileIn = ${DirIn}/${FileIn}" 435 452 IGCM_debug_Print 1 "FileOut = ${DirOut}/${FileOut}.nc" 436 437 #IGCM_debug_Print 1 "FileIn = ${DirIn}/${FileIn}"438 453 439 454 IGCM_sys_TestFileArchive ${DirOut}/${FileOut}.nc … … 442 457 443 458 # * Look for the restart file we apply the noise to 459 460 # restart file list pertaining to the component we apply the noise to 461 # but not being the precise restart file we will apply the noise to 462 unset OtherFileInList 463 # generic restart filename list (like flxat, sstoc, restart, ...) 464 unset OtherGenericList 465 466 if ( [ X${FileName0} != X${NULL_STR} ] && [ X${FileName0} != XNONE ] ) ; then 467 (( i=0 )) 468 until [ $i -ge ${NbFiles} ]; do 469 470 (( i_ = i+1 )) 471 eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 472 eval file_out=${file_out_} 473 474 generic_restart_file_name_out=$( basename ${file_out} .nc ) 475 476 if [ ! ${generic_restart_file_name_out} = ${PerturbFile} ] ; then 477 set +A OtherFileInList ${OtherFileInList[*]} ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic_restart_file_name_out}\*.nc 478 set +A OtherGenericList ${OtherGenericList[*]} ${generic_restart_file_name_out} 479 fi 480 481 (( i=i+3 )) 482 done 483 fi 484 # How many restart files other than the one we will apply the noise to 485 NbOtherFiles=${#OtherGenericList[*]} 444 486 445 487 ########################## … … 464 506 Archived=false 465 507 Tared=true 508 466 509 # Look for the tar file we want if we did not found it already 467 #if [ X${IsMatching} = X ] ; then 468 for PotentialTarFile in $( find ${ensemble_Ens_PERTURB_INITPATH}/${ensemble_Ens_PERTURB_INITFROM}/RESTART -name "${ensemble_Ens_PERTURB_INITFROM}_*_restart.tar" -print ) ; do 469 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}}' ) 470 if [ ! X${IsMatching} = X ] ; then 471 TarFileFound=${PotentialTarFile} 472 break 473 fi 474 done 475 #fi 476 # already specialized for CPL sstoc and flxat! 477 IGCM_debug_Print 1 "tar xvf ${TarFileFound} ${PerturbComp}_${FileIn}*.nc ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc" 478 tar xvf ${TarFileFound} ${PerturbComp}_${FileIn}*.nc ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc 510 for PotentialTarFile in $( find ${ensemble_Ens_PERTURB_INITPATH}/${ensemble_Ens_PERTURB_INITFROM}/RESTART -name "${ensemble_Ens_PERTURB_INITFROM}_*_restart.tar" -print ) ; do 511 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}}' ) 512 if [ ! X${IsMatching} = X ] ; then 513 TarFileFound=${PotentialTarFile} 514 break 515 fi 516 done 517 518 # Extract relevant restart files 519 IGCM_debug_Print 1 "tar xvf ${TarFileFound} ${PerturbComp}_${FileIn}*.nc ${OtherFileInList[*]}" 520 tar xvf ${TarFileFound} ${PerturbComp}_${FileIn}*.nc ${OtherFileInList[*]} 479 521 nb_restart_file=$( IGCM_sys_CountFileBuffer ${PerturbComp}_${FileIn}_????.nc ) 480 522 fi 481 523 524 # Move around and perturb restart files so as to be able to start hindcast/forecast simulation members 482 525 if [ ${nb_restart_file} -gt 1 ] ; then 483 526 j=0 484 until [ $j -ge $ nb_restart_file]; do527 until [ $j -ge ${nb_restart_file} ]; do 485 528 j4=${j} 486 529 if [ X${Buffered} = Xtrue ] ; then 487 530 IGCM_sys_GetBuffer ${DirIn}/${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc 531 532 cd ${DirOut} 533 for generic in ${OtherGenericList[*]} ; do 534 ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${MemberDir}_${RestartDate}_${generic}_${j4}.nc 535 done 536 cd - 537 488 538 elif [ X${Archived} = Xtrue ] ; then 489 539 IGCM_sys_Get ${DirIn}/${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc 540 541 for generic in ${OtherGenericList[*]} ; do 542 IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${MemberDir}_${RestartDate}_${generic}_${j4}.nc" 543 done 544 490 545 elif [ X${Tared} = Xtrue ] ; then 491 546 IGCM_sys_Mv ${PerturbComp}_${FileIn}_${j4}.nc ${RUN_DIR}/${FileOut}_${j4}.nc 547 548 for generic in ${OtherGenericList[*]} ; do 549 IGCM_sys_Mv ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${DirOut}/${MemberDir}_${RestartDate}_${generic}_${j4}.nc 550 done 551 492 552 fi 493 553 (( j=j+1 )) … … 496 556 if [ X${Buffered} = Xtrue ] ; then 497 557 IGCM_sys_GetBuffer ${DirIn}/${FileIn}.nc ${RUN_DIR}/${FileOut}.nc 498 # already specialized for CPL sstoc and flxat! 499 IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc ${MemberDir}_${RestartDate}_flxat.nc" 558 559 cd ${DirOut} 560 for generic in ${OtherGenericList[*]} ; do 561 ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${MemberDir}_${RestartDate}_${generic}.nc 562 done 563 cd - 564 500 565 elif [ X${Archived} = Xtrue ] ; then 501 566 IGCM_sys_Get ${DirIn}/${FileIn}.nc ${RUN_DIR}/${FileOut}.nc 502 # already specialized for CPL sstoc and flxat! 503 IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc ${MemberDir}_${RestartDate}_flxat.nc" 567 568 for generic in ${OtherGenericList[*]} ; do 569 IGCM_sys_RshArchive "cd ${DirOut} ; ln -s ${DirIn}/${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${MemberDir}_${RestartDate}_${generic}.nc" 570 done 571 504 572 elif [ X${Tared} = Xtrue ] ; then 505 573 IGCM_sys_Mv ${PerturbComp}_${FileIn}.nc ${RUN_DIR}/${FileOut}.nc 506 # already specialized for CPL sstoc and flxat! 507 IGCM_sys_Mv ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_flxat.nc ${DirOut}/${MemberDir}_${RestartDate}_flxat.nc 574 575 for generic in ${OtherGenericList[*]} ; do 576 IGCM_sys_Mv ${PerturbComp}_${ensemble_Ens_PERTURB_INITFROM}_${RestartDate}_${generic}.nc ${DirOut}/${MemberDir}_${RestartDate}_${generic}.nc 577 done 578 508 579 fi 509 580 fi
Note: See TracChangeset
for help on using the changeset viewer.