Changeset 565 for trunk/libIGCM/AA_pack_restart
- Timestamp:
- 02/29/12 15:41:53 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/AA_pack_restart
r554 r565 266 266 #### Preparation de l'environnement 267 267 # repertoire dans lequel seront crees les archives 268 #STORE_RESTART=/scratch/cont003/p86denv/Pack_Test/RESTART 268 269 STORE_RESTART=${R_SAVE}/RESTART 269 270 IGCM_sys_MkdirArchive ${STORE_RESTART} 270 271 #STORE_RESTART=/scratch/cont003/p86denv/Pack_Test/RESTART272 #mkdir -p ${STORE_RESTART}273 271 274 272 # Switch to script variables meaning (try to be compatible with ipsl_pack TGCC moving procedure) … … 289 287 # Create sorted restart list to work with 290 288 find ${PATH_SIMUL}/*/Restart -name "*nc" | sort >> ${RUN_DIR}/liste_restart_files.txt 291 #sort ${RUN_DIR}/liste_restart_files.txt > ${RUN_DIR}/tmp.txt 292 #mv ${RUN_DIR}/tmp.txt ${RUN_DIR}/liste_restart_files.txt 293 294 ###cat ${RUN_DIR}/liste_restart_files.txt | xargs dmget 295 296 # Rename restart files we will work with 289 290 # Rename restart files we will work with using symlinks 297 291 #gawk -F/ '{dest_name=$(NF-2)("_") $(NF); system("cp --preserve " $0 " "dest_name)}' ${RUN_DIR}/liste_restart_files.txt 298 292 gawk -F/ '{dest_name=$(NF-2)("_") $(NF); system("ln -s " $0 " "dest_name)}' ${RUN_DIR}/liste_restart_files.txt 299 293 300 294 # List renamed restart files 301 ls -l ${RUN_DIR}/*.nc > ${RUN_DIR}/new_liste_restart_files.txt 302 303 ### 2- creer les listes de fichiers par periode #### 304 ###Â 2.1- dechiffrer PeriodPack et le separer en year et month ### 305 case ${PeriodPack} in 306 *Y|*y) 307 periodpackinyear=$( echo ${PeriodPack} | sed -e 's/[yY]//' ) 308 periodpackinmonth=0 309 ;; 310 311 *M|*m) 312 periodpackinyear=0 313 periodpackinmonth=$( echo ${PeriodPack} | sed -e 's/[mM]//' ) 314 ;; 315 316 *) 317 echo "PeriodPack doit etre en mois ou annees" 318 IGCM_debug_Exit "period pack unit" 319 ;; 320 321 esac 322 323 ### 2.2- extraire l'annee et le mois de DateBegin ### 324 date_begin=${DateBegin} 325 date_end=${DateEnd} 326 327 IGCM_date_GetYearMonth ${date_begin} year_begin month_begin 328 IGCM_date_GetYearMonth ${date_end} year_end month_end 295 find ${RUN_DIR} -name "*.nc" -ls | sort -k 11 > ${RUN_DIR}/new_liste_restart_files.txt 329 296 330 297 # ------------------------------------------------------------------ … … 333 300 IGCM_debug_Verif_Exit_Post 334 301 335 ### 2.3- creation des listes ### 336 date_begin_pack=${date_begin} 337 month_begin_pack=${month_begin} 338 year_begin_pack=${year_begin} 339 340 date_end_simulation=${date_end} 341 302 # Init loop 303 date_begin_pack=${DateBegin} 304 date_end_simulation=${DateEnd} 342 305 number_pack=1 343 306 … … 349 312 IGCM_debug_PrintVariables 3 number_pack 350 313 351 (( month_end_pack = month_begin_pack + periodpackinmonth )) 352 (( add_year = ${month_end_pack} / 13 )) 353 if [ ${month_end_pack} -ge 13 ] ; then 354 (( month_end_pack = ${month_end_pack} % 12 )) 355 fi 356 357 (( year_end_pack = year_begin_pack + periodpackinyear + add_year )) 358 359 date_end_pack=${year_end_pack}$( printf "%02i\n" ${month_end_pack} )01 360 361 for file in $( gawk '{print $9}' ${RUN_DIR}/new_liste_restart_files.txt ); do 314 DaysTemp=$( IGCM_date_DaysInNextPeriod ${date_begin_pack} ${PeriodPack} ) 315 date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} ${DaysTemp} ) 316 317 for file in $( gawk '{print $11}' ${RUN_DIR}/new_liste_restart_files.txt ); do 362 318 extract_date_file=$( echo ${file} | sed -e "s/.*${JobName}_//" ) 363 319 date_file=$( echo ${extract_date_file} | sed 's/\([0-9]\{8\}\)_.*$/\1/g' ) … … 365 321 if [ ${date_file} -lt ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then 366 322 echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${number_pack}.txt 323 echo $( ls -L ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 324 367 325 # Will not work. Need to find a better ordering. 368 326 # elif [ ${date_file} -ge ${date_end_pack} ] ; then … … 371 329 done 372 330 373 month_begin_pack=${month_end_pack} 374 year_begin_pack=${year_end_pack} 375 date_begin_pack=${year_begin_pack}$( printf "%02i\n" ${month_begin_pack} )01 376 377 # Here we create tar files directly in $STORE. Avoid to create then to copy. 378 tar -cvf ${STORE_RESTART}/${JobName}_${year_begin_pack}_${year_end_pack}_restart.tar --dereference --files-from ${RUN_DIR}/liste_pack_${number_pack}.txt 379 cat ${RUN_DIR}/liste_pack_${number_pack}.txt | xargs rm 331 # Create tar files 332 IGCM_debug_Print 1 "Tar ongoing" 333 tar -cvf ${JobName}_${date_begin_pack}_${date_end_pack}_restart.tar --dereference --files-from ${RUN_DIR}/liste_pack_${number_pack}.txt 334 # Save it 335 IGCM_sys_Put_Out ${JobName}_${date_begin_pack}_${date_end_pack}_restart.tar ${STORE_RESTART} 336 # Clean it 337 IGCM_sys_Rm ${JobName}_${date_begin_pack}_${date_end_pack}_restart.tar 338 # Clean links 339 cat ${RUN_DIR}/liste_pack_${number_pack}.txt | xargs rm 340 # Clean files links pointed to 341 cat ${RUN_DIR}/liste_remove_pack_${number_pack}.txt | xargs rm 342 # Save the list of files that has been pack (tar) 380 343 mv ${RUN_DIR}/liste_pack_${number_pack}.txt ${STORE_RESTART} 344 IGCM_debug_Print 1 "Tar and cleaning done" 381 345 382 346 (( number_pack = number_pack + 1 )) 383 347 348 # Add 1 day to date_end_pack to have the new date_begin_pack 349 date_begin_pack=$( $( IGCM_date_AddDaysToGregorianDate ${date_end_pack} 1 ) 350 384 351 done
Note: See TracChangeset
for help on using the changeset viewer.