#!/bin/bash
######################
## TITANE   CEA ##
######################
#MSUB -r ipsl_pack      # Nom du job                
#MSUB -eo
#MSUB -n 1              # Reservation du processus
#MSUB -T 86400          # Limite de temps elapsed du job
#MSUB -p gen2211
#MSUB -q mono

# ex : ./launch_ipsl_pack.sh fichier_param_test1.txt liste_fichier_dmnfs
# ex : ./launch_ipsl_pack.sh param_SL.txt SL_information_dmnfs_2012-03-21
# ex : ./launch_ipsl_pack.sh param_OM.txt OM_information_dmnfs_2012-03-21

export JOB_DIR=${LS_SUBCWD:-${PWD}}
export EXE_DIR=${JOB_DIR}

LISTE_SIMUL=${1}

#LISTE_SIMUL=${JOB_DIR}/param_SL.txt 
#LISTE_DMNFS=${JOB_DIR}/SL_information_dmnfs_2012-03-21

# LISTE_SIMUL=${JOB_DIR}/param_OM.txt
# LISTE_DMNFS=${JOB_DIR}/OM_information_dmnfs_2012-03-21

LISTE_SIMUL_NAME=$(basename ${LISTE_SIMUL} )
SCRIPT_NAME=$(basename ${0} )

export IGCM_DEM=${SCRATCHDIR}/IGCM_DEM
export IGCM_TMP=${SCRATCHDIR}/IGCM_DEM/tmp
export clean_tmp=${clean_tmp:-yes}
export DEM_LOG=${JOB_DIR}/dem_${LSB_JOBID:-${$}}.log
export LOG_LEV=2

source ${EXE_DIR}/DEM_utilities.sh

DEM_log -0 "Demarrage de ${SCRIPT_NAME}"

mkdir -p ${IGCM_DEM}
mkdir -p ${IGCM_TMP}

rm -rf ${IGCM_TMP}/tmp/*
rm -f ${DEM_LOG}

# 0- on cree le listing correspondant au fichier param 
# on efface les tests precedents
rm -f ${IGCM_DEM}/Listing.txt
for DIR in $( awk '{print $0}' ${LISTE_SIMUL} ) ; do 
    ./create_listing.sh $DIR
done

LISTE_DMNFS=${IGCM_DEM}/Listing.txt

# 1- A partir de param_list - on recherche l'ensemble des simulations a packer
# la liste creee (liste_simul_$1) est stockee dans $SCRATCHDIR/IGCM_DEM

${EXE_DIR}/find_directory_simul.sh ${LISTE_SIMUL} ${LISTE_DMNFS}

# 2- Pour chacune des simulations listees on cree un fichier config.card correspondant
# ces fichiers seront stockes dans ${IGCM_DEM}/arborescence/
# un fichier recapitulatif des fichiers config.card (config_card.liste) crees sera stocke dans ${IGCM_DEM}

${EXE_DIR}/create_config_card.sh ${IGCM_DEM}/liste_simul_${LISTE_SIMUL_NAME}  ${LISTE_DMNFS}

#3- recherche de la taille ideale de pack pour chacune des simulations - puis creation des listes

for CONFIG in $( awk '{print $1}' ${IGCM_DEM}/config_card.liste ) ; do 
    
    DEM_log -2 ${CONFIG}

    eval $(grep IGCM_DEM_SIMU ${CONFIG})
    ${EXE_DIR}/calcul_size_simul.sh ${CONFIG} ${LISTE_DMNFS}

    DEM_state=$( DEM_read_state ${IGCM_DEM}/config_card.liste ${CONFIG} )
    if [[ "${DEM_state}" != "WriteListTarDone" ]] ; then

	DEM_log -3  "la simulation est superieur a 1Go alors on pack"
	${EXE_DIR}/find_size_pack.sh   ${CONFIG} ${LISTE_DMNFS}
	${EXE_DIR}/write_liste_pack.sh ${CONFIG} ${LISTE_DMNFS}
#	${EXE_DIR}/archive_restart.sh ${CONFIG} ${LISTE_DMNFS}

    fi
done

DEM_log -0 "Fin de ${SCRIPT_NAME}"
