#!/bin/bash

#
# verbParallelJobsExecutionParam.sh
#
#   memorizza nel file di output per la modalita' verbose, se attiva,
#   il valore dei parametri specificati per l'esecuzione parallela dei job
#

# 
# Parametri
#
# <verbose>
#   i valori ammessi per il parametro sono 0 o 1.
#   Se 1 attiva la modalita' verbose di esecuzione dello script
# <callingScript>
#   nome dello script chiamante
# <macroFileAbsolutePath>
#   path assoluto del file di macro a partire dal quale vengono generati
#   quelli per le simulazioni eseguite dai singoli job
# <workingDirectoryRelativePath>
#   path relativo alla directory g4cParallelSimulation di quella
#   di lavoro che contiene le subdirectory assegnate ai job che
#   realizzano la simulazione, il file con le informazioni relative
#   ai loro istanti di sottomissione e di completamento e il file di
#   output per la modalita' verbose
# <simulationExecutableAbsolutePath>
#   path assoluto dell'eseguibile da assegnare ad ogni job
#   della simulazione parallela
# <jobsTimeOut>
#   numero di secondi dall'inizio della sua esecuzione trascorso il quale un job
#   viene interrotto. Se 0 inibisce il time out
# <parallelJobsPerHost>
#   numero dei job eseguiti in parallelo su ognuno degli host impegnati nella
#   simulazione. Non deve essere maggiore del minimo numero di core riservati
#   alla simulazione su ogni host 
# <hostsList>
#   elenco dei nomi degli host impegnati nella simulazione, separati da
#   virgola e senza blank.
# <jobRuntimeFileName>
#   nome del file, nella directory assegnata ad ogni job, nel
#   quale vengono memorizzati i suoi istanti di sottomissione
#   e di completamento
# <geant4EnvVariablesSetUp>
#   path assoluto dello script che setta le variabili di ambiente
#   di Geant4 per la simulazione
# <tspQueuesPositioning>
#   variabile simbolica che, definendo il posizionamento del file
#   di per la coda di task gestita da tsp 
#   (task spooler), ne permette l'accesso all'host che la
#   utilizza per gestire l'esecuzione parallela dei job.
#   Al file in questione, memorizzato su ogni host nella directory
#   "\tmp", è assegnato il nome della working directory seguito
#   dal suffisso ".tmp"
# <verbOutputFileRelativePath>
#   path relativo alla directory g4cParallelSimulation del file
#   di output per la modalita' verbose
#

# Estrae i parametri dello script dalla sua chiamata
verbose=$1
callingScript=$2
macroFileAbsolutePath=$3
workingDirectoryRelativePath=$4
simulationExecutableAbsolutePath=$5
jobsTimeOut=$6
parallelJobsPerHost=$7
hostsList=$8
jobRuntimeFileName=$9
geant4EnvVariablesSetUp=${10}
tspQueuesPositioning=${11}
verbOutputFileRelativePath=${12}

# Esce se la modalita' verbose non e' attiva
if test $verbose -eq 0
then
   exit 0
fi

# Memorizza nel file di output per la modalita' verbose
# il valore dei parametri specificati per l'esecuzione
# parallela dei job
cat <<  EOF >> $verbOutputFileRelativePath
Valore dei parametri
-
<macroFileAbsolutePath>: $macroFileAbsolutePath
<workingDirectoryRelativePath>: $workingDirectoryRelativePath
<simulationExecutableAbsolutePath>: $simulationExecutableAbsolutePath
<jobsTimeout>: $jobsTimeOut
<parallelJobsPerHost>: $parallelJobsPerHost
<hostsList>: $hostsList
<jobRuntimeFileName>: $jobRuntimeFileName
<geant4EnvVariablesSetUp>: $geant4EnvVariablesSetUp
<tspQueuesPositioning>: $tspQueuesPositioning>
<verbOutputFileRelativePath>: $verbOutputFileRelativePath
	   
EOF

exit 0

