+ SCRIPT_PID=76947 + set +x + /bin/ksh -x /tmp/jobstart.76928 date + date Thu Jul 26 11:03:51 CEST 2018 #D- Task type DO NOT CHANGE (computing, post-processing or checking) TaskType=post-processing + TaskType=post-processing ######################################################################## #D- Flag to determine if this job in a standalone mode #D- Default : value from AA_job if any StandAlone=${StandAlone:=true} + StandAlone=true #D- Path to libIGCM #D- Default : value from AA_job if any libIGCM=${libIGCM:=/ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM} + libIGCM=/ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM #D- Flag to determine allready produced time series. Empty if you start from the beginning #D- Default : Value from AA_job if any. Usefull in StandAlone case if you want to continue a time series CompletedFlag=${CompletedFlag:=} + CompletedFlag='' #D- Flag to determine task type this script will perform. #D- Possible Value : 2D, 3D, Chunck2D, Chunck3D #D- Default : Value from AA_job if any. Usefull in StandAlone case. TsTask=${TsTask:=2D} + TsTask=3D if [ X${TsTask} = Xempty ] ; then TsTask="" fi + [ X3D '=' Xempty ] #D- Flag to determine if rebuild process has been performed asynchronously #D- Possible value true or false. #D- If true raw files has allready been patched by rebuild job #D- If false create_ts will patch the raw files #D- Default : Value from AA_job if any. Usefull in StandAlone case. RebuildFrequency=${RebuildFrequency:=true} + RebuildFrequency=true #D- Flag to determine job's output directory #D- Default : value from libIGCM_post.ksh if any POST_DIR=${POST_DIR:=${PBS_O_WORKDIR:=$(pwd)}} + POST_DIR=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript #D- Increased verbosity (1, 2, 3) #D- Default : value from AA_job if any Verbosity=${Verbosity:=3} + Verbosity=3 #D- Low level debug : to bypass lib test checks and stack construction #D- Default : value from AA_job if any DEBUG_debug=${DEBUG_debug:=false} + DEBUG_debug=false #D- TEMPORARY Flag to determine atmospheric resolution #D- Default : value from atmospheric driver if any RESOL_ATM=ALL + RESOL_ATM=ALL #D- Flag to determine surface resolution #D- Default : value from surface driver if any RESOL_SRF=ALL + RESOL_SRF=ALL #D- Flag to determine surface resolution #D- Default : value from surface driver if any RESOL_SBG=ALL + RESOL_SBG=ALL #D- TEMPORARY Flag to determine ocean resolution #D- Default : value from ocean driver if any RESOL_OCE=${RESOL_OCE:=ORCA2} + RESOL_OCE=ORCA2 #D- TEMPORARY Flag to determine ice resolution #D- Default : value from ice driver if any RESOL_ICE=${RESOL_OCE:=ORCA2} + RESOL_ICE=ORCA2 #D- TEMPORARY Flag to determine marine biogeochemistry resolution #D- Default : value from ice driver if any RESOL_MBG=${RESOL_OCE:=ORCA2} + RESOL_MBG=ORCA2 ######################################################################## . ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh + . /ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM/libIGCM_debug/libIGCM_debug.ksh #!/bin/ksh #************************************************************** # Author: Patrick Brockmann, Martial Mancip # Contact: Patrick.Brockmann__at__cea.fr Martial.Mancip__at__ipsl.jussieu.fr # $Revision:: 1418 $ Revision of last commit # $Author:: sdipsl $ Author of last commit # $Date:: 2017-12-19 10:21:41 +0100 (Tue, 19 Dec 2017) $ Date of last commit # IPSL (2006) # This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC # #************************************************************** #================================================== # The documentation of this file can be automatically generated # if you use the prefix #D- for comments to be extracted. # Extract with command: cat lib* | grep "^#D-" | cut -c "4-" #================================================== #================================================== # Add high level verbosity typeset -i Verbosity=${Verbosity:=3} #================================================== # DEBUG_debug # Add low level verbosity DEBUG_debug=${DEBUG_debug:=false} #D- postProcessingStopLevel (0,1,2,3) #D- 3 stop if any post-processing went wrong #D- 2 dont stop if atlas, monitoring or metrics failed #D- 1 dont stop if atlas, monitoring, metrics, create_ts or create_se failed #D- 0 dont stop if atlas, monitoring, metrics, create_ts, create_se, rebuild or pack_* failed postProcessingStopLevel=${postProcessingStopLevel:=0} #================================================== # GENERATE RANDOM ERROR ; only apply if ( ${DEBUG_debug} ) typeset -r RandomError=false #================================================== # NULL_STR # Default null string typeset -r NULL_STR="_0_" #================================================== # libIGCM_CurrentTag # Current libIGCM tag, check compatibilty with *.card typeset -r libIGCMVersion="2.8.3" #================================================== # Exit Flag (internal debug) # When true, end the master loop AFTER SAVES FILES ExitFlag=false #================================================== # When we start to run the simulation is not finished simulationIsOver=false #================================================== # When we start to run we dont flush AMQP messages FlushAMQP=false #================================================== # Declare a stack of functions calls unset IGCM_debug_Stack unset IGCM_debug_StackArgs unset IGCM_debug_StackTiming IGCM_debug_Stack[0]=${NULL_STR} IGCM_debug_StackArgs[0]=${NULL_STR} IGCM_debug_StackTiming[0]=${NULL_STR} IGCM_debug_LenStack=0 #D-#================================================================== #D-function IGCM_debug_getDate_ms #D- * Purpose: Give number of milliseconds since 01-jan-1970 function IGCM_debug_getDate_ms { typeset nanosecs ms # nano secondes since 01-jan-1970 nanosecs=$( date +%s%N ) # truncate the last 6 digits to get milliseconds since 01-jan-1970 ms=${nanosecs:0:${#nanosecs}-6} echo "$ms" } #D-#================================================================== #D-function IGCM_debug_sizeOfTabContent #D- * Purpose: Give sumed size of a list of files #D- * Usage: IGCM_debug_sizeOfTabContent entityList destination #D- * where entityList is a list of files or directory #D- * where dest is either a directory or a file name function IGCM_debug_sizeOfTabContent { typeset entityListe destination iEntity sizeKo sumSizeKo sumSizeMo eval set +A entityListe \${${1}} destination=${2} sumSizeKo=0 # Here we will try to compute size (file or directory size) from local path and not from archive. for ((i = 0; i < ${#entityListe[*]}; i += 1)) ; do if [ -f ${entityListe[$i]} ] ; then # One file or a bunch of files has been copied without renaming from a visible filesystem iEntity=${entityListe[$i]} elif [ -f ${entityListe[$i]##/*/} ] ; then # One file or a bunch of files has been copied without renaming from an non visible filesystem # remove path /home/login/../ from entityListe elements iEntity=${entityListe[$i]##/*/} elif [ -f ${destination} ] ; then # a file has been copied and renamed iEntity=${destination} elif [ -f ${destination}/${entityListe[$i]##/*/} ] ; then # a copy in a directory but not in ${PWD} iEntity=${destination}/${entityListe[$i]##/*/} elif [ -d ${entityListe[$i]} ] ; then # a directory has been copied from a non remote place iEntity=${entityListe[$i]} elif [ -d ${destination}/${entityListe[$i]##/*/} ] ; then # a directory has been copied from a remote archive and not renamed iEntity=${destination}/${entityListe[$i]##/*/} elif [ -d ${destination} ] ; then # a directory has been copied from a remote archive and renamed iEntity=${destination} fi sizeKo=$( du --apparent-size -skL ${iEntity} | gawk '{print $1}' ) sumSizeKo=$(( $sumSizeKo + $sizeKo )) done sumSizeMo=$( echo "scale=6;${sumSizeKo}/1024" | bc ) echo "${sumSizeKo}|${sumSizeMo}" } #D-#================================================================== #D-function IGCM_debug_send_AMQP_msg__MAILTUNNEL #D- * Purpose: Take over AMQP C client using mail as a message recipient #D- * One argument : base64 encoded message #D- * Attach encoded config.card when starting the simulation function IGCM_debug_send_AMQP_msg__MAILTUNNEL { typeset b64_encoded_msg mail_recipient typeset buffer send_messages mail_frequency typeset last_mail_date__file typeset secondsBetweenRefAndLastMail secondsSinceLastMail b64_encoded_msg=$1 mail_recipient="superviseur@mail.ipsl.upmc.fr" send_messages=0 mail_frequency=3600 # in seconds # use to keep track when was last mail sent (maybe to be replaced with global variable) last_mail_date__file=${R_BUF}/.stamp.${config_UserChoices_TagName}.${config_UserChoices_JobName} # use to accumulate messages before sending them buffer=${R_BUF}/.buffer.${config_UserChoices_TagName}.${config_UserChoices_JobName} # init if [ ! -f "${buffer}" ]; then touch ${buffer} fi if [ ! -f "${last_mail_date__file}" ]; then touch ${last_mail_date__file} else # compute last time the file was changed (in seconds) secondsBetweenRefAndLastMail=$(stat -c %Y ${last_mail_date__file}) status=$? # # Only execute this block when the stat command succeeded. # The stat command might fail in some circumstance but we consider it is ok to continue anyway. if [ ${status} -eq 0 ] ; then secondsSinceLastMail=$(( $(date +%s) - ${secondsBetweenRefAndLastMail} )) # send message when exceeding threshold [ ${secondsSinceLastMail} -gt ${mail_frequency} ] && send_messages=1 fi fi # queue messages in the buffer echo ${b64_encoded_msg} >> ${buffer} # send mail if [ X${initBigBro} = Xtrue ] ; then #echo $(date +"%Y-%m-%dT%H:%M:%S.%N%z") > ${SUBMIT_DIR}/mail.txt mailx -s "[TEMPORARY AMQP CHANNEL]" -a ${SUBMIT_DIR}/config.card.base64 ${mail_recipient} < ${buffer} # send buffer rm -f $buffer ; touch ${buffer} # clear buffer touch ${last_mail_date__file} # memorize last mail date rm -f ${SUBMIT_DIR}/config.card.base64 # remove temporary file initBigBro=false elif [ ${send_messages} -eq 1 ] ; then #echo $(date +"%Y-%m-%dT%H:%M:%S.%N%z") >> ${SUBMIT_DIR}/mail.txt mailx -s "[TEMPORARY AMQP CHANNEL]" ${mail_recipient} < ${buffer} # send buffer rm -f ${buffer} ; touch ${buffer} # flush the buffer touch ${last_mail_date__file} # memorize last mail date fi if ( ${FlushAMQP} ) ; then mailx -s "[TEMPORARY AMQP CHANNEL]" ${mail_recipient} < ${buffer} # send buffer rm -f ${buffer} # cleaning behind us rm -f ${last_mail_date__file} # cleaning behind us fi # Allways all good for now. return 0 } #D-#================================================================== #D-function IGCM_debug_sendAMQP_Purge #D- * Purpose: Take over AMQP C client using mail as a message recipient #D- * No argument : send a message indicating a simulation has been purged function IGCM_debug_sendAMQP_Purge { typeset mail_recipient encodedBody if [ X${ActivateBigBro} = Xtrue ] ; then mail_recipient="superviseur@mail.ipsl.upmc.fr" # Clea nup tag on server side code=8888 # Usual AMQP message to route messages on server side encodedBody=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" | base64 -w 0 ) # send mail IGCM_debug_Print 2 "IGCM_debug_sendAMQP_Purge" echo ${encodedBody}|mailx -s "[TEMPORARY AMQP CHANNEL]" ${mail_recipient} fi # Allways all good for now. return 0 } #D-#================================================================== #D-function IGCM_debug_sendAMQP_Metrics #D- * Purpose: Take over AMQP C client using mail as a message recipient #D- * Two arguments : - Directory where metrics.json files can be found #D- * - Metrics Group Name. metrics will be added to this group #D- * Attach encoded metrics.json files. function IGCM_debug_sendAMQP_Metrics { typeset mail_recipient encodedBody if [ X${ActivateBigBro} = Xtrue ] ; then mail_recipient="superviseur@mail.ipsl.upmc.fr" # Metrics tag on server side code=7100 # Usual AMQP message to route messages on server side encodedBody=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"metricsGroupName\":\"${2}\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" | base64 -w 0 ) # send mail attachmentsOptions="" for metricsFile in $( ls $1/*json ) ; do attachmentsOptions="-a ${metricsFile} ${attachmentsOptions}" done IGCM_debug_Print 2 "IGCM_debug_sendAMQP_Metrics" echo ${encodedBody}|mailx -s "[TEMPORARY AMQP CHANNEL]" ${attachmentsOptions} ${mail_recipient} fi # Allways all good for now. return 0 } #D-#================================================================== #D-function IGCM_debug_sendAMQP_projectAccounting #D- * Purpose: Take over AMQP C client using mail as a message recipient #D- * One argument : - File name where project accounting details are stored #D- * Attach encoded accounting file. function IGCM_debug_sendAMQP_projectAccounting { typeset mail_recipient encodedBody if [ X${ActivateBigBro} = Xtrue ] ; then mail_recipient="superviseur@mail.ipsl.upmc.fr" # Metrics tag on server side code=7010 # Usual AMQP message to route messages on server side encodedBody=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"accountingProject\":\"${PROJECT}\",\"centre\":\"${CENTER}\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" | base64 -w 0 ) # send mail attachmentsOptions="-a ${1}" IGCM_debug_Print 2 "IGCM_debug_sendAMQP_projectAccounting" echo ${encodedBody}|mailx -s "[TEMPORARY AMQP CHANNEL]" ${attachmentsOptions} ${mail_recipient} # clean behind rm -f $1 fi # Allways all good for now. return 0 } #D-#================================================================== #D-function IGCM_debug_SendAMQP #D- * Purpose: Send body; encoded body and config.card to rabbitMQ function IGCM_debug_sendAMQP { typeset decal first additionnalOption encodedBody # Encode message Body encodedBody=$( echo "${Body}" | base64 -w 0 ) # Send config.card ? if [ X${1} = Xactivate ] ; then # Encode config.card cat ${SUBMIT_DIR}/config.card | base64 -w 0 > ${SUBMIT_DIR}/config.card.base64 # Prepare additionnal option additionnalOption="-f ${SUBMIT_DIR}/config.card.base64" # initBigBro=true else additionnalOption= # initBigBro=false fi # Only cosmetics : stack file if [ X${ActivateStackFilling} = Xtrue ] ; then decal=0 while [ ${decal} -lt ${IGCM_debug_LenStack} ]; do printf ' ' >> ${StackFileLocation}/${StackFileName} (( decal = decal + 1 )) done # Log to stack file using human readable format echo "${Body}" >> ${StackFileLocation}/${StackFileName} fi # Log separately encoded AMQP message command for reuse in a mock up #echo sendAMQPMsg -h localhost -p 5672 ${additionnalOption} -b ${encodedBody} >> ${RUN_DIR_PATH}/send.AMQP.${config_UserChoices_JobName}.${config_UserChoices_ExperimentName}.${config_UserChoices_SpaceName}.${config_UserChoices_TagName}.${CumulPeriod}.history.txt # Send the message if [ X${BigBrotherChannel} = XMAIL ] ; then IGCM_debug_send_AMQP_msg__MAILTUNNEL "${encodedBody}" status=$? else sendAMQPMsg -h localhost -p 5672 ${additionnalOption} -b ${encodedBody} status=$? fi if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_debug_Push/PopStack/ActivateBigBro : command sendAMQPMsg failed error code ${status}" echo sendAMQPMsg -h localhost -p 5672 -b "${Body}" exit 1 fi } #D-#================================================================== #D-function IGCM_debug_CallStack #D-* Purpose: Print the call stack tree from the oldest to the youngest (opposite of the display standard) #D- function IGCM_debug_CallStack { if ( $DEBUG_debug ) ; then # Cosmetics typeset i decal i=0 until [ $i -eq ${IGCM_debug_LenStack} ]; do decal=0 until [ $decal -eq ${i} ]; do printf -- ' ' (( decal = decal + 1 )) done echo "$i - ${IGCM_debug_Stack[$(( $IGCM_debug_LenStack-$i-1 ))]}" "(${IGCM_debug_StackArgs[$(( $IGCM_debug_LenStack-$i-1 ))]})" ((i = i + 1)) done fi } #D-#================================================================== #D-function IGCM_debug_PushStack #D-* Purpose: Push a function name in the stack #D- function IGCM_debug_PushStack { if ( $DEBUG_debug ) ; then typeset decal inputs startTime_ms # Only cosmetics : stack file if [ X${ActivateStackFilling} = Xtrue ] ; then echo >> ${StackFileLocation}/${StackFileName} decal=0 while [ ${decal} -lt ${IGCM_debug_LenStack} ]; do printf ' ' >> ${StackFileLocation}/${StackFileName} (( decal = decal + 1 )) done # Fill the stack file echo "> ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/${StackFileName} fi # Save input list in an indexed array INPUTS=( $@ ) # Get timing information startTime_ms=$( IGCM_debug_getDate_ms ) # We add function call name on beginning of the stack set +A IGCM_debug_Stack -- ${1} ${IGCM_debug_Stack[*]} # Save timing in milliseconds in an indexed array set +A IGCM_debug_StackTiming -- ${startTime_ms} ${IGCM_debug_StackTiming[*]} # We include the "null" Args in the beginning of the StackArgs set +A IGCM_debug_StackArgs ${NULL_STR} ${IGCM_debug_StackArgs[*]} # Then, we shift StackArgs tabular # Replacing blank separated list by comma separated list of quoted elements (except the first and last element) if [ $# -gt 1 ]; then IGCM_debug_StackArgs[0]=$(echo ${INPUTS[*]:1} | sed -e "s/\ /\",\"/g" ) fi # Increment LenStack (( IGCM_debug_LenStack = IGCM_debug_LenStack + 1 )) #IGCM_debug_CallStack fi } #D-#================================================================== #D-function IGCM_debug_PopStack #D-* Purpose: Pop a function name in the stack #D- function IGCM_debug_PopStack { if ( $DEBUG_debug ) ; then typeset i decal command arguments startTime_ms endTime_ms typeset instrumentation dest prefix # they are not typeset because they are send "by adress" to son functions # we unset them to avoid "memory effect" unset fileList source # INTRODUCE SIMPLE ERROR GENERATOR TO TEST SUPERVISOR # PROBABILITY ERROR IS 0.0001 PER COMMAND OR FUNCTION CALL # THERE ARE ~500 COMMAND OR FUNCTION CALL PER PERIOD # ONLY WHEN TaskType is "computing". if [ X${ActivateBigBro} = Xtrue ] ; then if [ X${TaskType} = Xcomputing ]; then if ( ${RandomError} ) ; then if [ $((RANDOM%10000)) -le 10 ] ; then IGCM_debug_Print 1 "Random error has been triggered" if [ X${ActivateStackFilling} = Xtrue ] ; then echo "RANDOM ERROR" >> ${StackFileLocation}/${StackFileName} fi ExitFlag=true fi fi fi fi if [ "${IGCM_debug_Stack[0]}" = "${1}" ]; then # Everything is cool # Get timing information endTime_ms=$( IGCM_debug_getDate_ms ) # Save Stack information before poping the stack command=${IGCM_debug_Stack[0]} # Go from comma separated list of quoted elements (except the first and the last element) # to unquoted space separated elements in an array set -A arguments -- $( echo ${IGCM_debug_StackArgs[0]} | sed -e "s/\",\"/\ /g" ) # Save Stack information before poping the stack startTime_ms=${IGCM_debug_StackTiming[0]} # Pop the stack (( IGCM_debug_LenStack = IGCM_debug_LenStack - 1 )) set -A IGCM_debug_Stack -- ${IGCM_debug_Stack[*]:1} set -A IGCM_debug_StackArgs -- ${IGCM_debug_StackArgs[*]:1} set -A IGCM_debug_StackTiming -- ${IGCM_debug_StackTiming[*]:1} else echo 'IGCM_debug_Exit : stack is corrupted ! LenStack =' ${IGCM_debug_LenStack} IGCM_debug_Exit $@ fi # Special actions depending on command to prepare IGCM_debug_PrintInfosActions call # We are interested in: # 0. Which command performs the work # 1. Size of entity we are working with # 2. Where are we reading # 3. Where are we writing # 4. How long it took instrumentation=false case ${command} in # Classical copy (only files are given to IGCM_sys_Cp as options) IGCM_sys_Cp) instrumentation=true # All but the latest fileList=${arguments[*]:0:${#arguments[*]}-1} # just need the first file to get the directory source=${arguments[0]} # Nothing but the latest dest=${arguments[${#arguments[*]}-1]} # Size of file whose name are stored in a list entitySize=$( IGCM_debug_sizeOfTabContent fileList ${dest} ) ;; # Copy from archive machine or from buffer IGCM_sys_Get|IGCM_sys_GetBuffer) instrumentation=true if [ ${#arguments[*]} -eq 2 ] ; then source=${arguments[0]} dest=${arguments[1]} # Size of file whose name are stored in a variable entitySize=$( IGCM_debug_sizeOfTabContent source ${dest} ) elif ( [ ${#arguments[*]} -eq 3 ] && [ ${arguments[0]} = '/l' ] ) ; then # IGCM_sys_Get /l liste_file[*] /ccc/scratch/cont003/dsm/p86denv/RUN_DIR/985998_14754/ # Keep the array name hosting the all list eval set +A fileList \${${arguments[1]}} # just need the first file to get the directory source=${fileList[0]} dest=${arguments[2]} # Size of file whose name are stored in a list entitySize=$( IGCM_debug_sizeOfTabContent fileList[*] ${dest} ) elif [ [ ${#arguments[*]} -ge 3 ] ; then # All but the latest fileList=${arguments[*]:0:${#arguments[*]}-1} # just need the first file to get the directory source=${arguments[0]} # Nothing but the latest dest=${arguments[${#arguments[*]}-1]} # Size of file whose name are stored in a list entitySize=$( IGCM_debug_sizeOfTabContent fileList ${dest} ) fi ;; # Copy from compute node or copy to archive/buffer IGCM_sys_Get_Master|IGCM_sys_Get_Dir|IGCM_sys_Put_Out|IGCM_sys_PutBuffer_Out) instrumentation=true source=${arguments[0]} dest=${arguments[1]} # Size of file whose name are stored in a variable entitySize=$( IGCM_debug_sizeOfTabContent source ${dest} ) ;; # Rebuild command IGCM_sys_rebuild|IGCM_sys_rebuild_station) instrumentation=true # All but the first fileList=${arguments[*]:1:${#arguments[*]}-1} # just need a file to get the directory source=${arguments[1]} # Nothing but the first dest=${arguments[0]} # Size of file whose name are stored in a list entitySize=$( IGCM_debug_sizeOfTabContent fileList ${dest} ) ;; # NCO commands IGCM_sys_ncrcat|IGCM_sys_ncecat|IGCM_sys_ncra|IGCM_sys_ncks|IGCM_sys_cdo) # Example of what we want to catch : only filenames in those command lines # IGCM_sys_ncrcat -O -v ${list_var_final_ncrcat} ${OUT_SE[*]} ${RESULT_SE} # IGCM_sys_ncrcat --hst -v ${liste_coord}${var} ${file1} ${liste_file_tmp[*]} ${file_out} # IGCM_sys_ncrcat -p ${dir} ${liste_file_tmp} --output ${output} # IGCM_sys_ncrcat -x -v ${list_var} -p ${dir} ${liste_file_tmp} --output ${output} instrumentation=true keepGoing=true prefix=. i=0 while ( ${keepGoing} ) ; do # the last one is not interesting if [ ${i} -eq ${#arguments[*]}-1 ] ; then keepGoing=false # look after "-p" option. Path prefix is the following arguments elif [ ${arguments[${i}]} = "-p" ] ; then ((i = i + 1)) prefix=${arguments[${i}]} ((i = i + 1)) elif [ ${i} -eq ${#arguments[*]}-1 ] ; then keepGoing=false # looking for files elif [ -f ${prefix}/${arguments[${i}]} ] ; then fileList="${fileList} ${prefix}/${arguments[${i}]}" ((i = i + 1)) # other options are not interesting else ((i = i + 1)) fi done # i value is at least 1 # just need one file to get the directory source=$( echo ${fileList} | gawk '{print $1}' ) # Nothing but the latest dest=${arguments[${#arguments[*]}-1]} # Size of file whose name are stored in a list entitySize=$( IGCM_debug_sizeOfTabContent fileList ${dest} ) ;; esac # Print information related to instrumentation ( ${instrumentation} ) && IGCM_debug_PrintInfosActions ${command} ${entitySize} ${startTime_ms} ${endTime_ms} ${dest} ${source} # Only cosmetics : stack file if [ X${ActivateStackFilling} = Xtrue ] ; then decal=0 while [ ${decal} -lt ${IGCM_debug_LenStack} ]; do printf ' ' >> ${StackFileLocation}/${StackFileName} (( decal = decal + 1 )) done fi if ( ${ExitFlag} ) ; then # Inform the stack file if [ X${ActivateStackFilling} = Xtrue ] ; then echo '!!! ExitFlag has been activated !!!' >> ${StackFileLocation}/${StackFileName} fi # Unplugged message 4900 handling for now. To ease downstream treatment. if [ X${ActivateBigBro} = Xtrue ] ; then if [ X${TaskType} = Xcomputing ]; then # RabbitMQ message code "COMPUTING JOBs COMMAND FAILURE" code=1900 elif [ X${TaskType} = Xpost-processing ]; then # RabbitMQ message code "POST-PROCESSING JOBs COMMAND FAILURE" code=2900 elif [ X${TaskType} = Xchecking ]; then # RabbitMQ message code "POST-PROCESSING FROM CHECKER JOBs COMMAND FAILURE" code=3900 fi # RabbitMQ message body Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"command\":\"${command}\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" ) # Fill the rabbitMQ queue IGCM_debug_sendAMQP fi else # Inform the stack file if [ X${ActivateStackFilling} = Xtrue ] ; then echo "< ${IGCM_debug_LenStack} : ${@}" >> ${StackFileLocation}/${StackFileName} fi fi # Reset array if necessary if [ ${IGCM_debug_LenStack} = 0 ]; then #echo #IGCM_debug_Print 3 "Clean stack array" #echo unset IGCM_debug_Stack unset IGCM_debug_StackArgs unset IGCM_debug_StackTiming IGCM_debug_Stack[0]=${NULL_STR} IGCM_debug_StackArgs[0]=${NULL_STR} IGCM_debug_StackTiming[0]=${NULL_STR} fi fi #IGCM_debug_CallStack } #D-#================================================================== #D-function IGCM_debug_BigBro_Initialize #D-* Purpose: switch rabbitMQ on #D- function IGCM_debug_BigBro_Initialize { IGCM_debug_PushStack "IGCM_debug_BigBro_Initialize" typeset postProcessingIDLength postProcessingName postProcessingDate postProcessingDimn postProcessingComp postProcessingFile accountingFile # Message type standard fields: # https://github.com/Prodiguer/prodiguer-docs/wiki/MQ-Standard-Message-Fields # Message type dictionnary and custom fields: # https://github.com/Prodiguer/prodiguer-docs/wiki/Monitoring-Message-Dictionary if [ X${BigBrother} = Xtrue ] ; then # create a unique ID for this specific job jobuid=$(uuidgen) # get the assigned id by the scheduler for that job IGCM_sys_getJobSchedulerID jobSchedulerID if [ X${TaskType} = Xcomputing ]; then if ( ${FirstInitialize} ) ; then # RabbitMQ message code "BEGIN A SIMULATION" code=0000 # create and persist a unique id for this simulation simuid=$(uuidgen) IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration simuid ${simuid} # Standard fields for the first message genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"activity\":\"IPSL\",\"name\":\"${config_UserChoices_JobName}\",\"experiment\":\"${config_UserChoices_ExperimentName}\",\"space\":\"${config_UserChoices_SpaceName}\",\"model\":\"${config_UserChoices_TagName}\",\"startDate\":\"${config_UserChoices_DateBegin}\",\"endDate\":\"${config_UserChoices_DateEnd}\",\"login\":\"${LOGIN}\",\"centre\":\"${CENTER}\",\"machine\":\"${MASTER}\",\"simuid\":\"${simuid}\",\"jobuid\":\"${jobuid}\"" ) # RabbitMQ message body with specific fields associated message codes treated here Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"accountingProject\":\"${PROJECT}\",\"jobWarningDelay\":\"${jobWarningDelay}\",\"jobSchedulerID\":\"${jobSchedulerID}\",\"jobSubmissionPath\":\"${SUBMIT_DIR}\",\"archivePath\":\"${R_SAVE}\",\"storagePath\":\"${R_BUFR}\",\"storageSmallPath\":\"${R_FIGR}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" ) # Fill the rabbitMQ queue (the config.card in use will be sent) IGCM_debug_sendAMQP activate else # RabbitMQ message code "A NEW COMPUTING JOB IS RUNNING PART OF A SIMULATION" code=1000 # retrieve this simulation's unique id IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration simuid simuid=${run_Configuration_simuid} # Using standard fields for message others than the first one. Still subject to change genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"simuid\":\"${simuid}\",\"jobuid\":\"${jobuid}\"" ) # RabbitMQ message body with specific fields associated message codes treated here Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"accountingProject\":\"${PROJECT}\",\"jobWarningDelay\":\"${jobWarningDelay}\",\"jobSchedulerID\":\"${jobSchedulerID}\",\"jobSubmissionPath\":\"${SUBMIT_DIR}\",\"archivePath\":\"${R_SAVE}\",\"storagePath\":\"${R_BUFR}\",\"storageSmallPath\":\"${R_FIGR}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" ) # Fill the rabbitMQ queue IGCM_debug_sendAMQP fi # NOT VERY NICE BUT ... IT WORKS # Be sure that the genericSimulationID will be small from now on # Using standard fields for messages others than the first one. Still subject to change genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"simuid\":\"${simuid}\",\"jobuid\":\"${jobuid}\"" ) elif [ X${TaskType} = Xpost-processing ]; then # RabbitMQ message code "A NEW POST-PROCESSING JOB IS RUNNING PART OF A SIMULATION" code=2000 # retrieve this simulation's unique id IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration simuid simuid=${run_Configuration_simuid} # Using standard fields for message others than the first one. Still subject to change genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"simuid\":\"${simuid}\",\"jobuid\":\"${jobuid}\"" ) # Specify the post-processing task we are dealing with postProcessingIDLength=$( echo "${Script_Post_Output}" | tr -d -c "\." | wc -c ) postProcessingName=$( echo "${Script_Post_Output}" | gawk -F. '{print $1}' ) postProcessingDate=$( echo "${Script_Post_Output}" | gawk -F. '{print $2}' ) postProcessingDimn="null" postProcessingComp="null" postProcessingFile="null" if [ ${postProcessingIDLength} -eq 2 ] ; then postProcessingDimn=$( echo "${Script_Post_Output}" | gawk -F. '{print $3}' ) elif [ ${postProcessingIDLength} -eq 4 ] ; then postProcessingComp=$( echo "${Script_Post_Output}" | gawk -F. '{print $4}' ) postProcessingFile=$( echo "${Script_Post_Output}" | gawk -F. '{print $5}' ) fi # RabbitMQ message body with specific fields associated message codes treated here Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"accountingProject\":\"${PROJECT}\",\"jobWarningDelay\":\"${jobWarningDelay}\",\"jobSchedulerID\":\"${jobSchedulerID}\",\"jobSubmissionPath\":\"${SUBMIT_DIR}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\",\"postProcessingName\":\"${postProcessingName}\",\"postProcessingDate\":\"${postProcessingDate}\",\"postProcessingDimn\":\"${postProcessingDimn}\",\"postProcessingComp\":\"${postProcessingComp}\",\"postProcessingFile\":\"${postProcessingFile}\"}" ) # Fill the rabbitMQ queue IGCM_debug_sendAMQP elif [ X${TaskType} = Xchecking ]; then # retrieve this simulation's unique id IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration simuid simuid=${run_Configuration_simuid} # Using standard fields for message others than the first one. Still subject to change genericSimulationID=$( echo "\"msgApplication\":\"monitoring\",\"msgProducer\":\"libigcm\",\"msgProducerVersion\":\"${libIGCMVersion}\",\"simuid\":\"${simuid}\",\"jobuid\":\"N\/A\"" ) fi # Turn the flag on ActivateBigBro=true if [ X${TaskType} = Xcomputing ]; then # Save project accounting details in a file accountingFile=cpt_${CENTER}_${PROJECT}_$( date +"%Y%m%d_%H%M" ).dat IGCM_sys_projectAccounting ${accountingFile} # And send it IGCM_debug_sendAMQP_projectAccounting ${accountingFile} fi fi IGCM_debug_PopStack "IGCM_debug_BigBro_Initialize" } #D-#================================================================== #D-function IGCM_debug_BigBro_Update #D-* Purpose: Update rabbitMQ messages exchanges during the run #D- function IGCM_debug_BigBro_Update { IGCM_debug_PushStack "IGCM_debug_BigBro_Update" # Message type standard fields: # https://github.com/Prodiguer/prodiguer-docs/wiki/MQ-Standard-Message-Fields # Message type dictionnary and custom fields: # https://github.com/Prodiguer/prodiguer-docs/wiki/Monitoring-Message-Dictionary if [ X${ActivateBigBro} = Xtrue ] ; then if [ X${TaskType} = Xcomputing ]; then # Send ${PeriodDateBegin}, ${PeriodDateEnd} and ${CumulPeriod} # RabbitMQ message body Body=$( echo "{${genericSimulationID},\"msgCode\":\"1001\",\"PeriodDateBegin\":\"${PeriodDateBegin}\",\"PeriodDateEnd\":\"${PeriodDateEnd}\",\"CumulPeriod\":\"${CumulPeriod}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" ) # Fill the rabbitMQ queue IGCM_debug_sendAMQP fi fi IGCM_debug_PopStack "IGCM_debug_BigBro_Update" } #D-#================================================================== #D-function IGCM_debug_BigBro_Finalize #D-* Purpose: Finalize rabbitMQ messages exchanges #D- function IGCM_debug_BigBro_Finalize { IGCM_debug_PushStack "IGCM_debug_BigBro_Finalize" # Message type standard fields: # https://github.com/Prodiguer/prodiguer-docs/wiki/MQ-Standard-Message-Fields # Message type dictionnary and custom fields: # https://github.com/Prodiguer/prodiguer-docs/wiki/Monitoring-Message-Dictionary if ( $DEBUG_debug ) ; then if [ X${ActivateBigBro} = Xtrue ] ; then if [ X${TaskType} = Xcomputing ]; then if ( ${simulationIsOver} ) ; then # RabbitMQ message code "SIMULATION ENDS" code=0100 FlushAMQP=true elif ( ${ExitFlag} ) ; then # RabbitMQ message code "EXIT THE JOBS BECAUSE ERROR(S) HAS BEEN TRIGGERED" code=1999 FlushAMQP=true else # RabbitMQ message code "COMPUTING JOB ENDS" code=1100 fi elif [ X${TaskType} = Xpost-processing ]; then if ( ${ExitFlag} ) ; then # RabbitMQ message code "POST-PROCESSING JOB FAILS" code=2999 FlushAMQP=true else # RabbitMQ message code "POST-PROCESSING JOB ENDS" code=2100 FlushAMQP=true fi elif [ X${TaskType} = Xchecking ]; then if ( ${ExitFlag} ) ; then # RabbitMQ message code "POST-PROCESSING JOB FAILS" code=3999 FlushAMQP=true else # RabbitMQ message code "POST-PROCESSING JOB ENDS" code=3100 FlushAMQP=true fi fi # RabbitMQ message body Body=$( echo "{${genericSimulationID},\"msgCode\":\"${code}\",\"msgUID\":\"$(uuidgen)\",\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" ) # Fill the rabbitMQ queue IGCM_debug_sendAMQP fi fi IGCM_debug_PopStack "IGCM_debug_BigBro_Finalize" } #D-#================================================================== #D-function IGCM_debug_Exit #D-* Purpose: Print Call Stack and set ExitFlag to true #D- function IGCM_debug_Exit { IGCM_debug_PushStack "IGCM_debug_Exit" echo "IGCM_debug_Exit : " "${@}" echo echo "!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "!! ERROR TRIGGERED !!" echo "!! EXIT FLAG SET !!" echo "!------------------------!" echo IGCM_debug_CallStack ExitFlag=true IGCM_debug_PopStack "IGCM_debug_Exit" } #D-#================================================== #D-function IGCM_debug_Verif_Exit #D-* Purpose: exit with number 1 if ExitFlag is true #D- function IGCM_debug_Verif_Exit { if ( ${ExitFlag} ) ; then echo "IGCM_debug_Verif_Exit : Something wrong happened previously." echo "IGCM_debug_Verif_Exit : ERROR and EXIT keyword will help find out where." # Only computing TaskType stops the job for now. if [ X${TaskType} = Xcomputing ] ; then IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Fatal" echo " EXIT THE JOB." echo IGCM_debug_CallStack # Mail notification IGCM_sys_SendMail # Inform the rabbitMQ queue IGCM_debug_BigBro_Finalize # And Good Bye date exit 1 elif [ X${TaskType} = Xpost-processing ] ; then StopAll=false # Test if we need to stop the computing job case ${postProcessingName} in atlas*|monitoring*|metrics*) [ ${postProcessingStopLevel} -gt 2 ] && StopAll=true ;; create_*) [ ${postProcessingStopLevel} -gt 1 ] && StopAll=true ;; rebuild*|pack_*) [ ${postProcessingStopLevel} -gt 0 ] && StopAll=true ;; esac # Notify the computing job that something wrong happened and stop it. ( ${StopAll} ) && IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Fatal.${Script_Post_Output}" # If SpaceName is PROD we stop when post_processing failed if [ X${config_UserChoices_SpaceName} = XPROD ] ; then echo " EXIT THE POST-PROCESSING JOB." echo IGCM_debug_CallStack # Inform the rabbitMQ queue IGCM_debug_BigBro_Finalize # And Good Bye date exit 1 else echo "In config.card the variable SpaceName is not in PROD" echo " SO WE DO NOT EXIT THE JOB." echo date fi elif [ X${TaskType} = Xchecking ] ; then echo "Nothing will happen for now" fi fi } #D-#================================================================== #D-function IGCM_debug_Print #D-* Purpose: Print arguments according to a level of verbosity. #D- function IGCM_debug_Print { typeset level=$1 shift if [ X"${1}" = X"-e" ]; then typeset cmd_echo="echo -e" shift else typeset cmd_echo="echo" fi if [ ${level} -le ${Verbosity} ] ; then typeset i case "${level}" in 1) for i in "$@" ; do ${cmd_echo} $(date +"%Y-%m-%d %T") "--Debug1-->" ${i} done ;; 2) for i in "$@" ; do ${cmd_echo} $(date +"%Y-%m-%d %T") "--------Debug2-->" ${i} done ;; 3) for i in "$@" ; do ${cmd_echo} $(date +"%Y-%m-%d %T") "--------------Debug3-->" ${i} done ;; esac fi } #D-#================================================================== #D-function IGCM_debug_PrintVariables #D-* Purpose: Print arguments when match a pattern #D- according to a level of verbosity. function IGCM_debug_PrintVariables { typeset level=$1 shift list=$( set | grep ^$1 | sed -e "s/'//g" ) if [ "X${list}" != X ] ; then IGCM_debug_Print ${level} ${list} fi } #D-#================================================================== #D-function IGCM_debug_PrintInfosActions #D-* Purpose: Print information related to instrumentation function IGCM_debug_PrintInfosActions { typeset actionType=$1 typeset entitySize=$2 typeset start_ms=$3 typeset end_ms=$4 typeset dest=$5 typeset source=$6 typeset diff_ms entitySizeKo entitySizeMo flux_Ko_ms flux_Ko_s flux_Mo_s typeset dirFrom dirTo diff_ms=$(( $end_ms - $start_ms )) # echo "diff_ms=$diff_ms" entitySizeKo=$( echo ${entitySize} | gawk -F"|" '{print $1}' ) # echo "entitySizeKo=$entitySizeKo" entitySizeMo=$( echo ${entitySize} | gawk -F"|" '{print $2}' ) # flux en Ko / ms flux_Ko_ms=$( echo "scale=6;${entitySizeKo}/${diff_ms}" | bc ) # echo "flux_Ko_ms=$flux_Ko_ms" # flux en Ko / s flux_Ko_s=$(( $flux_Ko_ms * 1000 )) # echo "flux_Ko_s=$flux_Ko_s" # flux en Mo / s flux_Mo_s=$( echo "scale=6;${flux_Ko_s}/1024" | bc ) # echo "flux_Mo_s=$flux_Mo_s" if [ -d $dest ] ; then dirTo=$( readlink -f ${dest} ) else dirTo=$( readlink -f $( dirname ${dest} ) ) fi if [ -d $source ] ; then dirFrom=$( readlink -f ${source} ) else dirFrom=$( readlink -f $( dirname ${source} ) ) fi instrumentationContent=$( echo "\"actionName\":\"${actionType}\",\"size_Mo\":\"${entitySizeMo}\",\"duration_ms\":\"${diff_ms}\",\"throughput_Mo_s\":\"${flux_Mo_s}\",\"dirFrom\":\"${dirFrom}\",\"dirTo\":\"${dirTo}\"" ) if [ X${ActivateStackFilling} = Xtrue ] ; then echo "{${instrumentationContent}}" >> ${StackFileLocation}/${StackFileName} fi # Inform the rabbitMQ queue if [ X${ActivateBigBro} = Xtrue ] ; then # RabbitMQ message body Body=$( echo "{${genericSimulationID},\"msgCode\":\"7000\",\"msgUID\":\"$(uuidgen)\",${instrumentationContent},\"msgTimestamp\":\"$( date +"%Y-%m-%dT%H:%M:%S.%N%z" )\"}" ) # Fill the rabbitMQ queue IGCM_debug_sendAMQP fi } #D-#================================================================== #D-function IGCM_debug_Check #D- * Purpose: Check the present file by comparison with a reference file function IGCM_debug_Check { #--------------------- if [ ! -n "${libIGCM}" ] ; then echo "Check libIGCM_debug ..........................................[ FAILED ]" echo "--Error--> libIGCM variable is not defined" exit 2 fi #--------------------- if [ ! -n "${Verbosity}" ] ; then echo "Check libIGCM_debug ..........................................[ FAILED ]" echo "--Error--> Verbosity variable is not defined" exit 3 fi #--------------------- # Need to remove timestamps here diff ${libIGCM}/libIGCM_debug/IGCM_debug_Test.ref <(${libIGCM}/libIGCM_debug/IGCM_debug_Test.ksh | sed -e "s:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]\:[0-9][0-9]\:[0-9][0-9] ::g") > /dev/null 2>&1 status=$? if [ ${status} -eq 0 ] ; then echo "Check libIGCM_debug ..............................................[ OK ]" else echo "Check libIGCM_debug ..........................................[ FAILED ]" echo "--Error--> Execution of ${libIGCM}/libIGCM_debug/IGCM_debug_Test.ksh" echo " has produced the file IGCM_debug_Test.ref.failed" echo " Please analyse differences with the reference file by typing:" echo " diff IGCM_debug_Test.ref.failed ${libIGCM}/libIGCM_debug/IGCM_debug_Test.ref" echo " Report errors to the author: Patrick.Brockmann@cea.fr" diff ${libIGCM}/libIGCM_debug/IGCM_debug_Test.ref <(${libIGCM}/libIGCM_debug/IGCM_debug_Test.ksh | sed -e "s:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]\:[0-9][0-9]\:[0-9][0-9] ::g") exit 4 fi #--------------------- } + Verbosity=3 + typeset -i Verbosity + DEBUG_debug=false + postProcessingStopLevel=0 + RandomError=false + typeset -r RandomError + NULL_STR=_0_ + typeset -r NULL_STR + libIGCMVersion=2.8.3 + typeset -r libIGCMVersion + ExitFlag=false + simulationIsOver=false + FlushAMQP=false + unset IGCM_debug_Stack + unset IGCM_debug_StackArgs + unset IGCM_debug_StackTiming + IGCM_debug_Stack[0]=_0_ + IGCM_debug_StackArgs[0]=_0_ + IGCM_debug_StackTiming[0]=_0_ + IGCM_debug_LenStack=0 . ${libIGCM}/libIGCM_card/libIGCM_card.ksh + . /ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM/libIGCM_card/libIGCM_card.ksh #!/bin/ksh #************************************************************** # Author: Patrick Brockmann # Contact: Patrick.Brockmann__at__cea.fr # $Revision:: 1152 $ Revision of last commit # $Author:: sdipsl $ Author of last commit # $Date:: 2015-01-19 15:45:38 +0100 (Mon, 19 Jan 2015) $ Date of last commit # IPSL (2006) # This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC # #************************************************************** #================================================== # The documentation of this file can be automatically generated # if you use the prefix #D- for comments to be extracted. # Extract with command: cat lib* | grep "^#D-" | cut -c "4-" #================================================== #D-#================================================================== #D-libIGCM_card #D-This ksh library handles extraction of information from configuration file #D-called "card" file (en français fichier "carte"). #D-All function described bellow must be prefixed by IGCM_card. #D-A card file is organized as follows : #D- --------------------- #D-[Messages] #D-Option1= "Hello Earth" #D-Option2= "Hello Mars" #D- #D-# My comments #D-[Recipes] #D-Cake= "file1.doc" #D-Starter= "file2.doc" #D- #D-[ColorValues] #D-Red= 120 #D-Blue= 230 #D-Green= 178 #D- #D-[Couples] #D-List1= (up, down), \ #D- (humid, dry), \ #D- (hot, cold), \ #D- (far, close) #D-List2= (ice, fire, air, water) #D- --------------------- #D- #D-#================================================================== #D-function IGCM_card_PrintOption #D-* Purpose: Print an option from a given file.card and section #D-* Usage: IGCM_card_PrintOption file.card section option #D-* Only used by IGCM_card_Test.ksh #D- function IGCM_card_PrintOption { IGCM_debug_PushStack "IGCM_card_PrintOption" $@ if ( [ -r "$1" ] && [ -f "$1" ] ) ; then gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintOption.awk "$@" else echo IGCM_debug_Print 1 "--Error--> IGCM_card_PrintOption $@" IGCM_debug_Print 1 " $1 is not readable" IGCM_debug_Exit "IGCM_card_PrintOption" fi IGCM_debug_PopStack "IGCM_card_PrintOption" } #D-#================================================================== #D-function IGCM_card_PrintSection #D-* Purpose: Print all options from a given file.card and section #D-* Usage: IGCM_card_PrintSection file.card section #D-* Only used by IGCM_card_Test.ksh #D- function IGCM_card_PrintSection { IGCM_debug_PushStack "IGCM_card_PrintSection" $@ if ( [ -r "$1" ] && [ -f "$1" ] ) ; then gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintSection.awk -- "$@" else IGCM_debug_Print 1 "--Error--> IGCM_card_PrintSection $@" IGCM_debug_Print 1 " $1 is not readable" IGCM_debug_Exit "IGCM_card_PrintSection" fi IGCM_debug_PopStack "IGCM_card_PrintSection" } #D-#================================================================== #D-function IGCM_card_DefineVariableFromOption #D-* Purpose: Define a variable from a given file.card, section and option #D-* Variable name is automatically defined as file_section_option #D-* Usage: IGCM_card_DefineVariableFromOption file.card section option #D- function IGCM_card_DefineVariableFromOption { IGCM_debug_PushStack "IGCM_card_DefineVariableFromOption" $@ if ( [ -r "$1" ] && [ -f "$1" ] ) ; then # Get basename of card file ($1) typeset name1=${1##*/} # Build name of variable as $1_$2_$3 (cardname_Section_Option) typeset name=${name1%%.*}_${2}_${3} typeset value=$( gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintOption.awk -- "$@" ) # Only if a Section is missing we exit the job. # We must allow missing Option to keep backward compatibilty. if [ "${value}" = "Error: Section not found" ] ; then echo IGCM_debug_Print 1 "Error with readding of ${name} variable in ${1}." IGCM_debug_Print 1 "Error: Section ${2} not found" IGCM_debug_Exit IGCM_debug_Verif_Exit elif [ "${value}" = "Error: Option not found" ] ; then eval ${name}=${NULL_STR} else eval ${name}=${value} fi else echo IGCM_debug_Print 1 "--Error--> IGCM_card_DefineVariableFromOption" IGCM_debug_Print 1 "--Error--> $1 is not readable" IGCM_debug_Exit "IGCM_card_DefineVariableFromOption" IGCM_debug_Verif_Exit fi IGCM_debug_PopStack "IGCM_card_DefineVariableFromOption" } #D-#================================================================== #D-function IGCM_card_DefineArrayFromOption #D-* Purpose: Define an array variable from a given file.card, section and option #D-* Array variable is automatically defined as file_section_option #D-* Usage: IGCM_card_DefineArrayFromOption file.card section option #D- function IGCM_card_DefineArrayFromOption { IGCM_debug_PushStack "IGCM_card_DefineArrayFromOption" $@ if ( [ -r "$1" ] && [ -f "$1" ] ) ; then # Get basename of card file ($1) typeset name1=${1##*/} # Build name of array as $1_$2_$3 (cardname_Section_Option) typeset name=${name1%%.*}_${2}_${3} eval unset ${name} eval ${name}[0]=${NULL_STR} set +A ${name} -- $( gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintOption.awk -- "$@" | gawk -- 'BEGIN {FS="[() ,]+"} {for (i=2; i <= NF-1; i++) printf("%s ",$i)}' ) else echo IGCM_debug_Print 1 "--Error--> IGCM_card_DefineArrayFromOption $@" IGCM_debug_Print 1 " $1 is not readable" IGCM_debug_Exit "IGCM_card_DefineArrayFromOption" fi IGCM_debug_PopStack "IGCM_card_DefineArrayFromOption" } #D-#================================================================== #D-function IGCM_card_DefineArrayFromSection #D-* Purpose: Define an array variable from a given file.card and section #D-* Array variable is automatically defined as file_section #D-* Usage: IGCM_card_DefineArrayFromSection file.card section #D- function IGCM_card_DefineArrayFromSection { IGCM_debug_PushStack "IGCM_card_DefineArrayFromSection" $@ if ( [ -r "$1" ] && [ -f "$1" ] ) ; then # Get basename of card file ($1) typeset name1=${1##*/} # Build name of array as $1_$2 (cardname_Section) typeset name=${name1%%.*}_${2} eval unset ${name} eval ${name}[0]=${NULL_STR} set +A ${name} -- $( gawk -f ${libIGCM}/libIGCM_card/IGCM_card_PrintSection.awk -- "$@" ) #if [ "$( eval echo \${${name}[@]} )" = "Error: Section not found" ] ; then # echo # IGCM_debug_Print 1 "Error with readding of ${name} variable in ${1}." # IGCM_debug_Print 1 "Error: Section ${2} not found" # IGCM_debug_Exit # IGCM_debug_Verif_Exit #fi if [ "$( eval echo \${${name}[@]} )" = "Error: Section not found" ] ; then echo IGCM_debug_Print 1 "Warning with readding of ${name} variable in ${1}." IGCM_debug_Print 1 "Warning: Section ${2} not found" eval unset ${name} fi else IGCM_debug_Print 1 "--Error--> IGCM_card_DefineArrayFromSection $@" IGCM_debug_Print 1 " $1 is not readable" IGCM_debug_Exit "IGCM_card_DefineArrayFromSection" fi IGCM_debug_PopStack "IGCM_card_DefineArrayFromSection" } #D-#================================================================== #D-function IGCM_card_WriteOption #D-* Purpose: Write an option in a given file.card and section #D-* Usage: IGCM_card_WriteOption file.card section newvalue #D-* Examples: IGCM_card_WriteOption file.card Recipes Red 150 #D- IGCM_card_WriteOption file.card Messages Option2 '"Hello Mercure"' #D- IGCM_card_WriteOption file.card Messages ListVal1 '( 1, 2, 3 )' #D- listname="(Sebastien, Martial, Patrick)" #D- IGCM_card_WriteOption NewTestFile.card Messages ListVal2 "${listname}" #D- function IGCM_card_WriteOption { IGCM_debug_PushStack "IGCM_card_WriteOption" $@ if ( [ -r "$1" ] && [ -w "$1" ] && [ -f "$1" ] ) ; then if [ $( IGCM_card_PrintOption "$1" "$2" "$3" | grep "not found" | wc -l ) -gt 0 ] ; then IGCM_debug_Print 1 "!!! Issue with IGCM_card_WriteOption !!!" IGCM_debug_Print 1 "We tried to write : $@" IGCM_debug_Exit "Must check that option $3 in section $2 exist in this file $1" IGCM_debug_Verif_Exit fi # The tmpfile uses now the real path of the card to be modified, # not just a local tmpfile with PID. tmpfile=$1_mutex_$$ IGCM_card_CheckConflict $1 # Do the job ( gawk -f ${libIGCM}/libIGCM_card/IGCM_card_WriteOption.awk -- "$@" 2> /dev/null ) > ${tmpfile} cp $1 $1.bak mv ${tmpfile} $1 else echo IGCM_debug_Print 1 "--Error--> IGCM_card_WriteOption $@" IGCM_debug_Print 1 " $1 is not readable or not writable" IGCM_debug_Exit "IGCM_card_WriteOption" fi IGCM_debug_PopStack "IGCM_card_WriteOption" } #D-#================================================================== #D-function IGCM_card_CheckConflict #D-* Purpose: Check that a card is not in use by another process. If it is the case wait until it is not. #D-* Usage: IGCM_card_CheckConflict run.card #D-* Examples: #D- function IGCM_card_CheckConflict { IGCM_debug_PushStack "IGCM_card_CheckConflict" $@ typeset isleep tmpfiles # Watch for possible conflics : Check for other tmpfiles. set +A tmpfiles -- $( ls $1_mutex_[0-9]* 2>/dev/null ) ((isleep=0)) while [ ${#tmpfiles[@]} -gt 0 ] ; do echo "Conflict between two processes working on " $1 "!!!" ${tmpfiles[@]} sleep 1 ((isleep=isleep+1)) if [ ${isleep} -gt 20 ] ; then echo "Too many loops waiting for other process working on " $1 ". We continue." echo "You should see if one process of your run or post-treatment may have terminated suddenly." echo "Afer, you should erase this(those) file(s) : " ${tmpfiles[@]} # Send a mail to USER ?? break ; fi unset tmpfiles set +A tmpfiles -- $( ls $1_mutex_[0-9]* 2>/dev/null ) done IGCM_debug_PopStack "IGCM_card_CheckConflict" } #D-#================================================================== #D-function IGCM_card_WriteArrayOption #D-* Purpose: Write an array option a given file.card and section #D-* Usage: IGCM_card_WriteArrayOption file.card section option newarray #D-* Examples: set -A MyArray -- 1 2 3 #D- IGCM_card_WriteArrayOption file.card Recipes List MyArray #D- function IGCM_card_WriteArrayOption { IGCM_debug_PushStack "IGCM_card_WriteArrayOption" $@ if ( [ -r "$1" ] && [ -w "$1" ] && [ -f "$1" ] ) ; then if [ X"${4}" != X"" ]; then tab=$4 IGCM_card_WriteOption $1 $2 $3 '('$( eval echo \${${tab}[@]} | sed -e 's/ /,/g' )')' else IGCM_card_WriteOption $1 $2 $3 '()' fi else echo IGCM_debug_Print 1 "--Error--> IGCM_card_WriteArrayOption $@" IGCM_debug_Print 1 " $1 is not readable or not writable" IGCM_debug_Exit "IGCM_card_WriteArrayOption" fi IGCM_debug_PopStack "IGCM_card_WriteArrayOption" } #D-#================================================================== #D-function IGCM_card_Check #D-* Purpose: Check the present file by comparison with a reference file #D-* Usage: IGCM_card_Check #D- function IGCM_card_Check { #--------------------- if [ ! -n "${libIGCM}" ] ; then echo "Check libIGCM_card ...........................................[ FAILED ]" echo "--Error--> libIGCM variable is not defined" IGCM_debug_Exit "IGCM_card_Check" fi #--------------------- whence -v gawk > /dev/null 2>&1 if [ ! $? -eq 0 ] ; then echo "Check libIGCM_card ...........................................[ FAILED ]" echo "--Error--> gawk command is not defined" IGCM_debug_Exit "IGCM_card_Check" fi #--------------------- # No need to remove timestamps here diff ${libIGCM}/libIGCM_card/IGCM_card_Test.ref <(${libIGCM}/libIGCM_card/IGCM_card_Test.ksh) > /dev/null 2>&1 status=$? if [ ${status} -eq 0 ] ; then echo "Check libIGCM_card ...............................................[ OK ]" else echo "Check libIGCM_card ...........................................[ FAILED ]" echo "--Error--> Execution of ${libIGCM}/libIGCM_card/IGCM_card_Test.ksh" echo " has produced the file IGCM_card_Test.ref.failed" echo " Please analyse differences with the reference file by typing:" echo " diff IGCM_card_Test.ref.failed ${libIGCM}/libIGCM_card/IGCM_card_Test.ref" echo " Report errors to the author: Patrick.Brockmann@cea.fr" diff ${libIGCM}/libIGCM_card/IGCM_card_Test.ref <(${libIGCM}/libIGCM_card/IGCM_card_Test.ksh) IGCM_debug_Exit "IGCM_card_Check" fi } . ${libIGCM}/libIGCM_date/libIGCM_date.ksh + . /ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM/libIGCM_date/libIGCM_date.ksh #!/bin/ksh #************************************************************** # Author: Sebastien Denvil # Contact: Sebastien.Denvil__at__ipsl.jussieu.fr # $Revision:: 1206 $ Revision of last commit # $Author:: sdipsl $ Author of last commit # $Date:: 2015-06-05 17:28:35 +0200 (Fri, 05 Jun 2015) $ Date of last commit # IPSL (2006) # This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC # #************************************************************** #================================================== # The documentation of this file can be automatically generated # if you use the prefix #D- for comments to be extracted. # Extract with command: cat lib* | grep "^#D-" | cut -c "4-" #================================================== #D-#================================================================== #D-libIGCM_date #D-This ksh library handles date calculs and convertions in different calendars. #D- types of calendars are possible : #D- #D- - leap|gregorian|standard (other name leap) : #D- The normal calendar. The time origin for the #D- julian day in this case is 24 Nov -4713. #D- - noleap|365_day : #D- A 365 day year without leap years. #D- - all_leap|366_day : #D- A 366 day year with only leap years. #D- - 360d|360_day : #D- Year of 360 days with month of equal length. # Number of digit in the year typeset -r dY=${dY:=4} #typeset -r MaxpY=$( echo "10^"$((dY+1)) | bc -l ) # Number of digit in non-human date representation typeset -r pY=$(( dY+4 )) #================================================================== function IGCM_date_YearDigit { IGCM_debug_PushStack "IGCM_date_YearDigit" $@ typeset NUM NUM=$(( 10#${1} )) echo $( gawk "BEGIN { printf \"%0${dY}d\",${NUM} }" ) IGCM_debug_PopStack "IGCM_date_YearDigit" } #================================================================== function IGCM_date_GregorianDigit { IGCM_debug_PushStack "IGCM_date_GregorianDigit" $@ typeset NUM NUM=$(( 10#${1} )) echo $( gawk "BEGIN { printf \"%0${pY}d\",${NUM} }" ) IGCM_debug_PopStack "IGCM_date_GregorianDigit" } #================================================================== function IGCM_date_HumanDigit { IGCM_debug_PushStack "IGCM_date_HumanDigit" $@ echo $( IGCM_date_GregorianDigit $( print ${1} | sed 's/-//g' ) ) \ | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1-\2-\3/" IGCM_debug_PopStack "IGCM_date_HumanDigit" } #================================================================== function IGCM_date_SupressZeros { IGCM_debug_PushStack "IGCM_date_SupressZeros" $@ echo $( print ${1} | sed -e "s/0*//" ) IGCM_debug_PopStack "IGCM_date_SupressZeros" } #================================================================== function IGCM_date_ConvertFormatToGregorian { IGCM_debug_PushStack "IGCM_date_ConvertFormatToGregorian" $@ # from a yyyy-mm-dd date format return # a yyymmdd date format # usage IGCM_date_ConvertFormat yyyy-mm-dd # if there is no argument on the command line, # then assume that a y-m-d formated date is being # piped in typeset ymd if [ $# = 0 ] then read ymd else ymd=$1 fi IGCM_date_GregorianDigit $( print ${ymd} | sed 's/-//g' ) IGCM_debug_PopStack "IGCM_date_ConvertFormatToGregorian" } #================================================================== function IGCM_date_ConvertFormatToHuman { IGCM_debug_PushStack "IGCM_date_ConvertFormatToHuman" $@ # from a yyyymmdd date format return # a yyyy-mm-dd date format # usage IGCM_date_ConvertFormat yyyymmdd # if there is no argument on the command line, # then assume that a yyyymmdd formated date is being # piped in typeset dt if [ $# = 0 ] then read dt else dt=$1 fi # break the yyyymmdd into separate parts for year, month and day echo $( IGCM_date_GregorianDigit ${dt} ) | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1-\2-\3/" IGCM_debug_PopStack "IGCM_date_ConvertFormatToHuman" } #================================================================== function IGCM_date_GetYearMonth { IGCM_debug_PushStack "IGCM_date_GetYearMonth" $@ # from a yyyymmdd date format return # a yyyy year and mm month # usage IGCM_date_GetYearMonth yyyymmdd year_var month_var # if there is no argument on the command line, # then assume that a yyyymmdd formated date is being # piped in typeset dt if [ $# = 0 ] then read dt else dt=$1 fi # break the yyyymmdd into separate parts for year, month and day eval $2=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1/" ) eval $3=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\2/" ) IGCM_debug_PopStack "IGCM_date_GetYearMonth" } #================================================================== function IGCM_date_GetYearMonthDay { IGCM_debug_PushStack "IGCM_date_GetYearMonthDay" $@ # from a yyyymmdd date format return # a yyyy year, mm month and dd day # usage IGCM_date_GetYearMonthDay yyyymmdd year_var month_var day_var # if there is no argument on the command line, # then assume that a yyyymmdd formated date is being # piped in typeset dt if [ $# = 0 ] then read dt else dt=$1 fi # break the yyyymmdd into separate parts for year, month and day eval $2=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1/" ) eval $3=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\2/" ) eval $4=$( IGCM_date_GregorianDigit ${dt} | sed -e "s/\([0-9]\{${dY}\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\3/" ) IGCM_debug_PopStack "IGCM_date_GetYearMonthDay" } #D-#================================================================== #D-function IGCM_date_DaysInYear #D-* Purpose: Return the number of days in a year #D-* Usage: IGCM_date_DaysInYear yyyy #D- if there is no argument on the command line, #D- then assume that a yyyy is being piped in #D- function IGCM_date_DaysInYear { # IGCM_debug_PushStack "IGCM_date_DaysInYear" $@ # return the number of days in a year # usage IGCM_date_DaysInYear yyyy # What is the calendar : case ${config_UserChoices_CalendarType} in 360d|360_day) if [ X$2 = X ] ; then echo 360 else eval $2=360 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInYear" return;; noleap|365_day) if [ X$2 = X ] ; then echo 365 else eval $2=365 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInYear" return;; all_leap|366_day) if [ X$2 = X ] ; then echo 366 else eval $2=366 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInYear" return;; esac typeset y a # if there is no argument on the command line, # then assume that a yyyy is being piped in if [ $# = 0 ] then read y else y=$(( 10#${1} )) fi # a year is a leap year if it is even divisible by 4 # but not evenly divisible by 100 # unless it is evenly divisible by 400 # if it is evenly divisible by 400 it must be a leap year a=$(( $y % 400 )) if [ $a = 0 ] then if [ X$2 = X ] ; then echo 366 else eval $2=366 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInYear" return fi # if it is evenly divisible by 100 it must not be a leap year a=$(( $y % 100 )) if [ $a = 0 ] then if [ X$2 = X ] ; then echo 365 else eval $2=365 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInYear" return fi # if it is evenly divisible by 4 it must be a leap year a=$(( $y % 4 )) if [ $a = 0 ] then if [ X$2 = X ] ; then echo 366 else eval $2=366 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInYear" return fi # otherwise it is not a leap year if [ X$2 = X ] ; then echo 365 else eval $2=365 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInYear" } #D-#================================================================== #D-function IGCM_date_DaysInMonth #D-* Purpose: Calculate the number of days in a month #D-* Usage: IGCM_date_DaysInMonth yyyy mm #D- or IGCM_date_DaysInMonth yyyymmdd #D- if there are no command line arguments then #D- assume that a yyyymmdd is being piped in and read the value. #D- if there is only one argument assume it is a yyyymmdd on the command line #D- other wise it is a yyyy and mm on the command line function IGCM_date_DaysInMonth { # IGCM_debug_PushStack "IGCM_date_DaysInMonth" $@ # calculates the number of days in a month # usage IGCM_date_DaysInMonth yyyy mm # or IGCM_date_DaysInMonth yyyymmdd # What is the calendar : if ( [ "${config_UserChoices_CalendarType}" = "360d" ] || [ "${config_UserChoices_CalendarType}" = "360_day" ] ) ; then if [ X$3 = X ] ; then echo 30 else eval $3=30 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInMonth" return fi typeset ymd y m # if there are no command line arguments then assume that a yyyymmdd is being # piped in and read the value. # if there is only one argument assume it is a yyyymmdd on the command line # other wise it is a yyyy and mm on the command line if [ $# = 0 ] then read ymd elif [ $# = 1 ] then ymd=$1 else ymd=$(( ( $1 * 10000 ) + ( $2 * 100 ) + 1 )) fi # extract the year and the month y=$(( $ymd / 10000 )) ; m=$(( ( $ymd % 10000 ) / 100 )) ; # 30 days hath september etc. case $m in 1|3|5|7|8|10|12) if [ X$3 = X ] ; then echo 31 else eval $3=31 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInMonth" return ;; 4|6|9|11) if [ X$3 = X ] ; then echo 30 else eval $3=30 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInMonth" return ;; *) ;; esac # except for month 2 which depends on whether the year is a leap year # Use IGCM_date_DaysInYear to get the number of days in the year and return a value # accordingly. IGCM_date_DaysInYear $y diy case $diy in 365) if [ X$3 = X ] ; then echo 28 else eval $3=28 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInMonth" return ;; 366) if [ X$3 = X ] ; then echo 29 else eval $3=29 > /dev/null 2>&1 fi # IGCM_debug_PopStack "IGCM_date_DaysInMonth" return ;; esac # IGCM_debug_PopStack "IGCM_date_DaysInMonth" } #D-#================================================================== #D-function IGCM_date_ConvertGregorianDateToJulian #D-* Purpose: Convert yyyymmdd to yyyyddd #D-* Usage: IGCM_date_ConvertGregorianDateToJulian 19980429 #D- if there is no command line argument, then assume that the date #D- is coming in on a pipe and use read to collect it #D- function IGCM_date_ConvertGregorianDateToJulian { IGCM_debug_PushStack "IGCM_date_ConvertGregorianDateToJulian" $@ # IGCM_date_ConvertGregorianDateToJulian converts yyyymmdd to yyyyddd # usage IGCM_date_ConvertGregorianDateToJulian 19980429 typeset dt y m d x jul # if there is no command line argument, then assume that the date # is coming in on a pipe and use read to collect it if [ $# = 0 ] then read dt else dt=$( IGCM_date_SupressZeros $1 ) fi # break the yyyymmdd into separate parts for year, month and day y=$(( $dt / 10000 )) m=$(( ( $dt % 10000 ) / 100 )) d=$(( ( $dt % 100 ) )) # add the days in each month up to (but not including the month itself) # into the days. For example if the date is 19980203 then extract the # number of days in January and add it to 03. If the date is June 14, 1998 # then extract the number of days in January, February, March, April and May # and add them to 14. x=1 while [ $x -lt $m ] do IGCM_date_DaysInMonth $y $x md d=$(( $d + $md )) x=$(( $x + 1 )) done # combine the year and day back together again and you have the julian date. jul=$(( ( $y * 1000 ) + $d )) echo $jul IGCM_debug_PopStack "IGCM_date_ConvertGregorianDateToJulian" } #D-#================================================================== #D-function IGCM_date_ConvertJulianDateToGregorian() #D-* Purpose: Convert yyyyddd to yyyymmdd #D-* Usage: IGCM_date_ConvertJulianDateToGregorian 1998213 #D- if there is no command line argument, assume one is being #D- piped in and read it #D- function IGCM_date_ConvertJulianDateToGregorian { IGCM_debug_PushStack "IGCM_date_ConvertJulianDateToGregorian" $@ # IGCM_date_ConvertJulianDateToGregorian converts yyyyddd to yyyymmdd # usage IGCM_date_ConvertJulianDateToGregorian 1998213 typeset dt y m d grg # if there is no command line argument, assume one is being # piped in and read it if [ X$1 = X ] then read dt else dt=$1 fi # break apart the year and the days y=$(( $dt / 1000 )) d=$(( $dt % 1000 )) # subtract the number of days in each month starting from 1 # from the days in the date. When the day goes below 1, you # have the current month. Add back the number of days in the # month to get the correct day of the month m=1 while [ $d -gt 0 ] do IGCM_date_DaysInMonth $y $m md d=$(( $d - $md )) m=$(( $m + 1 )) done d=$(( $d + $md )) # the loop steps one past the correct month, so back up the month m=$(( $m - 1 )) # assemble the results into a gregorian date grg=$(( ( $y * 10000 ) + ( $m * 100 ) + $d )) echo $( IGCM_date_GregorianDigit $grg ) IGCM_debug_PopStack "IGCM_date_ConvertJulianDateToGregorian" } #D-#================================================================== #D-function IGCM_date_AddDaysToJulianDate #D-* Purpose: Add days to a yyyyddd formatted date #D-* Usage: IGCM_date_AddDaysToJulianDate 1998312 { ,-}14 #D- Read the difference from the command lines #D- and the date from the command line, or standard input #D- function IGCM_date_AddDaysToJulianDate { IGCM_debug_PushStack "IGCM_date_AddDaysToJulianDate" $@ # IGCM_date_AddDaysToJulianDate adds days to a yyyyddd formatted date # usage IGCM_date_AddDaysToJulianDate 1998312 { ,-}14 typeset dif yd d y # Read the difference from the command lines # and the date from the command line, or standard input if [ X$2 = X ] then dif=$1 read yd else yd=$1 dif=$2 fi # Break it into pieces d=$(( $yd % 1000 )) y=$(( $yd / 1000 )) # Add the number of days (if days is negative this results is # a subtraction) d=$(( $d + $dif )) # Extract the days in the year IGCM_date_DaysInYear $y diy # If the calculated day exceeds the days in the year, # add one year to the year and subtract the days in the year from the # calculated days. Extract the days in the new year and repeat # test until you end up with a day number that falls within the # days of the year while [ $d -gt $diy ] do d=$(( $d - $diy )) y=$(( $y + 1 )) IGCM_date_DaysInYear $y diy done # This is the reverse process. If the calculated number of days # is less than 1, move back one year. Extract # the days in this year and add the days in the year # loop on this test until you end up with a number that # falls within the days of the year while [ $d -lt 1 ] do y=$(( $y - 1 )) IGCM_date_DaysInYear $y diy d=$(( $d + $diy )) done # put the year and day back together and echo the result yd=$(( ( $y * 1000 ) + $d )) echo $yd IGCM_debug_PopStack "IGCM_date_AddDaysToJulianDate" } #D-#================================================================== #D-function IGCM_date_AddDaysToGregorianDate #D-* Purpose: Add days to a yyyymmdd formatted date #D-* Usage: IGCM_date_AddDaysToGregorianDate 19980312 { ,-}14 #D- Read the difference from the command lines #D- and the date from the command line, or standard input #D- function IGCM_date_AddDaysToGregorianDate { IGCM_debug_PushStack "IGCM_date_AddDaysToGregorianDate" $@ # IGCM_date_AddDaysToGregorianDate adds days to a yyyymmdd formatted date # usage IGCM_date_AddDaysToGregorianDate 19980312 { ,-}14 # Read the difference from the command lines # and the date from the command line, or standard input typeset dif yd tmp res if [ X$2 = X ] then dif=$1 read yd else yd=$1 dif=$2 fi tmp=$( IGCM_date_ConvertGregorianDateToJulian $yd ) tmp=$( IGCM_date_AddDaysToJulianDate $tmp $dif ) res=$( IGCM_date_ConvertJulianDateToGregorian $tmp ) echo $res IGCM_debug_PopStack "IGCM_date_AddDaysToGregorianDate" } #D-#================================================================== #D-function IGCM_date_DaysBetweenJulianDate #D-* Purpose: Calculate the days difference between two dates and reports #D- the number days as jul1 - jul2 #D-* Usage: IGCM_date_DaysBetweenJulianDate jul1 jul2 #D- where julian date is in the form yyyyddd #D- function IGCM_date_DaysBetweenJulianDate { IGCM_debug_PushStack "IGCM_date_DaysBetweenJulianDate" $@ # calculates the days difference between two dates and reports # the number days as jul1 - jul2 # usage IGCM_date_DaysBetweenJulianDate jul1 jul2 # where julian date is in the form yyyyddd usage () { echo "Usage:" echo " IGCM_date_DaysBetweenJulianDate jul1 jul2" echo "" echo " Calculates the day difference between" echo " two julian dates (jul1 -jul2)" echo " where a julian date is in the form of yyyyddd." } if [ $# -lt 2 ]; then usage IGCM_debug_Exit "IGCM_date_DaysBetweenJulianDate" fi typeset jul1 jul2 yyyy1 yyyy2 ddd1 ddd2 res # This process subtracts arg2 from arg1. If arg2 is larger # then reverse the arguments. The calculations are done, and # then the sign is reversed if [ $1 -lt $2 ] then jul1=$2 jul2=$1 elif [ $1 -gt $2 ] then jul1=$1 jul2=$2 else echo 0 IGCM_debug_PopStack "IGCM_date_DaysBetweenJulianDate" return fi # Break the dates in to year and day portions yyyy1=$(( $jul1 / 1000 )) yyyy2=$(( $jul2 / 1000 )) ddd1=$(( $jul1 % 1000 )) ddd2=$(( $jul2 % 1000 )) # Subtract days res=$(( $ddd1 - $ddd2 )) # Then add days in year until year2 matches year1 case ${config_UserChoices_CalendarType} in 360d|360_day) res=$(( ( ( $yyyy1 - $yyyy2 ) * 360 ) + $res )) ;; noleap|365_day) res=$(( ( ( $yyyy1 - $yyyy2 ) * 365 ) + $res )) ;; all_leap|366_day) res=$(( ( ( $yyyy1 - $yyyy2 ) * 366 ) + $res )) ;; leap|gregorian|standard) while [ $yyyy2 -lt $yyyy1 ] do IGCM_date_DaysInYear $yyyy2 diy res=$(( $res + $diy )) yyyy2=$(( $yyyy2 + 1 )) done ;; esac # if argument 2 was larger than argument 1 then # the arguments were reversed before calculating # adjust by reversing the sign if [ $1 -lt $2 ] then res=$(( $res * -1 )) fi # and output the results echo $res IGCM_debug_PopStack "IGCM_date_DaysBetweenJulianDate" } #D-#================================================================== #D-function IGCM_date_DaysBetweenGregorianDate () #D-* Purpose: Calculate the days difference between two dates and reports #D- the number days as grg1 - grg2 #D-* Usage: IGCM_date_DaysBetweenGregorianDate grg1 grg2 #D- where gregorian date is in the form yyyymmdd #D- function IGCM_date_DaysBetweenGregorianDate { IGCM_debug_PushStack "IGCM_date_DaysBetweenGregorianDate" $@ # calculates the days difference between two dates and reports # the number days as grg1 - grg2 # usage IGCM_date_DaysBetweenGregorianDate grg1 grg2 # where gregorian date is in the form yyyymmdd usage () { echo "Usage:" echo " IGCM_date_DaysBetweenGregorianDate grg1 grg2" echo "" echo " Calculate day difference between" echo " two gregorian dates (grg1 - grg2)" echo " where a gregorian date is in the form of yyyymmdd." } if [ $# -lt 2 ]; then usage IGCM_debug_Exit "IGCM_date_DaysBetweenGregorianDate" fi typeset grg1 grg2 jul1 jul2 res # convert each date to julian grg1=$1 grg2=$2 jul1=$( IGCM_date_ConvertGregorianDateToJulian $grg1 ) jul2=$( IGCM_date_ConvertGregorianDateToJulian $grg2 ) if [ $jul1 -ne $jul2 ]; then # calculate the answer using IGCM_date_DaysBetweenJulianDate res=$( IGCM_date_DaysBetweenJulianDate $jul1 $jul2 ) # and output the results echo $res else echo 0 fi IGCM_debug_PopStack "IGCM_date_DaysBetweenGregorianDate" } #D-#================================================================== #D-function IGCM_date_DaysSinceJC () #D-* Purpose: Calculate the days difference between a date and 00010101 #D-* Usage: IGCM_date_DaysSinceJC grg1 #D- where gregorian date is in the form yyyymmdd #D- function IGCM_date_DaysSinceJC { IGCM_debug_PushStack "IGCM_date_DaysSinceJC" $@ # calculates the days difference between a date and 00010101 # usage IGCM_date_DaysSinceJC grg1 # where gregorian date is in the form yyyymmdd usage () { echo "Usage:" echo " IGCM_date_DaysSinceJC grg1" echo "" echo " Calculate day difference between" echo " a gregorian date and 00010101" echo " where a gregorian date is in the form of yyyymmdd." } if [ $# -lt 1 ]; then usage IGCM_debug_Exit "IGCM_date_DaysSinceJC" fi typeset aux num if [ ${1} -lt 5000000 ]; then case ${config_UserChoices_CalendarType} in 360d|360_day) aux=-360;; noleap|365_day) aux=-365;; all_leap|366_day) aux=-366;; leap|gregorian|standard) aux=-366;; esac num=101 elif [ ${1} -lt 15000000 ]; then # To save CPU type we use auxiliary value # which is number of days since JC and 10000101 case ${config_UserChoices_CalendarType} in 360d|360_day) aux=359640;; noleap|365_day) aux=364635;; all_leap|366_day) aux=365634;; leap|gregorian|standard) aux=364877;; esac num=10000101 else # To save CPU type we use auxiliary value # which is number of days since JC and 19000101 case ${config_UserChoices_CalendarType} in 360d|360_day) aux=683640;; noleap|365_day) aux=693135;; all_leap|366_day) aux=695034;; leap|gregorian|standard) aux=693595;; esac num=19000101 fi echo $(( $( IGCM_date_DaysBetweenGregorianDate $1 ${num} ) + $aux )) IGCM_debug_PopStack "IGCM_date_DaysSinceJC" } #D-#================================================================== #D-function IGCM_date_DaysInPreviousPeriod () #D-* Purpose: Give the numbers of days during the previous prd1 period from grg1 date # OLD create_ts_begin_date #D-* Usage: IGCM_date_DaysInPreviousPeriod grg1 prd1 [end] #D- where grg1 gregorian date is in the form yyyymmdd #D- where prd1 period is in the form N[Yy], N[Mm], N[Dd]. N integer #D- where [end] is an optionnal keyword to specify grg1 is the end of prd1 #D- function IGCM_date_DaysInPreviousPeriod { IGCM_debug_PushStack "IGCM_date_DaysInPreviousPeriod" $@ typeset Length Period treatedYear PeriodLengthInYears PeriodLengthInMonths year0 i Period=${2} case ${Period} in *Y|*y) PeriodLengthInYears=$( echo ${Period} | awk -F '[yY]' '{print $1}' ) IGCM_date_GetYearMonth ${1} year month year=$( IGCM_date_SupressZeros ${year} ) if [ X${3} = Xend ] ; then (( year = year - PeriodLengthInYears + 1)) fi Length=0 i=0 until [ $i -ge $PeriodLengthInYears ] ; do (( Length = Length + $( IGCM_date_DaysInYear $(( year + i )) ) )) (( i = i + 1 )) done ;; *M|*m) PeriodLengthInMonths=$( echo ${Period} | awk -F '[mM]' '{print $1}' ) IGCM_date_GetYearMonth ${1} year month year=$( IGCM_date_SupressZeros ${year} ) if [ X${3} = Xend ] ; then (( month = month - PeriodLengthInMonths + 1 )) fi year0=year if [ $month -le 0 ] ; then (( month = month + 12 )) year=$( printf "%04i\n" $(( year - 1 )) ) fi month=$( printf "%02i\n" ${month} ) treatedYear=0 Length=0 i=0 for ((i = 0; i < ${PeriodLengthInMonths}; i += 1)) ; do (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month + i - 12 * treatedYear )) ) )) if [ $(( month + i )) -ge $(( 12 * (treatedYear + 1) )) ] ; then (( year = year0 + 1 )) (( treatedYear = treatedYear + 1 )) fi done ;; *D|*d) Length=$( echo ${Period} | sed -e "s/[dD]//" ) ;; *) IGCM_debug_Exit "IGCM_date_DaysInPreviousPeriod " ${Period} " invalid PeriodLength : choose in *Y, *M, *D." IGCM_debug_Verif_Exit ;; esac echo ${Length} IGCM_debug_PopStack "IGCM_date_DaysInPreviousPeriod" } #D-#================================================================== #D-function IGCM_date_DaysInNextPeriod () #D-* Purpose: Give the numbers of days during the next prd1 period from grg1 date # OLD create_ts_next_date #D-* Usage: IGCM_date_DaysInNextPeriod grg1 prd1 #D- where grg1 gregorian date is in the form yyyymmdd #D- where prd1 period is in the form N[Yy], N[Mm], N[Dd]. N integer #D- function IGCM_date_DaysInNextPeriod { IGCM_debug_PushStack "IGCM_date_DaysInNextPeriod" $@ typeset Length Period treatedYear PeriodLengthInYears PeriodLengthInMonths year0 month0 i Period=${2} case ${Period} in *Y|*y) PeriodLengthInYears=$( echo ${Period} | awk -F '[yY]' '{print $1}' ) IGCM_date_GetYearMonth ${1} year month year=$( IGCM_date_SupressZeros ${year} ) Length=0 i=0 until [ $i -ge $PeriodLengthInYears ] ; do (( Length = Length + $( IGCM_date_DaysInYear $(( year + i + 1 )) ) )) (( i = i + 1 )) done ;; *M|*m) PeriodLengthInMonths=$( echo ${Period} | awk -F '[mM]' '{print $1}' ) IGCM_date_GetYearMonth ${1} year month year=$( IGCM_date_SupressZeros ${year} ) year0=year if [ $(( month + 1 )) -lt 13 ] ; then month0=$(( month + 1 )) else month0=$(( month + 1 - 12 )) (( year = year0 + 1 )) fi treatedYear=0 Length=0 i=0 for ((i = 0; i < ${PeriodLengthInMonths}; i += 1)) ; do (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month0 + i - 12 * treatedYear )) ) )) if [ $(( month0 + i )) -ge $(( 12 * (treatedYear + 1) )) ] ; then (( year = year0 + 1 )) (( treatedYear = treatedYear + 1 )) fi done ;; *D|*d) Length=$( echo ${Period} | sed -e "s/[dD]//" ) ;; *) IGCM_debug_Exit "IGCM_date_DaysInNextPeriod " ${Period} " invalid PeriodLength : choose in *Y, *M, *D." IGCM_debug_Verif_Exit ;; esac echo ${Length} IGCM_debug_PopStack "IGCM_date_DaysInNextPeriod" } #D-#================================================================== #D-function IGCM_date_DaysInCurrentPeriod () #D-* Purpose: Give the numbers of days during the Current prd1 period from grg1 date #D-* Usage: IGCM_date_DaysInCurrentPeriod grg1 prd1 #D- where grg1 gregorian date is in the form yyyymmdd #D- where prd1 period is in the form N[Yy], N[Mm], N[Dd]. N integer #D- function IGCM_date_DaysInCurrentPeriod { IGCM_debug_PushStack "IGCM_date_DaysInCurrentPeriod" $@ typeset Length Period treatedYear PeriodLengthInYears PeriodLengthInMonths year0 i Period=${2} case ${Period} in *Y|*y) PeriodLengthInYears=$( echo ${Period} | awk -F '[yY]' '{print $1}' ) IGCM_date_GetYearMonth ${1} year month year=$( IGCM_date_SupressZeros ${year} ) month=$( IGCM_date_SupressZeros ${month} ) Length=0 # if starting after february and using leap calendar # we need to add the number of days of the next year (potentially a leap year) if [ ${month} -gt 2 ] ; then (( year = year + 1 )) fi i=0 until [ $i -ge $PeriodLengthInYears ] ; do (( Length = Length + $( IGCM_date_DaysInYear $(( year + i )) ) )) (( i = i + 1 )) done ;; *M|*m) PeriodLengthInMonths=$( echo ${Period} | awk -F '[mM]' '{print $1}' ) IGCM_date_GetYearMonth ${1} year month year=$( IGCM_date_SupressZeros ${year} ) year0=year treatedYear=0 Length=0 i=0 for ((i = 0; i < ${PeriodLengthInMonths}; i += 1)) ; do (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month + i - 12 * treatedYear )) ) )) if [ $(( month + i )) -ge $(( 12 * (treatedYear + 1) )) ] ; then (( year = year0 + 1 )) (( treatedYear = treatedYear + 1 )) fi done ;; *D|*d) Length=$( echo ${Period} | sed -e "s/[dD]//" ) ;; *) IGCM_debug_Exit "IGCM_date_DaysInCurrentPeriod " ${Period} " invalid PeriodLength : choose in *Y, *M, *D." IGCM_debug_Verif_Exit ;; esac echo ${Length} IGCM_debug_PopStack "IGCM_date_DaysInCurrentPeriod" } #D-#================================================================== #D-function IGCM_date_Check #D- * Purpose: Check the present file by comparison with a reference file function IGCM_date_Check { #--------------------- if [ ! -n "${libIGCM}" ] ; then echo "Check libIGCM_date ...........................................[ FAILED ]" echo "--Error--> libIGCM variable is not defined" IGCM_debug_Exit "IGCM_date_Check" fi #--------------------- whence -v gawk > /dev/null 2>&1 if [ ! $? -eq 0 ] ; then echo "Check libIGCM_date ...........................................[ FAILED ]" echo "--Error--> gawk command is not defined" IGCM_debug_Exit "IGCM_date_Check" fi #--------------------- # No need to remove timestamps here diff ${libIGCM}/libIGCM_date/IGCM_date_Test${dY}.ref <(${libIGCM}/libIGCM_date/IGCM_date_Test.ksh) > /dev/null 2>&1 status=$? if [ ${status} -eq 0 ] ; then echo "Check libIGCM_date ...............................................[ OK ]" else echo "Check libIGCM_date ...........................................[ FAILED ]" echo "--Error--> Execution of ${libIGCM}/libIGCM_date/IGCM_date_Test.ksh" echo " has produced the file IGCM_date_Test.ref.failed" echo " Please analyse differences with the reference file by typing:" echo " diff IGCM_date_Test.ref.failed ${libIGCM}/libIGCM_date/IGCM_date_Test${dY}.ref" echo " Report errors to the author: Sebastien.Denvil@ipsl.jussieu.fr" diff ${libIGCM}/libIGCM_date/IGCM_date_Test${dY}.ref <(${libIGCM}/libIGCM_date/IGCM_date_Test.ksh) IGCM_debug_Exit "IGCM_date_Check" fi } + dY=4 + typeset -r dY + pY=8 + typeset -r pY #------- . ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh + . /ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM/libIGCM_sys/libIGCM_sys.ksh #!/bin/ksh #************************************************************** # Author: Martial Mancip # Contact: Martial.Mancip__at__ipsl.jussieu.fr # $Revision:: 1432 $ Revision of last commit # $Author:: jgipsl $ Author of last commit # $Date:: 2018-03-30 15:07:44 +0200 (Fri, 30 Mar 2018) $ Date of last commit # IPSL (2006) # This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC # #************************************************************** # bypass specific internationalization (for gawk) export LC_ALL="C" # By default, all libIGCM_sys save functions will protect output datas (RUN execution mode) # other values : DEB(ug), DEV(elopment). JobType=${JobType:=RUN} #==================================================== # set PackDefault false by default PackDefault=false #==================================================== # set BigBrother false by default BigBrother=${BigBrother:=false} #==================================================== # set BigBrother channel (AMQP or MAIL) # only MAIL working at present due to firewall constraint BigBrotherChannel=MAIL # no need to be so verbose in checking mode if [ ! X${TaskType} = Xchecking ] ; then echo echo "====================================================" echo "Where do we run ?" $( hostname ) uname -a echo "====================================================" echo fi if [ X${JobType} = XDEB ] ; then echo "DEBUG mode : activation of 'set -vx' mode." set -vx DEBUG_debug=true DEBUG_sys=true fi #==================================================== case $( hostname -s ) in ada*) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for ada Intel X-64." CENTER=IDRIS SYSTEM=ada . ${libIGCM}/libIGCM_sys/libIGCM_sys_ada.ksh;; curie*) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for curie Intel X-64." CENTER=TGCC SYSTEM=curie . ${libIGCM}/libIGCM_sys/libIGCM_sys_curie.ksh;; irene*) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for irene Intel X-64 at TGCC" CENTER=TGCC SYSTEM=irene . ${libIGCM}/libIGCM_sys/libIGCM_sys_irene.ksh;; airain*) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for airain Intel X-64." CENTER=TGCC SYSTEM=curie . ${libIGCM}/libIGCM_sys/libIGCM_sys_curie.ksh;; asterix*|obelix*) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for obelix or asterix." CENTER=LSCE SYSTEM=lxiv8 . ${libIGCM}/libIGCM_sys/libIGCM_sys_obelix.ksh;; ciclad*) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for ciclad for running at ciclad." CENTER=IPSL-ciclad SYSTEM=ifort_CICLAD . ${libIGCM}/libIGCM_sys/libIGCM_sys_ciclad.ksh;; camelot*|loholt1*|loholt2*|merlin*) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for ciclad for running at climserv." CENTER=IPSL-climserv SYSTEM=ifort_CICLAD . ${libIGCM}/libIGCM_sys/libIGCM_sys_ciclad.ksh;; iitm*) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for iitm." CENTER=IITM SYSTEM=iitm . ${libIGCM}/libIGCM_sys/libIGCM_sys_iitm.ksh;; *) [ ! X${TaskType} = Xchecking ] && echo "Source machine dependent settings for a default machine." CENTER=DEFAULT SYSTEM=default . ${libIGCM}/libIGCM_sys/libIGCM_sys_default.ksh;; esac # Set default umask (umask is 0027 on some machines : CCRT machine at least) umask 0022 #D--------------------------------------------------------------------== #D- #D- Define IGCM_sys functions that are common on every systems #D- #D--------------------------------------------------------------------== #D-#================================================== #D-function IGCM_sys_RshMaster #D-* Purpose: Connection to frontend machine. #D-* Examples: #D- function IGCM_sys_RshMaster { IGCM_debug_PushStack "IGCM_sys_RshMaster" $@ OUTCOMMAND_PATH=${OUTCOMMAND_PATH} /bin/ksh <<-EOF export libIGCM=${libIGCM} export DEBUG_debug=${DEBUG_debug} . ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh . ${libIGCM}/libIGCM_card/libIGCM_card.ksh ${@} EOF if [ $? -gt 0 ] ; then echo "IGCM_sys_RshMaster : erreur." IGCM_debug_Exit "IGCM_sys_RshMaster" fi IGCM_debug_PopStack "IGCM_sys_RshMaster" } #D-#================================================== #D-function IGCM_sys_RshPost #D-* Purpose: Post-process rsh command #D-* Examples: #D- function IGCM_sys_RshPost { IGCM_debug_PushStack "IGCM_sys_RshPost" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_RshPost :" $@ fi # keep standard input (stdin) for the loop onto temporary file cat >${OUTCOMMAND_PATH}/tmp_IGCM_sys_RshPost_$$_${LOGNAME} OUTCOMMAND_PATH=${OUTCOMMAND_PATH} /bin/ksh <${OUTCOMMAND_PATH}/tmp_IGCM_sys_RshPost_$$_${LOGNAME} if [ $? -gt 0 ] ; then echo "IGCM_sys_RshPost : erreur." IGCM_debug_Exit "IGCM_sys_RshPost" fi # delete temporary file \rm ${OUTCOMMAND_PATH}/tmp_IGCM_sys_RshPost_$$_${LOGNAME} # ============ FRONTEND END ============ # # ============ CESIUM START ============ # # typeset NB_ESSAI DELAI status i # if [ "X$( grep rebuild_from tmp_IGCM_sys_RshPost_$$ )" != "X" ] ; then # #little hack so that rebuild submission is done on titane not an cesium # # libIGCM_POST_sed=$( echo $libIGCM_POST | sed 's/\//\\\//g' ) # POST_DIR_sed=$( echo ${POST_DIR} | sed 's/\//\\\//g' ) # sed "s/IGCM_sys_QsubPost/IGCM_sys_Qsub/g" tmp_IGCM_sys_RshPost_$$ > tmp.txt # sed "s/ rebuild_fromWorkdir/ ${libIGCM_POST_sed}\/rebuild_fromWorkdir.job/g" tmp.txt > tmp_IGCM_sys_RshPost_$$ # sed "s/ rebuild_fromArchive/ ${libIGCM_POST_sed}\/rebuild_fromArchive.job/g" tmp_IGCM_sys_RshPost_$$ > tmp.txt # sed "s/Script_Post_Output=/Script_Output=${POST_DIR_sed}\//g" tmp.txt > tmp_IGCM_sys_RshPost_$$ # \mv tmp.txt tmp_IGCM_sys_RshPost_$$ # # echo cat tmp_IGCM_sys_RshPost_$$ AFTER # cat tmp_IGCM_sys_RshPost_$$ # # /bin/ksh > mail.txt ; done < ${libIGCM}/libIGCM_sys/${mailText} if [ ! -z ${config_UserChoices_MailName} ] ; then mail -s "${config_UserChoices_JobName} ${status}" ${config_UserChoices_MailName} < mail.txt elif [ -f ~/.forward ] ; then mail -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < mail.txt else mail -s "${config_UserChoices_JobName} ${status}" ${USER} < mail.txt fi sleep 10 rm -f mail.txt IGCM_debug_PopStack "IGCM_sys_SendMail" } #D-#================================================== #D-function IGCM_sys_Mkdir #D-* Purpose: Master locale mkdir command #D-* Examples: #D- function IGCM_sys_Mkdir { IGCM_debug_PushStack "IGCM_sys_Mkdir" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Mkdir :" $@ fi if [ ! -d ${1} ]; then \mkdir -p $1 if [ $? -gt 0 ] ; then echo "IGCM_sys_Mkdir : erreur." IGCM_debug_Exit "IGCM_sys_Mkdir" fi fi # vérification : if [ ! -d ${1} ] ; then echo "IGCM_sys_Mkdir : erreur." IGCM_debug_Exit "IGCM_sys_Mkdir" fi IGCM_debug_PopStack "IGCM_sys_Mkdir" } #D-#================================================== #D-function IGCM_sys_MkdirWork #D-* Purpose: Mkdir on Work #D-* Examples: #D- function IGCM_sys_MkdirWork { IGCM_debug_PushStack "IGCM_sys_MkdirWork" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_MkdirWork :" $@ fi #- creation de repertoire sur le serveur fichier if [ ! -d ${1} ]; then \mkdir -p $1 if [ $? -gt 0 ] ; then echo "IGCM_sys_MkdirWork : erreur." IGCM_debug_Exit "IGCM_sys_MkdirWork" fi fi IGCM_debug_PopStack "IGCM_sys_MkdirWork" } #D-#================================================== #D-function IGCM_sys_Cd #D-* Purpose: master cd command #D-* Examples: #D- function IGCM_sys_Cd { IGCM_debug_PushStack "IGCM_sys_Cd" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Cd :" $@ fi \cd $1 if [ $? -gt 0 ] ; then echo "IGCM_sys_Cd : erreur." IGCM_debug_Exit "IGCM_sys_Cd" fi IGCM_debug_PopStack "IGCM_sys_Cd" } #D-#================================================== #D-function IGCM_sys_Chmod #D-* Purpose: Chmod #D-* Examples: #D- function IGCM_sys_Chmod { IGCM_debug_PushStack "IGCM_sys_Chmod" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Chmod :" $@ fi \chmod $@ if [ $? -gt 0 ] ; then echo "IGCM_sys_Chmod : erreur." IGCM_debug_Exit "IGCM_sys_Chmod" fi IGCM_debug_PopStack "IGCM_sys_Chmod" } #D-#================================================== #D-function IGCM_sys_FileSize #D-* Purpose: Filesize #D-* Examples: #D- function IGCM_sys_FileSize { IGCM_debug_PushStack "IGCM_sys_FileSize" $@ typeset sizeF set +A sizeF -- $( ls -la ${1} ) if [ $? -gt 0 ] ; then IGCM_debug_Exit "IGCM_sys_FileSize" fi eval ${2}=${sizeF[4]} IGCM_debug_PopStack "IGCM_sys_FileSize" } #D-#================================================== #D-function IGCM_sys_TestDir #D-* Purpose: Test Directory that must exists #D-* Examples: #D- function IGCM_sys_TestDir { IGCM_debug_PushStack "IGCM_sys_TestDir" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_TestDir :" $@ fi typeset ExistFlag ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) IGCM_debug_PopStack "IGCM_sys_TestDir" return ${ExistFlag} } #D-#================================================== #D-function IGCM_sys_TestFileBuffer #D-* Purpose: Test file that must NOT EXISTS on Buffer #D-* Examples: #D- function IGCM_sys_TestFileBuffer { IGCM_debug_PushStack "IGCM_sys_TestFileBuffer" $@ typeset ExistFlag ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) IGCM_debug_PopStack "IGCM_sys_TestFileBuffer" return ${ExistFlag} } #D-#================================================== #D-function IGCM_sys_CountFileBuffer #D-* Purpose: Count files on Scratch filesystem #D-* Examples: #D- function IGCM_sys_CountFileBuffer { IGCM_debug_PushStack "IGCM_sys_CountFileBuffer" $@ ls ${@} 2>/dev/null | wc -l if [ $? -gt 0 ] ; then echo "IGCM_sys_CountFileBuffer : erreur." fi IGCM_debug_PopStack "IGCM_sys_CountFileBuffer" } #D-#================================================== #D-function IGCM_sys_Tar #D-* Purpose: master tar command #D-* Examples: #D- function IGCM_sys_Tar { IGCM_debug_PushStack "IGCM_sys_Tar" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Tar :" $@ fi \tar cf $@ if [ $? -gt 0 ] ; then echo "IGCM_sys_Tar : erreur." IGCM_debug_Exit "IGCM_sys_Tar" fi IGCM_debug_PopStack "IGCM_sys_Tar" } #D-#================================================== #D-function IGCM_sys_UnTar #D-* Purpose: master un-tar command #D-* Examples: #D- function IGCM_sys_UnTar { IGCM_debug_PushStack "IGCM_sys_UnTar" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_UnTar :" $@ fi \tar xvf $1 if [ $? -gt 0 ] ; then echo "IGCM_sys_UnTar : erreur." IGCM_debug_Exit "IGCM_sys_UnTar" fi IGCM_debug_PopStack "IGCM_sys_UnTar" } #D-************************* #D- File transfer functions #D-************************* #D- #D-#================================================== #D-function IGCM_sys_Rsync_out #D-* Purpose: treat return val of rsync #D-* Examples: IGCM_sys_Rsync_out out_RET_rsync #D- Error values and explanations can depend on your system version. function IGCM_sys_Rsync_out { IGCM_debug_PushStack "IGCM_sys_Rsync_out" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_UnTar :" $@ fi typeset status status=$1 if [ ! $status ] ; then IGCM_debug_Print 1 "IGCM_sys_Rsync_out need an argument" IGCM_debug_PopStack "IGCM_sys_Rsync_out" return fi case $status in 0) ;; 1) IGCM_debug_Print 1 "rsync error RERR_SYNTAX : Syntax or usage error";; 2) IGCM_debug_Print 1 "rsync error RERR_PROTOCOL : Protocol incompatibility";; 3) IGCM_debug_Print 1 "rsync error RERR_FILESELECT : Errors selecting input/output files, dirs";; 4) IGCM_debug_Print 1 "rsync error RERR_UNSUPPORTED : Requested action not supported." IGCM_debug_Print 1 "An attempt was made to manipulate 64-bit files on a platform that cannot support them" IGCM_debug_Print 1 "Or an option was specified that is supported by the client and not by the server.";; 5) IGCM_debug_Print 1 "rsync error : Error starting client-server protocol";; 10) IGCM_debug_Print 1 "rsync error RERR_SOCKETIO : Error in socket I/O";; 11) IGCM_debug_Print 1 "rsync error RERR_FILEIO: Error in file I/O";; 12) IGCM_debug_Print 1 "rsync error RERR_STREAMIO : Error in rsync protocol data stream";; 13) IGCM_debug_Print 1 "rsync error RERR_MESSAGEIO : Errors with program diagnostics";; 14) IGCM_debug_Print 1 "rsync error RERR_IPC : Error in IPC code";; 20) IGCM_debug_Print 1 "rsync error RERR_SIGNAL : Received SIGUSR1 or SIGINT";; 21) IGCM_debug_Print 1 "rsync error RERR_WAITCHILD : Some error returned by waitpid()";; 22) IGCM_debug_Print 1 "rsync error RERR_MALLOC : Error allocating core memory buffers";; 23) IGCM_debug_Print 1 "rsync error : Partial transfer due to error";; 24) IGCM_debug_Print 1 "rsync error : Partial transfer due to vanished source files";; 30) IGCM_debug_Print 1 "rsync error : Timeout in data send/receive";; *) IGCM_debug_Print 1 "rsync error : return code of rsync unknown :" $status;; esac IGCM_debug_PopStack "IGCM_sys_Rsync_out" } #D-#================================================== #D-function IGCM_sys_Miror_libIGCM #D-* Purpose: Mirror libIGCM PATH and lib to frontend #D-* Examples: #D- function IGCM_sys_Mirror_libIGCM { IGCM_debug_PushStack "IGCM_sys_Mirror_libIGCM" if ( $DEBUG_sys ) ; then echo "IGCM_sys_Mirror_libIGCM" fi typeset status mkdir -p ${HOME}/MIRROR/${PATHlibIGCM} echo ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Mirror_libIGCM Warning : no libIGCM on frontend." cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi IGCM_debug_PopStack "IGCM_sys_Mirror_libIGCM" } #D-#================================================== #D-function IGCM_sys_Cp #D-* Purpose: generic cp #D-* Examples: #D- function IGCM_sys_Cp { IGCM_debug_PushStack "IGCM_sys_Cp" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Cp :" $@ fi typeset status echo cp $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 \cp $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Cp : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Cp" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi IGCM_debug_PopStack "IGCM_sys_Cp" } #D-#================================================== #D-function IGCM_sys_Rm #D-* Purpose: generic rm #D-* Examples: #D- function IGCM_sys_Rm { IGCM_debug_PushStack "IGCM_sys_Rm" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Rm :" $@ fi typeset status echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Rm : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Rm" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi IGCM_debug_PopStack "IGCM_sys_Rm" } #D-#================================================== #D-function IGCM_sys_Mv #D-* Purpose: generic move #D-* Examples: #D- function IGCM_sys_Mv { IGCM_debug_PushStack "IGCM_sys_Mv" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Mv :" $@ fi if [ $DRYRUN = 0 ]; then typeset status echo mv $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 \mv $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Mv : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Mv" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi IGCM_debug_PopStack "IGCM_sys_Mv" } #D-#================================================== #D-function IGCM_sys_Get_Master #D-* Purpose: Copy a complete directory from MASTER filesystem #D-* Examples: #D- function IGCM_sys_Get_Master { IGCM_debug_PushStack "IGCM_sys_Get_Master" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Get_Master :" $@ fi if [ $DRYRUN = 0 ]; then if ( [ ! -d ${1} ] && [ ! -f ${1} ] ) ; then echo "WARNING : IGCM_sys_Get_Master ${1} DOES NOT EXIST ." IGCM_debug_PopStack "IGCM_sys_Get_Master" return fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do \cp -urL $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ]; then IGCM_debug_Print 2 "IGCM_sys_Get_Master : cp failed error code ${status} ${i}/${NB_ESSAI}" IGCM_debug_Print 2 "IGCM_sys_Get_Master : sleep ${DELAI} seconds and try again." sleep $DELAI else break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Get_Master : error." cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Get_Master" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi IGCM_debug_PopStack "IGCM_sys_Get_Master" } #==================================================== #- Call IGCM_sys_Mirror_libIGCM now ! if ( $MirrorlibIGCM ) ; then IGCM_sys_Mirror_libIGCM fi #D-#================================================== #D-function IGCM_sys_PutBuffer_Rest #D-* Purpose: Put computied restarts on ${SCRATCHDIR}. #D- File and target directory must exist. #D-* Examples: #D- function IGCM_sys_PutBuffer_Rest { IGCM_debug_PushStack "IGCM_sys_PutBuffer_Rest" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_PutBuffer_Rest :" $@ fi if [ $DRYRUN = 0 ]; then if [ ! -f ${1} ] ; then echo "ERROR : IGCM_sys_PutBuffer_Rest ${1} DOES NOT EXIST ." IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest" fi typeset status # # USUAL WAY \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then echo "IGCM_sys_PutBuffer_Rest : error code ${status}" [ -f ${2} ] && ls -l ${2} [ -f ${2}/${1} ] && ls -l ${2}/${1} cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest" else if [ X${JobType} = XRUN ] ; then [ -f ${2} ] && IGCM_sys_Chmod 444 ${2} [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1} fi \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi IGCM_debug_PopStack "IGCM_sys_PutBuffer_Rest" } #D-#================================================== #D-function IGCM_sys_PrepareTaredRestart #D-* Purpose: Prepare tared restart to be access by computing job. #D-* Examples: #D- function IGCM_sys_PrepareTaredRestart { IGCM_debug_PushStack "IGCM_sys_PrepareTaredRestart" $@ if [ $DRYRUN = 0 ]; then [ ! -f $( basename $1 ) ] && IGCM_sys_Get $1 . fi IGCM_debug_PopStack "IGCM_sys_PrepareTaredRestart" } #D-#================================================== #D-function IGCM_sys_PutBuffer_Out #D-* Purpose: Copy a file on the buffer filesystem after having chmod it in readonly #D-* Examples: #D- function IGCM_sys_PutBuffer_Out { IGCM_debug_PushStack "IGCM_sys_PutBuffer_Out" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_PutBuffer_Out :" $@ fi typeset NB_ESSAI DELAI status i exist skip typeset fileDeviceNumberInHex directoryDeviceNumberInHex # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 if [ $DRYRUN = 0 ]; then if [ ! -f ${1} ] ; then echo "WARNING : IGCM_sys_PutBuffer_Out ${1} DOES NOT EXIST ." IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out" return 1 fi # IGCM_sys_Mkdir $( dirname $2 ) # exist=false skip=false if [ -f $2 ] ; then IGCM_debug_Print 1 "$2 already exist" exist=true if [ "X$( diff $1 $2 )" = X ] ; then IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy" status=0 skip=true else IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy" skip=false fi fi # if ( [ X${exist} = Xtrue ] && [ X${skip} = Xfalse ] ) ; then IGCM_sys_Chmod u+w $2 fi if [ X${skip} = Xfalse ] ; then i=0 while [ $i -lt $NB_ESSAI ] ; do # Identify file system fileDeviceNumberInHex=$( stat -c %d $1 ) status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Exit "IGCM_sys_PutBuffer_Out" fi # Identify file system directoryDeviceNumberInHex=$( stat -c %d $( dirname $2 ) ) status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Exit "IGCM_sys_PutBuffer_Out" fi if [ ${fileDeviceNumberInHex} -ne ${directoryDeviceNumberInHex} ] ; then # They are not on the same device. USUAL WAY \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? else # They are on the same device. USUAL WAY \mv $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? fi if [ ${status} -gt 0 ]; then IGCM_debug_Print 2 "IGCM_sys_PutBuffer_Out : cp failed error code ${status} ${i}/${NB_ESSAI}" IGCM_debug_Print 2 "IGCM_sys_PutBuffer_Out : sleep ${DELAI} seconds and try again." [ -f ${2} ] && ls -l ${2} [ -f ${2}/${1} ] && ls -l ${2}/${1} sleep $DELAI else break fi (( i = i + 1 )) done fi if [ ${status} -gt 0 ] ; then echo "IGCM_sys_PutBuffer_Out : error." [ -f ${2} ] && ls -l ${2} [ -f ${2}/${1} ] && ls -l ${2}/${1} cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_PutBuffer_Out" else if [ X${JobType} = XRUN ] ; then if [ X${3} = X ] ; then [ -f ${2} ] && IGCM_sys_Chmod 444 ${2} [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1} fi fi \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out" return 0 } #D-#================================================== #D-function IGCM_sys_GetBuffer #D-* Purpose: Get a file from ${SCRATCHDIR} #D-* Examples: IGCM_sys_GetBuffer myfile /destpath/myfile_with_PREFIX #D- IGCM_sys_GetBuffer /l Array_contain_myfiles /destpath/ function IGCM_sys_GetBuffer { IGCM_debug_PushStack "IGCM_sys_GetBuffer" $@ typeset DEST buf_liste target file_work typeset NB_ESSAI DELAI status i if ( $DEBUG_sys ) ; then echo "IGCM_sys_GetBuffer :" $@ fi # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 if [ $DRYRUN -le 2 ]; then if [ X${1} = X'/l' ] ; then eval set +A buf_liste \${${2}} else eval set +A buf_liste ${1} fi eval DEST=\${${#}} #USUAL WAY if [ X${1} = X'/l' ] ; then for target in ${buf_liste[*]} ; do local_file=$( basename ${target} ) i=0 while [ $i -lt $NB_ESSAI ] ; do \cp ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ]; then IGCM_debug_Print 2 "IGCM_sys_GetBuffer : cp failed error code ${status} ${i}/${NB_ESSAI}" IGCM_debug_Print 2 "IGCM_sys_GetBuffer : sleep ${DELAI} seconds and try again." sleep $DELAI else break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Get : error" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_GetBuffer" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi done else i=0 while [ $i -lt $NB_ESSAI ] ; do \cp ${buf_liste} ${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ]; then IGCM_debug_Print 2 "IGCM_sys_GetBuffer : cp failed error code ${status} ${i}/${NB_ESSAI}" IGCM_debug_Print 2 "IGCM_sys_GetBuffer : sleep ${DELAI} seconds and try again." sleep $DELAI else break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Get : error" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_GetBuffer" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi fi IGCM_debug_PopStack "IGCM_sys_GetBuffer" } #D-#================================================== #D-function IGCM_sys_GetDate_FichWork #D-* Purpose: donne la date filesys d'un fichier sur le filesystem WORK #D-* Examples: #D- function IGCM_sys_GetDate_FichWork { IGCM_debug_PushStack "IGCM_sys_GetDate_FichWork" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_GetDate_FichWork :" $@ fi if [ $# -ge 3 ] ; then mode=$3 TimeStyle=$4 else mode="default" TimeStyle="%Y%m%d%H%M%S" fi typeset dateF set +A dateF -- $( ls -l --full-time --time-style=+"${TimeStyle}" ${1} ) case $mode in "default") eval ${2}=${dateF[5]} ;; "SplitFields") eval ${2}="${dateF[5]}\ ${dateF[6]}" ;; esac # donne la date filesys d'un fichier sur la machine work IGCM_debug_PopStack "IGCM_sys_GetDate_FichWork" } #D-#================================================== #D-function IGCM_sys_rebuild #D-* Purpose: rebuild parallel files #D-* Examples: #D- function IGCM_sys_rebuild { IGCM_debug_PushStack "IGCM_sys_rebuild" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_rebuild :" $@ fi typeset NB_ESSAI DELAI status i firstArg # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do rebuild -f -o $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_rebuild : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_rebuild : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." firstArg=${1} \rm ${firstArg} sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_rebuild : rebuild error code is ${status}" IGCM_debug_Exit "rebuild" fi IGCM_debug_PopStack "IGCM_sys_rebuild" } #D-#================================================== #D-function IGCM_sys_rebuild_station #D-* Purpose: rebuild parallel files describing station #D-* Examples: #D- function IGCM_sys_rebuild_station { IGCM_debug_PushStack "IGCM_sys_rebuild_station" $@ typeset i list_opt file_in file_out prefix_invert list_invert if ( $DEBUG_sys ) ; then echo "IGCM_sys_rebuild_station :" $@ fi # Station re-ordering is too expansive to be run within libIGCM # This is due to (ncpdq - nrcat - ncpdq) I/O sequence. # This re-ordering must be done "in memory" by the cmorization process # Only LMDZ text output contains the exact ordering of the station. # We isolate this in the code below: # 0 38 -157.5000000000000 70.98591549295774 # 0 54 27.49999999999999 67.18309859154928 # 0 56 -62.50000000000001 82.39436619718309 # 0 79 12.49999999999999 78.59154929577466 # 0 116 -165.0000000000000 76.05633802816901 # 0 117 130.0000000000000 70.98591549295774 # 0 118 110.0000000000000 87.46478873239437 # 1 40 4.999999999999995 51.97183098591550 list_opt=$@ # Invert Axis : t,x -> x,t # t,pres,x -> x,t,pres # So that we can concatenate along x i=0 for file_in in ${list_opt} ; do (( i = i + 1)) [ ${i} = 1 ] && file_out=${file_in} && continue # detect time counter and do the job only if present var_unlim=$(ncdump -h ${file_in} | grep UNLIMITED | cut -d ' ' -f 1 | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') if [ X${var_unlim} = Xtime_counter ] ; then prefix_invert=$( basename ${file_in} .nc ) IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc fi done # Concatenate IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc # Re-ivert file IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out} IGCM_debug_PopStack "IGCM_sys_rebuild_station" } ############################################################## # NCO OPERATOR #D-#================================================== #D-function IGCM_sys_ncap2 #D-* Purpose: encapsulate ncap2 call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncap2 { IGCM_debug_PushStack "IGCM_sys_ncap2" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncap2 :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncap2 -C --buffer_size 838860800 "$@" > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncap2 : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncap2 : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncap2 : ncap2 error" IGCM_debug_Exit "ncap2" fi IGCM_debug_PopStack "IGCM_sys_ncap2" } #D-#================================================== #D-function IGCM_sys_ncatted #D-* Purpose: encapsulate ncatted call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncatted { IGCM_debug_PushStack "IGCM_sys_ncatted" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncatted :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncatted "$@" > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncatted : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncatted : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncatted : ncatted error" IGCM_debug_Exit "ncatted" fi IGCM_debug_PopStack "IGCM_sys_ncatted" } #D-#================================================== #D-function IGCM_sys_ncbo #D-* Purpose: encapsulate ncbo call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncbo { IGCM_debug_PushStack "IGCM_sys_ncbo" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncbo :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncbo -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncbo : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncbo : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncbo : ncbo error" IGCM_debug_Exit "ncbo" fi IGCM_debug_PopStack "IGCM_sys_ncbo" } #D-#================================================== #D-function IGCM_sys_ncdif #D-* Purpose: encapsulate ncdiff call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncdiff { IGCM_debug_PushStack "IGCM_sys_ncdiff" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncdiff :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncdiff -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncdiff : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncdiff : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncdiff : ncdiff error" IGCM_debug_Exit "ncdiff" fi IGCM_debug_PopStack "IGCM_sys_ncdiff" } #D-#================================================== #D-function IGCM_sys_ncea #D-* Purpose: encapsulate ncea call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncea { IGCM_debug_PushStack "IGCM_sys_ncea" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncea :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncea -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncea : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncea : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncea : ncea error" IGCM_debug_Exit "ncea" fi IGCM_debug_PopStack "IGCM_sys_ncea" } #D-#================================================== #D-function IGCM_sys_ncecat #D-* Purpose: encapsulate ncecat call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncecat { IGCM_debug_PushStack "IGCM_sys_ncecat" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncecat :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncecat -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncecat : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncecat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncecat : ncecat error" IGCM_debug_Exit "ncecat" fi IGCM_debug_PopStack "IGCM_sys_ncecat" } #D-#================================================== #D-function IGCM_sys_ncflint #D-* Purpose: encapsulate ncflint call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncflint { IGCM_debug_PushStack "IGCM_sys_ncflint" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncflint :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncflint -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncflint : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncflint : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncflint : ncflint error" IGCM_debug_Exit "ncflint" fi IGCM_debug_PopStack "IGCM_sys_ncflint" } #D-#================================================== #D-function IGCM_sys_ncks #D-* Purpose: encapsulate ncks call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncks { IGCM_debug_PushStack "IGCM_sys_ncks" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncks :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncks -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncks : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncks : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncks : ncks error" IGCM_debug_Exit "ncks" fi IGCM_debug_PopStack "IGCM_sys_ncks" } #D-#================================================== #D-function IGCM_sys_ncpdq #D-* Purpose: encapsulate ncpdq call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncpdq { IGCM_debug_PushStack "IGCM_sys_ncpdq" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncpdq :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncpdq -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncpdq : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncpdq : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncpdq : ncpdq error" IGCM_debug_Exit "ncpdq" fi IGCM_debug_PopStack "IGCM_sys_ncpdq" } #D-#================================================== #D-function IGCM_sys_ncra #D-* Purpose: encapsulate ncra call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncra { IGCM_debug_PushStack "IGCM_sys_ncra" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncra :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncra -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncra : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncra : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncra : ncra error" IGCM_debug_Exit "ncra" fi IGCM_debug_PopStack "IGCM_sys_ncra" } #D-#================================================== #D-function IGCM_sys_ncrcat #D-* Purpose: encapsulate ncrcat call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncrcat { IGCM_debug_PushStack "IGCM_sys_ncrcat" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncrcat :" $@ fi typeset NB_ESSAI DELAI status i lastArg # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncrcat -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncrcat : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI elif ( [ ! "X$( grep "WARNING Intra-file non-monotonicity" ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )" = "X" ] && [ X${config_Post_IgnoreNonMonotonic} = XFALSE ] ) ; then IGCM_debug_Print 2 "IGCM_sys_ncrcat : WARNING Intra-file non-monotonicity" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ # remove files having corrupted time axis eval lastArg=\${$#} IGCM_debug_Print 2 "Remove files having corrupted time axis" IGCM_debug_Print 2 "IGCM_sys_ncrcat : Delete ${lastArg}" \rm ${lastArg} \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done # Special case for spinup with cyclic time axis: change attribute calendar to none if [ X${config_Post_IgnoreNonMonotonic} = XTRUE ] ; then eval lastArg=\${$#} echo "IGCM_sys_ncrcat : change attribute calendar to none in file:" ${lastArg} IGCM_sys_ncatted -a calendar,time_counter,m,c,none ${lastArg} fi if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncrcat : ncrcat error" #IGCM_debug_Exit "ncrcat" fi IGCM_debug_PopStack "IGCM_sys_ncrcat" } #D-#================================================== #D-function IGCM_sys_ncrename #D-* Purpose: encapsulate ncrename call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncrename { IGCM_debug_PushStack "IGCM_sys_ncrename" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncrename :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncrename $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncrename : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncrename : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncrename : ncrename error" IGCM_debug_Exit "ncrename" fi IGCM_debug_PopStack "IGCM_sys_ncrename" } #D-#================================================== #D-function IGCM_sys_ncwa #D-* Purpose: encapsulate ncwa call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_ncwa { IGCM_debug_PushStack "IGCM_sys_ncwa" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_ncwa :" $@ fi typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 i=0 while [ $i -lt $NB_ESSAI ] ; do ncwa -C --buffer_size 838860800 $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_ncwa : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Print 2 "IGCM_sys_ncwa : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again." sleep $DELAI else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_ncwa : ncwa error" IGCM_debug_Exit "ncwa" fi IGCM_debug_PopStack "IGCM_sys_ncwa" } ############################################################## # CDO OPERATOR #D-#================================================== #D-function IGCM_sys_cdo #D-* Purpose: encapsulate cdo call so as to manage error code and retry #D-* Examples: #D- function IGCM_sys_cdo { IGCM_debug_PushStack "IGCM_sys_cdo" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_cdo :" $@ fi typeset status \cdo $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then echo "IGCM_sys_cdo : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_PopStack "IGCM_sys_cdo" return 1 else IGCM_debug_PopStack "IGCM_sys_cdo" return 0 fi IGCM_debug_PopStack "IGCM_sys_cdo" } # + LC_ALL=C + export LC_ALL + JobType=RUN + PackDefault=false + BigBrother=false + BigBrotherChannel=MAIL + [ ! Xpost-processing '=' Xchecking ] + echo + echo '====================================================' ==================================================== + hostname + echo 'Where do we run ?' curie4530 Where do we run ? curie4530 + uname -a Linux curie4530 2.6.32-696.30.1.el6.Bull.140.x86_64 #1 SMP Thu May 31 01:41:35 CEST 2018 x86_64 x86_64 x86_64 GNU/Linux + echo '====================================================' ==================================================== + echo + [ XRUN '=' XDEB ] + hostname -s + [ ! Xpost-processing '=' Xchecking ] + echo 'Source machine dependent settings for curie Intel X-64.' Source machine dependent settings for curie Intel X-64. + CENTER=TGCC + SYSTEM=curie + . /ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh #!/bin/ksh #************************************************************** # Author: Sebastien Denvil, Martial Mancip, Arnaud Caubel # Contact: Arnaud.Caubel__at__lsce.ipsl.fr # $Revision:: 1455 $ Revision of last commit # $Author:: sdipsl $ Author of last commit # $Date:: 2018-06-21 15:21:06 +0200 (Thu, 21 Jun 2018) $ Date of last commit # IPSL (2006) # This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC # #************************************************************** #========================================================= # The documentation of this file can be automatically generated # if you use the prefix #D- for comments to be extracted. # Extract with command: cat lib* | grep "^#D-" | cut -c "4-" #========================================================= #D-#================================================== #D-LibIGCM_sys for Curie #D-#================================================== #D- #D- This ksh library if a layer under some usefull #D-environment variables and shell commands. #D-All those definitions depend on host particularities. #D-It manages a stack mechanism and test validity of operations. #D-All function described bellow must be prefixed by IGCM_sys. #==================================================== # libIGCM_sys PARAMETERS #==================================================== #==================================================== # set DEBUG_sys to true to output calls of function typeset -r DEBUG_sys=${DEBUG_sys:=true} #==================================================== # Turn in dry run mode ? (sys_Put_Rest, sys_Put_Out, sys_Get) typeset -r DRYRUN=${DRYRUN:=0} # YOU MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE ! # ------------------------------------------------------------------------------------- # | DRYRUN= | Date computations, | sys_Get | Exe | sys_Put_Out; sys_Put_Rest | # | | Cp/Exe/param/files | | | | # | | Chmod Qsub | | | | # ------------------------------------------------------------------------------------- # | 0 | yes | yes | yes | yes | # ------------------------------------------------------------------------------------- # | 1 | yes | yes | yes | no | # ------------------------------------------------------------------------------------- # | 2 | yes | yes | no | no | # ------------------------------------------------------------------------------------- # | 3 | yes | no | no | no | # ------------------------------------------------------------------------------------- #===================================================== # Global Variables : #===================================================== # Language : "fr" or "en" typeset -r MYLANG="fr" #===================================================== # Host user names project maxCpuTime # $hostname ou hostname typeset HOST=${HOST:=$( hostname )} # $username ou whoami typeset LOGIN=${LOGIN:=$( whoami )} # $hostname of the MASTER job typeset MASTER=curie # add default project on curie typeset PROJECT=$(echo ${BRIDGE_MSUB_PROJECT:=gen0826} | cut -d@ -f1 ) # jobWarningDelay in seconds typeset jobWarningDelay=${BRIDGE_MSUB_MAXTIME} #D- #D-#================================================== #D-Program used in libIGCM #D-#================================================== # Submit command typeset SUBMIT=${SUBMIT:=ccc_msub} # rsync with path typeset -r RSYNC=/usr/bin/rsync # RSYNC_opt args to rsync typeset -r RSYNC_opt="-va" # ie storage filesystem typeset -r STOREHOST=${MASTER} typeset -r REMOTE_RSYNC=/usr/bin/rsync #==================================================== # Set environment tools (ferret, nco, cdo, rebuild, ...) #==================================================== if [ X${TaskType} = Xcomputing ] ; then IGCM_debug_Print 1 "Module will be loaded once we know the compiler version" else module purge > /dev/null 2>&1 ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_intel17.0.2_curie > /dev/null 2>&1 . $( ccc_home -u igcmg)/MachineEnvironment/curie/env_intel17.0.2_curie > /dev/null 2>&1 ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_netcdf4.3.3.1_curie > /dev/null 2>&1 . $( ccc_home -u igcmg)/MachineEnvironment/curie/env_netcdf4.3.3.1_curie > /dev/null 2>&1 ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_atlas_curie > /dev/null 2>&1 . $( ccc_home -u igcmg)/MachineEnvironment/curie/env_atlas_curie > /dev/null 2>&1 export PCMDI_MP=/ccc/work/cont003/igcmg/igcmg/PCMDI-MP export UVCDAT_ANONYMOUS_LOG=FALSE fi # Use CMIP6 storage space when using CMIP6 cpu ressources [[ X"$( echo ${PROJECT} | grep cmip6 )" != "X" && ! $(module list --terse 2>&1 | grep dfldatadir/gencmip6) ]] && module switch dfldatadir dfldatadir/gencmip6 # FYI [ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:" [ ! X${TaskType} = Xchecking ] && module list # for rebuild, AddNoise and AddPertu3DOCE export PATH=${PATH}:$(ccc_home -u igcmg)/Tools/curie/bin ##export PATH=${PATH}:/ccc/cont003/home/igcmg/igcmg/Tools/curie/bin #==================================================== # Specific for ocean additionnal diagnostic export FER_GO="$FER_GO /home/cont003/p86denv/IGCM_POST_UTIL/JNL /home/cont003/p86denv/GRAF /home/cont003/p86denv/GRAF/GO" export FER_PALETTE="$FER_PALETTE /home/cont003/p86denv/GRAF/PALET" #==================================================== # Host specific DIRECTORIES #==================================================== # ============ CESIUM START ============ # #==================================================== #- Mirror libIGCM from titane to cesium if needed #ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' ) #if [ ! ${ROOTSYS} = "home" ] ; then # typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} #else # typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} #fi #==================================================== #- libIGCM_POST #if ( ${MirrorlibIGCM} ) ; then # PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) # typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM #else # typeset -r libIGCM_POST=${libIGCM} #fi # ============ CESIUM END ============ # #==================================================== #- MirrorlibIGCM for frontend typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} #==================================================== #- libIGCM_POST for frontend typeset -r libIGCM_POST=${libIGCM} #==================================================== #- R_EXE (==> BIN_DIR = ${MODIPSL}/bin ) typeset -r R_EXE="${MODIPSL}/bin" #==================================================== #- SUBMIT_DIR : submission dir typeset -x SUBMIT_DIR=${SUBMIT_DIR:=${BRIDGE_MSUB_PWD}} #==================================================== #- IN typeset -r R_IN=${R_IN:=/ccc/work/cont003/igcmg/igcmg/IGCM} typeset -r R_IN_ECMWF=${R_IN_ECMWF:=/ccc/work/cont003/dsm/p24data} #==================================================== #- RUN_DIR_PATH : Temporary working directory (=> TMP) typeset -r RUN_DIR_PATH=${RUN_DIR_PATH:=${SCRATCHDIR}/RUN_DIR/${BRIDGE_MSUB_JOBID}_${$}} #==================================================== #- OUTCOMMAND_PATH : tmp place to store command lines standard error and outputs typeset -r OUTCOMMAND_PATH=/tmp #==================================================== #- HOST_MPIRUN_COMMAND typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="/usr/bin/time ccc_mprun -E-K1 "} #==================================================== #- Max number of arguments passed to nco operator or demigration command UNIX_MAX_LIMIT=360 #==================================================== #- set PackDefault to true on curie PackDefault=true #==================================================== #- Default number of MPI task for IPSL coupled model #- required for backward compatibility #- DEFAULT_NUM_PROC_OCE=5 DEFAULT_NUM_PROC_CPL=1 (( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL )) #==================================================== #- Number of computing cores per node #- NB_CORE_PER_NODE=16 #D-#================================================== #D-function IGCM_sys_defineArchives #D-* Purpose: #D-* Define ARCHIVE : Dedicated to large files #D-* Define STORAGE : Dedicated to small/medium files #D-* Define R_OUT : Output tree located on ARCHIVE #D-* Define R_FIG : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files) #D-* Define R_BUF : Output tree located on SCRATCHDIR hosting files waiting for rebuild or pack processes #D-* if SpaceName=TEST everything is stored on SCRATCHDIR #D-* Examples: #D- function IGCM_sys_defineArchives { IGCM_debug_PushStack "IGCM_sys_defineArchives" if [ ! X${config_UserChoices_ARCHIVE} = X ]; then #==================================================== #- ARCHIVE (dedicated to large files) ARCHIVE=${config_UserChoices_ARCHIVE} else #==================================================== #- ARCHIVE (dedicated to large files) ARCHIVE=${CCCSTOREDIR} fi if [ ! X${config_UserChoices_STORAGE} = X ]; then #==================================================== #- STORAGE (dedicated to small/medium files) STORAGE=${config_UserChoices_STORAGE} else #==================================================== #- STORAGE (dedicated to small/medium files) STORAGE=${CCCWORKDIR} fi if [ X${config_UserChoices_SpaceName} = XTEST ]; then #==================================================== #- R_OUT R_OUT=${SCRATCHDIR}/IGCM_OUT #==================================================== #- R_FIG (hosting figures : monitoring and atlas, and/or small files) R_FIG=${SCRATCHDIR}/IGCM_OUT IGCM_debug_Print 1 "SpaceName=TEST ==> OVERRULE destination path directories" else #==================================================== #- R_OUT R_OUT=${ARCHIVE}/IGCM_OUT #==================================================== #- R_FIG (hosting figures : monitoring and atlas, and/or small files) R_FIG=${STORAGE}/IGCM_OUT fi #==================================================== #- CMIP6 (hosting CMIP6 files produced by XIOS2 and configured by dr2xml) CMIP6_BUF=${STORAGE}/IGCM_OUT #==================================================== #- R_BUF (ONLY FOR double copy an scratch) R_BUF=${SCRATCHDIR}/IGCM_OUT IGCM_debug_Print 1 "R_OUT has been defined = ${R_OUT}" IGCM_debug_Print 1 "R_BUF has been defined = ${R_BUF}" IGCM_debug_Print 1 "R_FIG has been defined = ${R_FIG}" IGCM_debug_PopStack "IGCM_sys_defineArchives" } #D-#================================================== #D-function IGCM_sys_RshArchive #D-* Purpose: Archive rsh command #D-* Examples: #D- function IGCM_sys_RshArchive { IGCM_debug_PushStack "IGCM_sys_RshArchive" $@ /bin/ksh <<-EOF ${@} EOF status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_RshArchive : command failed error code ${status}" IGCM_debug_Exit "IGCM_sys_RshArchive" fi IGCM_debug_PopStack "IGCM_sys_RshArchive" } #D-#================================================== #D-function IGCM_sys_RshArchive_NoError #D-* Purpose: Archive rsh command, without error #D-* used only in monitoring.job #D-* Examples: #D- function IGCM_sys_RshArchive_NoError { IGCM_debug_PushStack "IGCM_sys_RshArchive_NoError" $@ /bin/ksh <<-EOF ${@} 2> /dev/null EOF IGCM_debug_PopStack "IGCM_sys_RshArchive_NoError" } #D-#================================================== #D-function IGCM_sys_MkdirArchive #D-* Purpose: Mkdir on Archive #D-* Examples: #D- function IGCM_sys_MkdirArchive { IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_MkdirArchive :" $@ fi #- creation de repertoire sur le serveur fichier if [ ! -d ${1} ]; then \mkdir -p $1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_MkdirArchive : mkdir failed error code ${status}" IGCM_debug_Exit "IGCM_sys_MkdirArchive" fi fi IGCM_debug_PopStack "IGCM_sys_MkdirArchive" } #D-#================================================== #D-function IGCM_sys_TestDirArchive #D-* Purpose: Test Directory that must exists on Archive #D-* Examples: #D- function IGCM_sys_TestDirArchive { IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_TestDirArchive :" $@ fi typeset ExistFlag ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) IGCM_debug_PopStack "IGCM_sys_TestDirArchive" return ${ExistFlag} } #D-#================================================== #D-function IGCM_sys_IsFileArchived #D-* Purpose: Test file that must NOT EXISTS on Archive based on filename only #D-* Examples: #D- function IGCM_sys_IsFileArchived { IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_IsFileArchived :" $@ fi typeset IsArchivedFlag IsArchivedFlag=$( [ X$( echo $@ | grep ^\/ccc\/store ) != X ] && echo 0 || echo 1 ) IGCM_debug_PopStack "IGCM_sys_IsFileArchived" return ${IsArchivedFlag} } #D-#================================================== #D-function IGCM_sys_TestFileArchive #D-* Purpose: Test file that must NOT EXISTS on Archive #D-* Examples: #D- function IGCM_sys_TestFileArchive { IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ typeset ExistFlag ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) IGCM_debug_PopStack "IGCM_sys_TestFileArchive" return ${ExistFlag} } #D-#================================================== #D-function IGCM_sys_CountFileArchive #D-* Purpose: Count files on Archive filesystem #D-* Examples: #D- function IGCM_sys_CountFileArchive { IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ ls ${@} 2>/dev/null | wc -l if [ $? -gt 0 ] ; then echo "IGCM_sys_CountFileArchive : erreur." fi IGCM_debug_PopStack "IGCM_sys_CountFileArchive" } #D-#================================================== #D-function IGCM_sys_Tree #D-* Purpose: Tree directories with files on ${ARCHIVE} #D-* Examples: IGCM_sys_Tree ${R_IN} ${R_OUT} #D- function IGCM_sys_Tree { IGCM_debug_PushStack "IGCM_sys_Tree" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Tree :" $@ fi \ls -lR ${@} IGCM_debug_PopStack "IGCM_sys_Tree" } #D-#================================================== #D-function IGCM_sys_Qsub #D-* Purpose: Qsub new job #D-* Examples: #D- function IGCM_sys_Qsub { IGCM_debug_PushStack "IGCM_sys_Qsub" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Qsub :" $@ fi typeset options status options="-o ${SUBMIT_DIR}/${Script_Output} -e ${SUBMIT_DIR}/${Script_Output}" /usr/bin/ccc_msub ${options} $1 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_Qsub ${options} $1 : error code ${status}" IGCM_debug_Exit "IGCM_sys_Qsub" else JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ ) fi IGCM_debug_PopStack "IGCM_sys_Qsub" } #D-#================================================== #D-function IGCM_sys_QsubPost #D-* Purpose: Qsub new job on scalaire #D-* Examples: #D- function IGCM_sys_QsubPost { IGCM_debug_PushStack "IGCM_sys_QsubPost" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_QsubPost :" $@ fi typeset options status # EASIER TO DO THIS INSTEAD OF DUPLICATING libIGCM_sys_curie.ksh case $( hostname -s ) in curie*) options="-Q normal -A ${PROJECT} -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.out";; airain*) options="-q ivybridge -A dsm -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.out" esac /usr/bin/ccc_msub ${options} ${libIGCM_POST}/$1.job > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_QsubPost ${options} ${libIGCM_POST}/$1.job : error code ${status}" IGCM_debug_Exit "IGCM_sys_QsubPost" else JobID=$( gawk {'print $4'} ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ ) fi IGCM_debug_PopStack "IGCM_sys_QsubPost" } #D-************************* #D- File transfer functions #D-************************* #D- #D-#================================================== #D-function IGCM_sys_RmRunDir #D-* Purpose: rm tmpdir (dummy function most of the time batch #D- scheduler will do the job) #D-* Examples: #D- function IGCM_sys_RmRunDir { IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_RmRunDir :" $@ fi typeset status echo rm $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 \rm $@ >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}." cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_RmRunDir" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi IGCM_debug_PopStack "IGCM_sys_RmRunDir" } #D-#================================================== #D-function IGCM_sys_Put_Dir #D-* Purpose: Copy a complete directory on $(ARCHIVE) #D-* Examples: #D- function IGCM_sys_Put_Dir { IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Put_Dir :" $@ fi if [ $DRYRUN = 0 ]; then if [ ! -d ${1} ] ; then echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." IGCM_debug_PopStack "IGCM_sys_Put_Dir" return fi typeset status # Only if we use rsync #IGCM_sys_TestDirArchive $( dirname $2 ) # #USUAL WAY \cp -r $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_Put_Dir : cp failed error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Put_Dir" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi IGCM_debug_PopStack "IGCM_sys_Put_Dir" } #D-#================================================== #D-function IGCM_sys_Get_Dir #D-* Purpose: Copy a complete directory from ${ARCHIVE} #D-* Examples: #D- function IGCM_sys_Get_Dir { IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Get_Dir :" $@ fi if [ $DRYRUN = 0 ]; then typeset NB_ESSAI DELAI status i # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 # # USUAL WAY # add 'ccc_hsm get' (to demigrate all offline files) to reduce time of this command : ccc_hsm get -r $1 i=0 while [ $i -lt $NB_ESSAI ] ; do \cp -ur $1 $2 >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status} ${i}/${NB_ESSAI}" IGCM_debug_Print 2 "IGCM_sys_Get_Dir : sleep ${DELAI} seconds and try again." sleep $DELAI else break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_Get_Dir : cp failed error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Get_Dir" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi IGCM_debug_PopStack "IGCM_sys_Get_Dir" } #D-#================================================== #D-function IGCM_sys_Put_Rest #D-* Purpose: Put computied restarts on ${ARCHIVE}. #D- File and target directory must exist. #D-* Examples: #D- function IGCM_sys_Put_Rest { IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Put_Rest :" $@ fi if [ $DRYRUN = 0 ]; then if [ ! -f ${1} ] ; then echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." IGCM_debug_Exit "IGCM_sys_Put_Rest" fi typeset status # # USUAL WAY \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? # #RSYNC WITH NETWORK SSH CALL # echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # #RSYNC WITH NFS USE # echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # status=$? # IGCM_sys_Rsync_out $status # ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ # (( status=status+$? )) if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_Put_Rest : cp failed error code ${status}" [ -f ${1} ] && ls -l ${1} [ -f ${2} ] && ls -l ${2} [ -f ${2}/${1} ] && ls -l ${2}/${1} cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Put_Rest" else if [ X${JobType} = XRUN ] ; then [ -f ${2} ] && IGCM_sys_Chmod 444 ${2} [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1} fi \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi IGCM_debug_PopStack "IGCM_sys_Put_Rest" } #D-#================================================== #D-function IGCM_sys_Put_Out #D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly #D-* Examples: #D- function IGCM_sys_Put_Out { IGCM_debug_PushStack "IGCM_sys_Put_Out" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Put_Out :" $@ fi typeset NB_ESSAI DELAI status i exist skip typeset fileDeviceNumberInHex directoryDeviceNumberInHex # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 if [ $DRYRUN = 0 ]; then if [ ! -f ${1} ] ; then echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ." IGCM_debug_PopStack "IGCM_sys_Put_Out" return 1 fi # IGCM_sys_MkdirArchive $( dirname $2 ) # exist=false skip=false if [ -f $2 ] ; then IGCM_debug_Print 1 "$2 already exist" ccc_hsm get $2 exist=true if [ "X$( diff $1 $2 )" = X ] ; then IGCM_debug_Print 2 "$1 and $2 are the same file, we skip the copy" skip=true else IGCM_debug_Print 2 "$1 and $2 are not the same file, we force the copy" skip=false fi fi # if ( [ X${exist} = Xtrue ] && [ X${skip} = Xfalse ] ) ; then IGCM_sys_Chmod u+w $2 fi if [ X${skip} = Xfalse ] ; then i=0 while [ $i -lt $NB_ESSAI ] ; do # Identify file system fileDeviceNumberInHex=$( stat -c %d $1 ) status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Exit "IGCM_sys_Put_Out" fi # Identify file system directoryDeviceNumberInHex=$( stat -c %d $( dirname $2 ) ) status=$? if [ ${status} -gt 0 ] ; then IGCM_debug_Exit "IGCM_sys_Put_Out" fi if ( [ ${fileDeviceNumberInHex} -ne ${directoryDeviceNumberInHex} ] || [ X$3 = XNOMOVE ] ) ; then # They are not on the same device. USUAL WAY \cp $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? else # They are on the same device. NOT SO USUAL WAY \mv $1 $2 > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? fi if [ ${status} -gt 0 ]; then IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status} ${i}/${NB_ESSAI}" IGCM_debug_Print 2 "IGCM_sys_Put_Out : sleep ${DELAI} seconds and try again." [ -f ${1} ] && ls -l ${1} [ -f ${2} ] && ls -l ${2} [ -f ${2}/${1} ] && ls -l ${2}/${1} sleep $DELAI else break fi (( i = i + 1 )) done fi # #RSYNC WITH NETWORK SSH CALL # echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # #RSYNC WITH NFS USE # echo ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # ${RSYNC} ${RSYNC_opt} ${RUN_DIR}/$1 ${2} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # status=$? # IGCM_sys_Rsync_out $status # ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ # (( status=status+$? )) if [ ${status} -gt 0 ] ; then IGCM_debug_Print 2 "IGCM_sys_Put_Out : cp failed error code ${status}" [ -f ${1} ] && ls -l ${1} [ -f ${2} ] && ls -l ${2} [ -f ${2}/${1} ] && ls -l ${2}/${1} cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Put_Out" else if [ X${JobType} = XRUN ] ; then if [ X${3} = X ] ; then [ -f ${2} ] && IGCM_sys_Chmod 444 ${2} [ -f ${2}/${1} ] && IGCM_sys_Chmod 444 ${2}/${1} fi fi \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi IGCM_debug_PopStack "IGCM_sys_Put_Out" return 0 } #D-#================================================== #D-function IGCM_sys_Get #D-* Purpose: Get a file from ${ARCHIVE} #D-* Examples: IGCM_sys_Get myfile /destpath/myfile_with_PREFIX #D- IGCM_sys_Get /l Array_contain_myfiles /destpath/ function IGCM_sys_Get { IGCM_debug_PushStack "IGCM_sys_Get" $@ typeset DEST dm_liste target file_work typeset NB_ESSAI DELAI status i if ( $DEBUG_sys ) ; then echo "IGCM_sys_Get :" $@ fi # number of tentative NB_ESSAI=3 # time delay between tentative DELAI=2 if [ $DRYRUN -le 2 ]; then if [ X${1} = X'/l' ] ; then eval set +A dm_liste \${${2}} else eval set +A dm_liste ${1} fi eval DEST=\${${#}} ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then echo "WARNING IGCM_sys_Get : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ echo "WARNING IGCM_sys_Get : will stop later if the cp fails." fi #if [ ${status} -gt 0 ] ; then # if [ ! "X$( grep "Lost dmusrcmd connection" ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ )" = "X" ] ; then # cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ # echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : " # sleep 30 # echo "We try another time" ## dmget ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # ccc_hsm get ${dm_liste[*]} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # status=$? # if [ ${status} -gt 0 ] ; then # echo "ERROR IGCM_sys_Get : again demigration error :" # cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ # IGCM_debug_Exit "IGCM_sys_Get" # fi # else # echo "ERROR IGCM_sys_Get : demigration error :" # cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ # IGCM_debug_Exit "IGCM_sys_Get" # fi #fi # #RSYNC WITH NETWORK SSH CALL # echo ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # #RSYNC WITH NFS USE # echo ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # ${RSYNC} ${RSYNC_opt} ${dm_liste} ${RUN_DIR}/${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # status=$? # IGCM_sys_Rsync_out $status # ${libIGCM}/libIGCM_sys/IGCM_analyse_rsync_out.awk ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ # (( status=status+$? )) #USUAL WAY if [ X${1} = X'/l' ] ; then for target in ${dm_liste[*]} ; do local_file=$( basename ${target} ) # test if the target file is present before the loop IGCM_sys_TestFileArchive ${target} status=$? if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Get, ERROR : regular file ${target} DOES NOT EXIST ." IGCM_debug_Exit "IGCM_sys_Get" else i=0 while [ $i -lt $NB_ESSAI ] ; do #if [ X${DoLink} = Xtrue ] ; then # \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # status=$? # else # \cp ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 # status=$? #fi \ln -s ${target} ${DEST}/${local_file} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ]; then IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}" IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again." sleep $DELAI else break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Get : error" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Get" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi done else i=0 while [ $i -lt $NB_ESSAI ] ; do \cp ${dm_liste} ${DEST} >> ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ]; then IGCM_debug_Print 2 "IGCM_sys_Get : cp failed error code ${status} ${i}/${NB_ESSAI}" IGCM_debug_Print 2 "IGCM_sys_Get : sleep ${DELAI} seconds and try again." sleep $DELAI else break fi (( i = i + 1 )) done if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Get : error" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_Exit "IGCM_sys_Get" else \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ fi fi fi IGCM_debug_PopStack "IGCM_sys_Get" } #D-#================================================== #D-function IGCM_sys_GetDate_Monitoring #D-* Purpose: get the last year for which the monitoring has been computed #D-* Examples: #D- function IGCM_sys_GetDate_Monitoring { IGCM_debug_PushStack "IGCM_sys_GetDate_Monitoring" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_GetDate_Monitoring :" $@ fi eval ${2}=$( cdo showyear ${1} 2> /dev/null | gawk '{ print $NF }' ) IGCM_debug_PopStack "IGCM_sys_GetDate_Monitoring" } #D-#================================================== #D-function IGCM_sys_Dods_Rm #D-* Purpose: DO NOTHING ! Put ${ARCHIVE} files on DODS internet protocole. #D-* Examples: #D- function IGCM_sys_Dods_Rm { if ( $DEBUG_sys ) ; then echo "IGCM_sys_Dods_Rm :" $@ fi typeset status if [ $DRYRUN = 0 ]; then # if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then # echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." # echo "Nothing has been done." # return # fi if [ "$#" -eq 1 ]; then $(ccc_home -u igcmg)/Tools/curie/bin/thredds_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 ## /ccc/cont003/home/igcmg/igcmg/Tools/curie/bin/thredds_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 status=$? else $(ccc_home -u igcmg)/Tools/curie/bin/thredds_rm public/${LOGIN}/${R_DODS} # > out_dods_rm 2>&1 ## /ccc/cont003/home/igcmg/igcmg/Tools/curie/bin/thredds_rm public/${LOGIN}/${R_DODS} # > out_dods_rm 2>&1 status=$? fi # if [ ${status} -gt 0 ] ; then # echo "IGCM_sys_Dods_Rm : error." # cat out_dods_rm # IGCM_debug_Exit "IGCM_sys_Dods_Rm" # else # rm out_dods_rm # fi fi return $status } #D-#================================================== #D-function IGCM_sys_Dods_Cp #D-* Purpose: Copy $(ARCHIVE) files on DODS internet protocole. #D-* Examples: #D- function IGCM_sys_Dods_Cp { if ( $DEBUG_sys ) ; then echo "IGCM_sys_Dods_Cp :" $@ fi typeset status if [ $DRYRUN = 0 ]; then # if [ ! -d ${R_SAVE}/${1} ] ; then # echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." # echo "Nothing has been done." # return # fi $(ccc_home -u igcmg)/Tools/curie/bin/thredds_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 ## /ccc/cont003/home/igcmg/igcmg/Tools/curie/bin/thredds_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 status=$? # if [ ${status} -gt 0 ] ; then # echo "IGCM_sys_Dods_Cp : error." # cat out_dods_cp # IGCM_debug_Exit "IGCM_sys_Dods_Cp" # else # rm out_dods_cp # fi fi return $status } #D-#================================================== #D-function IGCM_sys_Put_Dods #D-* Purpose: Put ${ARCHIVE} files on DODS internet protocole. #D-* Examples: #D- function IGCM_sys_Put_Dods { IGCM_debug_PushStack "IGCM_sys_Put_Dods" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_Put_Dods :" $@ fi typeset status if [ $DRYRUN = 0 ]; then if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should." echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST." echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST." IGCM_debug_PopStack "IGCM_sys_Put_Dods" return fi if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should." echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS." echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS." IGCM_debug_PopStack "IGCM_sys_Put_Dods" return fi # if [ -d ${R_SAVE}/${1} ] ; then cd ${R_SAVE} elif [ -d ${R_FIGR}/${1} ] ; then cd ${R_FIGR} fi IGCM_sys_Dods_Rm ${1} IGCM_sys_Dods_Cp ${1} status=0 if [ ${status} -gt 0 ] ; then echo "IGCM_sys_Put_Dods : error." IGCM_debug_Exit "IGCM_sys_Put_Dods" fi fi IGCM_debug_PopStack "IGCM_sys_Put_Dods" } ############################################################## # REBUILD OPERATOR #D-#================================================== #D-function IGCM_sys_sync #D-* Purpose: flush buffer on disk #D-* Examples: #D- function IGCM_sys_sync { IGCM_debug_PushStack "IGCM_sys_sync" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_sync :" $@ fi /bin/sync IGCM_debug_PopStack "IGCM_sys_sync" } ############################################################ # Activate Running Environnment Variables #D-#================================================== #D-function IGCM_sys_activ_variables #D-* Purpose: set environement variables prior to execution #D-* Examples: #D- function IGCM_sys_activ_variables { IGCM_debug_PushStack "IGCM_sys_activ_variables" if ( $DEBUG_sys ) ; then echo "IGCM_sys_activ_variables" fi # -------------------------------------------------------------------- #D- MODULE specifications # -------------------------------------------------------------------- module purge > /dev/null 2>&1 if [ X${compilerVersion} = XV17 ] ; then . $(ccc_home -u igcmg)/MachineEnvironment/curie/env_intel17.0.2_curie > /dev/null 2>&1 ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_intel17.0.2_curie > /dev/null 2>&1 elif [ X${compilerVersion} = XV14 ] ; then . $(ccc_home -u igcmg)/MachineEnvironment/curie/env_intel14.0.3_curie > /dev/null 2>&1 ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_intel14.0.3_curie > /dev/null 2>&1 else IGCM_debug_Exit "This compiler version is not yet supported : ${compilerVersion}" fi . $(ccc_home -u igcmg)/MachineEnvironment/curie/env_netcdf4.3.3.1_curie > /dev/null 2>&1 ##. /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_netcdf4.3.3.1_curie > /dev/null 2>&1 # Keep track of this [ ! X${TaskType} = Xchecking ] && IGCM_debug_Print 1 "List of loaded modules:" [ ! X${TaskType} = Xchecking ] && module list # -------------------------------------------------------------------- #D- MPI specifications # -------------------------------------------------------------------- # -------------------------------------------------------------------- #D- Other specifications # -------------------------------------------------------------------- ulimit -s unlimited IGCM_debug_PopStack "IGCM_sys_activ_variables" } ############################################################ # Desactivate Running Environnment Variables #D-#================================================== #D-function IGCM_sys_desactiv_variables #D-* Purpose: unset environement variables after execution #D-* Examples: #D- function IGCM_sys_desactiv_variables { IGCM_debug_PushStack "IGCM_sys_desactiv_variables" if ( $DEBUG_sys ) ; then echo "IGCM_sys_desactiv_variables" fi # -------------------------------------------------------------------- #D- MPI specifications # -------------------------------------------------------------------- # -------------------------------------------------------------------- #D- Other specifications # -------------------------------------------------------------------- IGCM_debug_PopStack "IGCM_sys_desactiv_variables" } ############################################################ # Update job headers to be used by the scheduler #D-#================================================== #D-function IGCM_sys_updateHeaders #D-* Purpose: Update job headers to be used by the scheduler #D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP #D- function IGCM_sys_updateHeaders { IGCM_debug_PushStack "IGCM_sys_updateHeaders" if ( $DEBUG_sys ) ; then echo "IGCM_sys_updateHeaders" fi typeset file file=$1 if [ ${executionType} -eq 1 ] ; then # MPMD + MPI sed -e "/::openMPthreads::/d" \ -e "s/::JobNumProcTot::/${coreNumber}/" \ -e "/#MSUB -x/d" \ -e "/--cpu_bind=none/d" \ ${file} > ${file}.tmp elif [ ${executionType} -eq 2 ] ; then # MPMD + MPI + OMP : mpirun/ccc_mprun/error if ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "X" ] || [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ) ; then sed -e "/::openMPthreads::/d" \ -e "s/::JobNumProcTot::/${coreNumber}/" \ ${file} > ${file}.tmp elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xccc_mprun" ] ) ; then sed -e "/::openMPthreads::/d" \ -e "s/::JobNumProcTot::/${coreNumber}/" \ -e "/--cpu_bind=none/d" \ ${file} > ${file}.tmp else IGCM_debug_Print 1 "You have to set ExecutionModeOnCurie=ccc_mprun or mpirun in config.card" IGCM_debug_Exit "IGCM_sys_updateHeaders" fi elif [ ${executionType} -eq 3 ] ; then # SPMD + MPI/OMP sed -e "s/::openMPthreads::/${openMPthreads}/" \ -e "s/::JobNumProcTot::/${mpiTasks}/" \ -e "/#MSUB -x/d" \ -e "/--cpu_bind=none/d" \ ${file} > ${file}.tmp elif [ ${executionType} -eq 4 ] ; then # SPMD + MPI only sed -e "s/::JobNumProcTot::/${mpiTasks}/" \ -e "/::openMPthreads::/d" \ -e "/#MSUB -x/d" \ -e "/--cpu_bind=none/d" \ ${file} > ${file}.tmp elif [ ${executionType} -eq 5 ] ; then # SPMD + OMP only sed -e "s/::openMPthreads::/${openMPthreads}/" \ -e "/::JobNumProcTot::/d" \ -e "/#MSUB -x/d" \ -e "/--cpu_bind=none/d" \ ${file} > ${file}.tmp elif [ ${executionType} -eq 6 ] ; then # SEQUENTIAL THEN sed -e "s/::JobNumProcTot::/1/" \ -e "/::openMPthreads::/d" \ -e "/#MSUB -x/d" \ -e "/--cpu_bind=none/d" \ ${file} > ${file}.tmp fi IGCM_sys_Mv ${file}.tmp ${file} IGCM_debug_PopStack "IGCM_sys_updateHeaders" } ############################################################ # Build MPI/OMP scripts run file (dummy function) #D-#================================================== #D-function IGCM_sys_build_run_file #D-* Purpose: build run file (deprecated) #D-* Examples: #D- function IGCM_sys_build_run_file { IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file " } ############################################################ # Build MPI/OMP scripts #D-#================================================== #D-function IGCM_sys_build_execution_scripts #D-* Purpose: build execution scripts to be launch by ${HOST_MPIRUN_COMMAND} #D-* Examples: #D- function IGCM_sys_build_execution_scripts { IGCM_debug_PushStack "IGCM_sys_build_execution_scripts" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_build_execution_scripts " $@ fi EXECUTION=${HOST_MPIRUN_COMMAND} if ( ${OK_PARA_MPMD} ) ; then # MPMD mode # 1 MPI only # 2 MPI/OpenMP mpirun method # 3 MPI/OpenMP ccc_mprun method if [ -f run_file ] ; then IGCM_sys_Rm -f run_file fi touch run_file # case 1 : Only MPI (MPMD) if ( ! ${OK_PARA_OMP} ) ; then # Build run_file # First loop on the components for the coupler ie oasis (only if oasis3) # the coupler ie oasis3 must be the first one for comp in ${config_ListOfComponents[*]} ; do eval ExeNameIn=\${config_Executable_${comp}[0]} eval ExeNameOut=\${config_Executable_${comp}[1]} # for CPL component only if [ "X${comp}" = "XCPL" ] && [ "X${ExeNameOut}" != X\"\" ] ; then eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} eval comp_proc_omp_loc=\${${comp}_PROC_OMP} echo "${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file fi done # Then second loop on the components for comp in ${config_ListOfComponents[*]} ; do eval ExeNameIn=\${config_Executable_${comp}[0]} eval ExeNameOut=\${config_Executable_${comp}[1]} # Only if we really have an executable for the component and not the coupler ie oasis: if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" != "XCPL" ] ) ; then eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} eval comp_proc_omp_loc=\${${comp}_PROC_OMP} echo "${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file fi done EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file" IGCM_sys_Chmod u+x run_file if ( $DEBUG_sys ) ; then echo "run_file contains : " cat run_file fi elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "X" ] || [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xmpirun" ] ) ; then # 2 MPI/OpenMP mpirun method # Use of mpirun instead of ccc_mprun EXECUTION="time mpirun" # Hosts treatment ${EXECUTION} hostname | sort | uniq > hosts.tmp i=0 rm -f hosts rankfile IGCM_debug_Print 1 "sys Curie, Hosts available :" for nodes in `cat hosts.tmp` do host[$i]=$nodes echo "${host[$i]}" >> hosts IGCM_debug_Print 1 ${host[$i]} i=$((i+1)) done rm -f hosts.tmp listnodes=${host[*]} EXECUTION="${EXECUTION} -hostfile hosts -rankfile rankfile" # Initialisation rank=0 current_core=0 init_exec=n # Loop on the components for comp in ${config_ListOfComponents[*]} ; do eval ExeNameIn=\${config_Executable_${comp}[0]} eval ExeNameOut=\${config_Executable_${comp}[1]} # Not possible if oasis has an executable (i.e old version of oasis3) if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" = "XCPL" ] ) ; then IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version" IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler" IGCM_debug_Verif_Exit fi # Only if we really have an executable for the component : if [ "X${ExeNameOut}" != X\"\" ] ; then eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} eval comp_proc_omp_loc=\${${comp}_PROC_OMP} eval comp_proc_nod_loc=\${${comp}_PROC_NOD} echo "#!/bin/ksh" > script_${ExeNameOut}.ksh echo "" >> script_${ExeNameOut}.ksh if [ ${comp_proc_omp_loc} -gt 1 ] ; then # Check if the number of threads is correct case ${comp_proc_omp_loc} in 2|4|8|16) IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads" ;; *) IGCM_debug_Exit "ERROR with OMP parameters !" IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads" IGCM_debug_Print 2 "Only 2,4,8,16 as number of OMP threads are possible " IGCM_debug_Verif_Exit ;; esac echo "export KMP_STACKSIZE=3g" >> script_${ExeNameOut}.ksh echo "export KMP_LIBRARY=turnaround" >> script_${ExeNameOut}.ksh echo "export MKL_SERIAL=YES" >> script_${ExeNameOut}.ksh echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh fi #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh echo "(( MYMPIRANK = OMPI_COMM_WORLD_RANK )) " >> script_${ExeNameOut}.ksh echo "MYMPIRANK=\$(printf '%3.3d\n' \${MYMPIRANK})" >> script_${ExeNameOut}.ksh echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${MYMPIRANK} 2>out_${ExeNameOut}.err.\${MYMPIRANK}" >> script_${ExeNameOut}.ksh IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh if [ ${init_exec} = y ] ; then EXECUTION="${EXECUTION} : -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh" else EXECUTION="${EXECUTION} -np ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh" init_exec=y fi # Build rankfile : method used to assign cores and nodes for the MPI process # Ex : #rank 0=curie5296 slot=0,1,2,3 #rank 1=curie5296 slot=4,5,6,7 # Example of final command : # mpirun -hostfile hosts -rankfile rankfile -np 27 ./script_lmdz.x.ksh : -np 5 ./script_opa.xx.ksh # with script_lmdz.x.ksh : # #!/bin/ksh #export KMP_STACKSIZE=3g #export KMP_LIBRARY=turnaround #export MKL_SERIAL=YES #OMP_NUM_THREADS=4 #./lmdz.x if [ ${comp_proc_nod_loc} -gt 1 ] ; then (( offset_comp_proc_loc = NB_CORE_PER_NODE / (comp_proc_mpi_loc / comp_proc_nod_loc) )) else (( offset_comp_proc_loc = comp_proc_omp_loc )) fi for nb_proc_mpi in `seq 0 $(($comp_proc_mpi_loc-1))`; do (( index_host = current_core / NB_CORE_PER_NODE )) host_value=${host[${index_host}]} (( slot = current_core % NB_CORE_PER_NODE )) virg="," string_final="" for index in `seq $slot $(($slot+$comp_proc_omp_loc-1))`; do string=$index$virg string_final=$string_final$string done string_final=$( echo $string_final | sed "s/.$//" ) echo "rank $rank=$host_value slot=$string_final" >> rankfile (( rank = rank + 1 )) (( current_core = current_core + offset_comp_proc_loc )) done fi done elif ( [ "X${config_UserChoices_ExecutionModeOnCurie}" = "Xccc_mprun" ] ) ; then # 3 MPI/OpenMP ccc_mprun method # MPI-OpenMP (MPMD) # example of run_file # 71-8 env OMP_NUM_THREADS=8 ./script_lmdz.x.ksh # 480-1 env OMP_NUM_THREADS=1 ./script_opa.xx.ksh # 1-1 env OMP_NUM_THREADS=1 ./script_xios.x.ksh # Loop on the components for comp in ${config_ListOfComponents[*]} ; do eval ExeNameIn=\${config_Executable_${comp}[0]} eval ExeNameOut=\${config_Executable_${comp}[1]} # Not possible if oasis has an executable (i.e old version of oasis3) if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" = "XCPL" ] ) ; then IGCM_debug_Exit "ERROR MPMD with hybrid MPI-OpenMP is not available with oasis3 version" IGCM_debug_Print 2 "Only available with oasis3-MCT version coupler" IGCM_debug_Verif_Exit fi # Only if we really have an executable for the component : if [ "X${ExeNameOut}" != X\"\" ] ; then eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} eval comp_proc_omp_loc=\${${comp}_PROC_OMP} # Build script files echo "#!/bin/ksh" > script_${ExeNameOut}.ksh echo "" >> script_${ExeNameOut}.ksh if [ ${comp_proc_omp_loc} -gt 1 ] ; then # Check if the number of threads is correct case ${comp_proc_omp_loc} in 2|4|8|16) IGCM_debug_Print 1 "You run ${ExeNameOut} on ${comp_proc_omp_loc} OMP threads" ;; *) IGCM_debug_Exit "ERROR with OMP parameters !" IGCM_debug_Print 2 "${comp_proc_omp_loc} is not possible as number of OMP threads" IGCM_debug_Print 2 "Only 2,4,8,16 as number of OMP threads are possible " IGCM_debug_Verif_Exit ;; esac ### only for LMDZ? echo "export KMP_STACKSIZE=3g" >> script_${ExeNameOut}.ksh echo "export KMP_LIBRARY=turnaround" >> script_${ExeNameOut}.ksh echo "export MKL_SERIAL=YES" >> script_${ExeNameOut}.ksh echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh fi # to have out/err per process on different files echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}" >> script_${ExeNameOut}.ksh #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh # Complete run_file echo "${comp_proc_mpi_loc}-${comp_proc_omp_loc} env OMP_NUM_THREADS=${comp_proc_omp_loc} ./script_${ExeNameOut}.ksh " >>run_file fi done ## variable added to stop after 60s instead of 600s by default. ## This is used when no error comes from executables and when something stopped an executable without notice. export SLURM_WAIT=60 ## module advised by TGCC (instead of 2 variables) module load feature/bridge/heterogenous_mpmd # set EXECUTION for ccc_mprun case (similar to #1 : MPI only MPMD method) EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file" IGCM_sys_Chmod u+x run_file if ( $DEBUG_sys ) ; then echo "run_file contains : " cat run_file fi else IGCM_debug_Print 1 "sys Curie : choose mpirun or ccc_mprun in config.card for ExecutionModeOnCurie" fi # 1 2 or 3 if ${OK_PARA_MPMD} else # Only one executable (SPMD mode). for comp in ${config_ListOfComponents[*]} ; do # Only if we really have an executable for the component : eval ExeNameOut=\${config_Executable_${comp}[1]} if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${ExeNameOut}" != "Xinca.dat" ] ) ; then # Build script files echo "#!/bin/ksh" > script_${ExeNameOut}.ksh echo "" >> script_${ExeNameOut}.ksh IGCM_sys_Chmod u+x script_${ExeNameOut}.ksh if ( ${OK_PARA_OMP} ) ; then eval comp_proc_omp_loc=\${${comp}_PROC_OMP} echo "" >> script_${ExeNameOut}.ksh echo "export KMP_STACKSIZE=3g" >> script_${ExeNameOut}.ksh echo "export KMP_LIBRARY=turnaround" >> script_${ExeNameOut}.ksh echo "export MKL_SERIAL=YES" >> script_${ExeNameOut}.ksh echo "OMP_NUM_THREADS=${comp_proc_omp_loc}" >> script_${ExeNameOut}.ksh fi if ( ${OK_PARA_MPI} ) ; then eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} # Default : ccc_mprun used if nb_proc gt 1 # to have out/err per process on different files echo "./${ExeNameOut} > out_${ExeNameOut}.out.\${SLURM_PROCID} 2>out_${ExeNameOut}.err.\${SLURM_PROCID}" >> script_${ExeNameOut}.ksh #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh EXECUTION="${HOST_MPIRUN_COMMAND} -n ${comp_proc_mpi_loc} ./script_${ExeNameOut}.ksh" else # Default : ccc_mprun is NOT used if nb_proc eq 1 # to have out/err per process on different files echo "./${ExeNameOut} > out_${ExeNameOut}.out 2>out_${ExeNameOut}.err" >> script_${ExeNameOut}.ksh #echo "./${ExeNameOut}" >> script_${ExeNameOut}.ksh EXECUTION="/usr/bin/time ./script_${ExeNameOut}.ksh" fi IGCM_debug_Print 1 "sys Curie : script_${ExeNameOut}.ksh contains" cat script_${ExeNameOut}.ksh fi done fi # ${OK_PARA_MPMD} IGCM_debug_Print 1 "sys Curie : execution command is " IGCM_debug_Print 1 "$EXECUTION" IGCM_debug_PopStack "IGCM_sys_build_execution_scripts" } #D-#================================================== #D-function IGCM_sys_check_path #D-* Purpose: check that RUN_DIR_PATH that will be removed on some machine #D-* do not point to an important use directory. Stop immediately in that case. #D-* Examples: #D- function IGCM_sys_check_path { IGCM_debug_PushStack "IGCM_sys_check_path" if ( $DEBUG_sys ) ; then echo "IGCM_sys_check_path" fi if ( [ X${RUN_DIR_PATH} = X${HOME} ] || [ X${RUN_DIR_PATH} = X${WORKDIR} ] || [ X${RUN_DIR_PATH} = X${SCRATCHDIR} ] || [ X${RUN_DIR_PATH} = X${CCCWORKDIR} ] || [ X${RUN_DIR_PATH} = X${CCCSTOREDIR} ] ) ; then IGCM_debug_Print 1 "Variable RUN_DIR_PATH is pointing to an important directory : ${RUN_DIR_PATH}" IGCM_debug_Print 1 "Please check the RUN_DIR_PATH definition in your Job : Job_${config_UserChoices_JobName}" IGCM_debug_Exit "This will stop the job" fi IGCM_debug_PopStack "IGCM_sys_check_path" } #D-#================================================== #D-function IGCM_sys_check_quota #D-* Purpose: check user quota. Stop the simulation if quota above 90% #D-* Examples: #D- function IGCM_sys_check_quota { IGCM_debug_PushStack "IGCM_sys_check_quota" if ( $DEBUG_sys ) ; then echo "IGCM_sys_check_quota" fi # Limit of quota (in %) limit_quota=90 # Check of the volume volume_quota=$(ccc_quota | grep ' scratch' | gawk '{print $2}') volume_avail=$(ccc_quota | grep ' scratch' | gawk '{print $3}') if ( [ ! X${volume_quota} = X ] && [ ! ${volume_quota} = "-" ] ) ; then unit_avail=${volume_avail: -1} unit_quota=${volume_quota: -1} if [ "${unit_quota}" = "*" ] ; then IGCM_debug_Print 1 "Please, check your quota of volume on scratch" IGCM_debug_Print 1 "More than 100% of your quota is used" IGCM_debug_Print 1 "Use the ccc_quota command to check" IGCM_debug_Print 1 "You must have more than 10% available to run" IGCM_debug_Exit "Not enough space to run ! STOP HERE" IGCM_debug_Verif_Exit fi temp_avail=${volume_avail%%${volume_avail: -1}*} temp_quota=${volume_quota%%${volume_quota: -1}*} if [ ! ${unit_avail} = ${unit_quota} ] ; then # Convertion if [ ${volume_avail: -1} = "T" ] ; then (( temp_avail = temp_avail * 1000000000000 )) elif [ ${volume_avail: -1} = "G" ] ; then (( temp_avail = temp_avail * 1000000000 )) elif [ ${volume_avail: -1} = "M" ] ; then (( temp_avail = temp_avail * 1000000 )) elif [ ${volume_avail: -1} = "k" ] ; then (( temp_avail = temp_avail * 1000 )) else (( temp_avail = volume_avail )) fi if [ ${volume_quota: -1} = "T" ] ; then (( temp_quota = temp_quota * 1000000000000 )) elif [ ${volume_quota: -1} = "G" ] ; then (( temp_quota = temp_quota * 1000000000 )) elif [ ${volume_quota: -1} = "M" ] ; then (( temp_quota = temp_quota * 1000000 )) elif [ ${volume_quota: -1} = "k" ] ; then (( temp_quota = temp_quota * 1000 )) else (( temp_quota = volume_quota )) fi fi quota_volume=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc) # echo "volume ratio is " $quota_volume if [ ${quota_volume} -ge ${limit_quota} ] ; then IGCM_debug_Print 1 "Please, check your quota of volume on scratch" IGCM_debug_Print 1 "${quota_volume}% of your quota is used" IGCM_debug_Print 1 "Use the ccc_quota command to check" IGCM_debug_Print 1 "You must have more than 10% available to run" IGCM_debug_Exit "Not enough space to run ! STOP HERE" IGCM_debug_Verif_Exit fi fi # Check of the number of inodes inode_quota=$(ccc_quota | grep ' scratch' | gawk '{print $6}') inode_avail=$(ccc_quota | grep ' scratch' | gawk '{print $7}') if ( [ ! X${inode_quota} = X ] && [ ! ${inode_quota} = "-" ] ) ; then unit_avail=${inode_avail: -1} unit_quota=${inode_quota: -1} if [ "${unit_quota}" = "*" ] ; then IGCM_debug_Print 1 "Please, check your quota of inode on scratch" IGCM_debug_Print 1 "More than 100% of your quota is used" IGCM_debug_Print 1 "Use the ccc_quota command to check" IGCM_debug_Print 1 "You must have more than 10% available to run" IGCM_debug_Exit "Not enough space to run ! STOP HERE" IGCM_debug_Verif_Exit fi temp_avail=${inode_avail%%${inode_avail: -1}*} temp_quota=${inode_quota%%${inode_quota: -1}*} if [ ! ${unit_avail} = ${unit_quota} ] ; then # Convertion if [ ${inode_avail: -1} = "T" ] ; then (( temp_avail = temp_avail * 1000000000000 )) elif [ ${inode_avail: -1} = "G" ] ; then (( temp_avail = temp_avail * 1000000000 )) elif [ ${inode_avail: -1} = "M" ] ; then (( temp_avail = temp_avail * 1000000 )) elif [ ${inode_avail: -1} = "k" ] ; then (( temp_avail = temp_avail * 1000 )) else (( temp_avail = inode_avail )) fi if [ ${inode_quota: -1} = "T" ] ; then (( temp_quota = temp_quota * 1000000000000 )) elif [ ${inode_quota: -1} = "G" ] ; then (( temp_quota = temp_quota * 1000000000 )) elif [ ${inode_quota: -1} = "M" ] ; then (( temp_quota = temp_quota * 1000000 )) elif [ ${inode_quota: -1} = "k" ] ; then (( temp_quota = temp_quota * 1000 )) else (( temp_quota = inode_quota )) fi fi quota_inode=$(echo "scale=2 ; $temp_quota/$temp_avail*100" | bc) # echo "inode ratio is " $quota_inode if [ ${quota_inode} -ge ${limit_quota} ] ; then IGCM_debug_Print 1 "Please, check your quota of inode on scratch" IGCM_debug_Print 1 "${quota_inode}% of your quota is used" IGCM_debug_Print 1 "Use the ccc_quota command to check" IGCM_debug_Print 1 "You must have more than 10% available to run" IGCM_debug_Exit "Not enough space to run ! STOP HERE" IGCM_debug_Verif_Exit fi fi IGCM_debug_PopStack "IGCM_sys_check_quota" } #D-#================================================== #D-function IGCM_sys_projectAccounting #D-* Purpose: store project accounting information in a file #D-* Examples: #D- function IGCM_sys_projectAccounting { IGCM_debug_PushStack "IGCM_sys_projectAccounting" if ( $DEBUG_sys ) ; then echo "IGCM_sys_check_quota" fi ssh curie91 /usr/bin/ccc_myproject > $1 IGCM_debug_PopStack "IGCM_sys_projectAccounting" } #D-#================================================== #D-function IGCM_sys_getJobSchedulerID #D-* Purpose: Get the job ID during execution #D-* Examples: IGCM_sys_getJobSchedulerID jobSchedulerID #D- function IGCM_sys_getJobSchedulerID { IGCM_debug_PushStack "IGCM_sys_getJobSchedulerID" if ( $DEBUG_sys ) ; then echo "IGCM_sys_getJobSchedulerID" fi eval ${1}=${BRIDGE_MSUB_JOBID} IGCM_debug_PopStack "IGCM_sys_getJobSchedulerID" } #D-#================================================== #D-function IGCM_sys_GetJobID #D-* Purpose: Get the job ID from the JobName #D-* Examples: IGCM_sys_GetJobID ${JobName} ${TargetUsr} JobID #D- function IGCM_sys_GetJobID { IGCM_debug_PushStack "IGCM_sys_GetJobID" if ( $DEBUG_sys ) ; then echo "IGCM_sys_GetJobID" fi # With -f option, the full job name is given in the last column ID=$( ccc_mstat -f -u $2 | \ gawk -v JobName=$1 '( $NF ~ JobName ) { print $1 }' ) eval ${3}=${ID} IGCM_debug_PopStack "IGCM_sys_GetJobID" } #D-#================================================== #D-function IGCM_sys_CountJobInQueue #D-* Purpose: Count number of users job #D-* Examples: IGCM_sys_CountJobInQueue ${JobName} NbRun #D- function IGCM_sys_CountJobInQueue { IGCM_debug_PushStack "IGCM_sys_CountJobInQueue" if ( $DEBUG_sys ) ; then echo "IGCM_sys_CountJobInQueue" fi # With -f option, the full job name is given in the last column NbRun=$( ccc_mstat -f | gawk -v JobName=$1 'BEGIN { x=0 } ( $NF ~ JobName ) { x=x+1 } END { print x }' ) eval ${2}=${NbRun} IGCM_debug_PopStack "IGCM_sys_CountJobInQueue" } #D-#================================================== #D-function IGCM_sys_ListJobInQueue #D-* Purpose: Produce a list of users computing jobs (excluding post-processing) #D-* Examples: IGCM_sys_ListJobInQueue ${User} JobNameList #D- function IGCM_sys_ListJobInQueue { IGCM_debug_PushStack "IGCM_sys_ListJobInQueue" if ( $DEBUG_sys ) ; then echo "IGCM_sys_ListJobInQueue" fi # With -f option, the full job name is given in the last column set -A JobList $( ccc_mstat -f | gawk -v User=$1 \ '( $2 == User && \ $NF != /TS/ && \ $NF !~ /PACK/ && \ $NF !~ /REBUILD/ && \ $NF !~ /pack/ ) \ { print $NF }' | sed -e "s/\(.*\)\.[0-9]*/\1/" ) eval set -A ${2} ${JobList[*]} IGCM_debug_PopStack "IGCM_sys_ListJobInQueue" } #D-#================================================== #D-function IGCM_sys_atlas #D-* Purpose: encapsulate atlas call so as to manage error code and curie specificity #D-* Examples: #D- function IGCM_sys_atlas { IGCM_debug_PushStack "IGCM_sys_atlas" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_atlas :" $@ fi typeset status \ccc_mprun atlas $@ > ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ 2>&1 status=$? if [ ${status} -gt 0 ] ; then echo "IGCM_sys_atlas : error code ${status}" cat ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ \rm ${OUTCOMMAND_PATH}/out_command_${LOGIN}.$$ IGCM_debug_PopStack "IGCM_sys_atlas" return 1 else IGCM_debug_PopStack "IGCM_sys_atlas" return 0 fi IGCM_debug_PopStack "IGCM_sys_atlas" } #D-#================================================== #D-function IGCM_sys_rebuild_nemo #D-* Purpose: rebuild nemo parallel files with nemo specific rebuild on curie #D-* Examples: #D- function IGCM_sys_rebuild_nemo { IGCM_debug_PushStack "IGCM_sys_rebuild_nemo" $@ if ( $DEBUG_sys ) ; then echo "IGCM_sys_rebuild_nemo :" $@ fi $( ccc_home -u igcmg)/Tools/curie/bin/rebuild_nemo ${1} ${2} IGCM_debug_PopStack "IGCM_sys_rebuild_nemo" } + DEBUG_sys=true + typeset -r DEBUG_sys + DRYRUN=0 + typeset -r DRYRUN + MYLANG=fr + typeset -r MYLANG + hostname + HOST=curie4530 + typeset HOST + whoami + LOGIN=oboucher + typeset LOGIN + MASTER=curie + typeset MASTER + echo dekcmip6@standard + cut -d@ -f1 + PROJECT=dekcmip6 + typeset PROJECT + jobWarningDelay=80000 + typeset jobWarningDelay + SUBMIT=ccc_msub + typeset SUBMIT + RSYNC=/usr/bin/rsync + typeset -r RSYNC + RSYNC_opt=-va + typeset -r RSYNC_opt + STOREHOST=curie + typeset -r STOREHOST + REMOTE_RSYNC=/usr/bin/rsync + typeset -r REMOTE_RSYNC + [ Xpost-processing '=' Xcomputing ] + module purge # only redirect module from stderr to stdout in interactive mode # to avoid breaking non interactive session (scp, sftp, etc) if [[ $- =~ i ]]; then moduleraw() { eval `/usr/bin/tclsh /usr/share/modules-tcl/libexec/modulecmd.tcl ksh $*`; } module() { moduleraw $* 2>&1 ; } else module() { eval `/usr/bin/tclsh /usr/share/modules-tcl/libexec/modulecmd.tcl ksh $*`; } fi + [[ hvxB == ~(E)i ]] # define function to switch between C and Tcl versions of Modules switchml() { # determine currently used module version typeset currel=`module --version 2>&1 | grep -E '^(Modules|VERSION=)'` if [[ "$currel" =~ 'Tcl' ]]; then typeset mlver='Tcl' typeset curpath='' typeset curmanpath='' elif [[ "$currel" =~ 'VERSION' ]]; then typeset mlver='C' typeset curpath='' typeset curmanpath='' fi # remove specific paths set by current module version if [ -n "$PATH" -a "${curpath:-}" != '' ]; then PATH=${PATH/:$curpath/} PATH=${PATH/$curpath:/} fi if [ -n "$MANPATH" -a "${curmanpath:-}" != '' ]; then MANPATH=${MANPATH/:$curmanpath/} MANPATH=${MANPATH/$curmanpath:/} fi # switch module version if [ "$mlver" = 'Tcl' ]; then if [ -d /usr/share/Modules/init ]; then echo 'Switching to Modules C version' source /usr/share/Modules/init/sh else echo 'Cannot find Modules C version' return 1 fi else echo 'Switching to Modules Tcl version' source /usr/share/modules-tcl/init/ksh fi } # setup ENV variables to get module defined in sub-shells (works for 'sh' # and 'ksh' in interactive mode and 'sh' (zsh-compat), 'bash' and 'ksh' # (zsh-compat) in non-interactive mode. ENV=/usr/share/modules-tcl/init/profile.sh; export ENV + ENV=/usr/share/modules-tcl/init/profile.sh + export ENV BASH_ENV=/usr/share/modules-tcl/init/bash; export BASH_ENV + BASH_ENV=/usr/share/modules-tcl/init/bash + export BASH_ENV # setup FPATH to get module defined in 'ksh' interactive and non-interactive # sub-shells. only set in ksh init script to avoid side effect default FPATH # set for 'zsh' shell when it starts. if [[ ! ":$FPATH:" =~ ':/usr/share/modules-tcl/init/ksh-functions:' ]]; then FPATH+="${FPATH:+:}/usr/share/modules-tcl/init/ksh-functions"; export FPATH fi + [[ ! :/usr/share/modules-tcl/init/ksh-functions: == ~(E):/usr/share/modules-tcl/init/ksh-functions: ]] MODULESHOME=/usr/share/modules-tcl; export MODULESHOME + MODULESHOME=/usr/share/modules-tcl + export MODULESHOME if [[ ! ":$PATH:" =~ ':/usr/bin:' ]]; then PATH=/usr/bin${PATH:+:}$PATH; export PATH fi + [[ ! :/ccc/cont003/home/igcmg/igcmg/Tools/atlas:/ccc/cont003/home/igcmg/igcmg/Tools/fast:/ccc/products/ghostscript-9.04/default/bin:/ccc/products/netcdf-4.3.3.1_hdf5_parallel/default/bin:/ccc/products/ccc_python/2.7.12_201610/bin:/opt/mpi/bullxmpi/1.2.8.4/bin:/ccc/products/icc-17.0.2.174/default/17.0.2.174/bin/intel64:/ccc/cont003/home/igcmg/igcmg/Tools/fcm/bin:/ccc/cont003/home/igcmg/igcmg/Tools/curie/bin:/ccc/cont003/home/igcmg/igcmg/bin:/ccc/cont003/home/igcmg/igcmg/Tools/atlas:/ccc/cont003/home/igcmg/igcmg/Tools/fast:.:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/ccc/products/ccc_users_env/bin:/ccc/products/ifort-17.0.2.174/default/17.0.2.174/bin/intel64:/ccc/products/gsl-2.1/default/bin:/ccc/products/netcdf-utils-4.3.3.1_hdf5/default/bin:/ccc/products/cdo-1.6.7/netcdf-4.3.2_hdf5/bin:/ccc/products/ferret-6.9.3/default/bin:/ccc/cont003/home/igcmg/igcmg/Tools/curie/bin: == ~(E):/usr/bin: ]] manpath=`manpath 2>/dev/null` manpath 2>/dev/null + manpath + 2> /dev/null + manpath=/ccc/products/ghostscript-9.04/default/share/man:/ccc/products/netcdf-4.3.3.1_hdf5_parallel/default/share/man:/ccc/products/ccc_python/2.7.12_201610/share/man:/opt/mpi/bullxmpi/1.2.8.4/man:/ccc/products/icc-17.0.2.174/default/17.0.2.174/man/common:/usr/local/share/man:/usr/share/man/en:/usr/share/man:/ccc/products/ccc_users_env/man/en:/ccc/products/ifort-17.0.2.174/default/17.0.2.174/man/common:/ccc/products/gsl-2.1/default/share/man:/ccc/products/netcdf-utils-4.3.3.1_hdf5/default/share/man if [[ ! ":$manpath:" =~ ':/usr/share/man:' ]]; then MANPATH=/usr/share/man${manpath:+:}$manpath; export MANPATH fi + [[ ! :/ccc/products/ghostscript-9.04/default/share/man:/ccc/products/netcdf-4.3.3.1_hdf5_parallel/default/share/man:/ccc/products/ccc_python/2.7.12_201610/share/man:/opt/mpi/bullxmpi/1.2.8.4/man:/ccc/products/icc-17.0.2.174/default/17.0.2.174/man/common:/usr/local/share/man:/usr/share/man/en:/usr/share/man:/ccc/products/ccc_users_env/man/en:/ccc/products/ifort-17.0.2.174/default/17.0.2.174/man/common:/ccc/products/gsl-2.1/default/share/man:/ccc/products/netcdf-utils-4.3.3.1_hdf5/default/share/man: == ~(E):/usr/share/man: ]] if [ "${MODULEPATH:-}" = '' ]; then if [ -r /usr/share/modules-tcl/init/.modulespath ]; then MODULEPATH=`sed -n 's/[ #].*$//; /./H; $ { x; s/^\n//; s/\n/:/g; p; }' \ /usr/share/modules-tcl/init/.modulespath`; export MODULEPATH else MODULEPATH=; export MODULEPATH fi fi + [ /opt/Modules/default/modulefiles/applications:/opt/Modules/default/modulefiles/environment:/opt/Modules/default/modulefiles/tools:/opt/Modules/default/modulefiles/graphics:/opt/Modules/default/modulefiles/parallel:/opt/Modules/default/modulefiles/libraries:/opt/Modules/default/modulefiles/compilers '=' '' ] if [ "${LOADEDMODULES:-}" = '' ]; then LOADEDMODULES=; export LOADEDMODULES fi + [ ccc:licsrv/standard:c/intel/17.0.2.174:licsrv/intel:c++/intel/17.0.2.174:fortran/intel/17.0.2.174:mkl/17.0.2.174:intel/17.0.2.174:mpi/bullxmpi/1.2.8.4:python/2.7.12:netcdf/4.3.3.1_hdf5_parallel:gsl/2.1:nco/4.4.8:cdo/1.6.7_netcdf-4.3.2_hdf5:ghostscript/9.04:ferret/6.9.3:datadir/gencmip6:dfldatadir/gencmip6 '=' '' ] # initialize default environment if no environment loaded yet if [ "$MODULEPATH" = '' -a "$LOADEDMODULES" = '' ]; then # run default environment init if [ -e /usr/share/modules-tcl/default/load/init.sh ]; then source /usr/share/modules-tcl/default/load/init.sh fi # if session is interactive if [[ $- =~ i ]]; then # run interactive-specific env init if it exists if [ -e /usr/share/modules-tcl/default/load/interactive.sh ]; then source /usr/share/modules-tcl/default/load/interactive.sh fi else # run non-interactive-specific env init if it exists if [ -e /usr/share/modules-tcl/default/load/non-interactive.sh ]; then source /usr/share/modules-tcl/default/load/non-interactive.sh fi fi fi + [ /opt/Modules/default/modulefiles/applications:/opt/Modules/default/modulefiles/environment:/opt/Modules/default/modulefiles/tools:/opt/Modules/default/modulefiles/graphics:/opt/Modules/default/modulefiles/parallel:/opt/Modules/default/modulefiles/libraries:/opt/Modules/default/modulefiles/compilers '=' '' -a ccc:licsrv/standard:c/intel/17.0.2.174:licsrv/intel:c++/intel/17.0.2.174:fortran/intel/17.0.2.174:mkl/17.0.2.174:intel/17.0.2.174:mpi/bullxmpi/1.2.8.4:python/2.7.12:netcdf/4.3.3.1_hdf5_parallel:gsl/2.1:nco/4.4.8:cdo/1.6.7_netcdf-4.3.2_hdf5:ghostscript/9.04:ferret/6.9.3:datadir/gencmip6:dfldatadir/gencmip6 '=' '' ] + 1> /dev/null 2>& 1 + ccc_home -u igcmg + . /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_intel17.0.2_curie + 1> /dev/null 2>& 1 + ccc_home -u igcmg + . /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_netcdf4.3.3.1_curie + 1> /dev/null 2>& 1 + ccc_home -u igcmg + . /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_atlas_curie + 1> /dev/null 2>& 1 + PCMDI_MP=/ccc/work/cont003/igcmg/igcmg/PCMDI-MP + export PCMDI_MP + UVCDAT_ANONYMOUS_LOG=FALSE + export UVCDAT_ANONYMOUS_LOG + echo dekcmip6 + grep cmip6 + [[ Xdekcmip6 != X ]] + module list --terse + 2>& 1 + grep dfldatadir/gencmip6 + [[ ! -n dfldatadir/gencmip6 ]] + [ ! Xpost-processing '=' Xchecking ] + IGCM_debug_Print 1 'List of loaded modules:' 2018-07-26 11:03:53 --Debug1--> List of loaded modules: + [ ! Xpost-processing '=' Xchecking ] + module list /usr/bin/tclsh /usr/share/modules-tcl/libexec/modulecmd.tcl ksh $* + /usr/bin/tclsh /usr/share/modules-tcl/libexec/modulecmd.tcl ksh list Currently Loaded Modulefiles: 1) ccc 10) intel/17.0.2.174 2) datadir/gencmip6 11) mpi/bullxmpi/1.2.8.4(default) 3) dfldatadir/gencmip6 12) python/2.7.12 4) licsrv/standard 13) netcdf/4.3.3.1_hdf5_parallel 5) c/intel/17.0.2.174 14) gsl/2.1 6) licsrv/intel 15) nco/4.4.8 7) c++/intel/17.0.2.174 16) cdo/1.6.7_netcdf-4.3.2_hdf5 8) fortran/intel/17.0.2.174 17) ghostscript/9.04 9) mkl/17.0.2.174 18) ferret/6.9.3 + eval + ccc_home -u igcmg + PATH=/ccc/cont003/home/igcmg/igcmg/Tools/atlas:/ccc/cont003/home/igcmg/igcmg/Tools/fast:/ccc/products/ghostscript-9.04/default/bin:/ccc/products/netcdf-4.3.3.1_hdf5_parallel/default/bin:/ccc/products/ccc_python/2.7.12_201610/bin:/opt/mpi/bullxmpi/1.2.8.4/bin:/ccc/products/icc-17.0.2.174/default/17.0.2.174/bin/intel64:/ccc/cont003/home/igcmg/igcmg/Tools/atlas:/ccc/cont003/home/igcmg/igcmg/Tools/fast:/ccc/cont003/home/igcmg/igcmg/Tools/fcm/bin:/ccc/cont003/home/igcmg/igcmg/Tools/curie/bin:/ccc/cont003/home/igcmg/igcmg/bin:/ccc/cont003/home/igcmg/igcmg/Tools/atlas:/ccc/cont003/home/igcmg/igcmg/Tools/fast:.:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/ccc/products/ccc_users_env/bin:/ccc/cont003/home/igcmg/igcmg/Tools/curie/bin:/ccc/products/ifort-17.0.2.174/default/17.0.2.174/bin/intel64:/ccc/products/gsl-2.1/default/bin:/ccc/products/netcdf-utils-4.3.3.1_hdf5/default/bin:/ccc/products/cdo-1.6.7/netcdf-4.3.2_hdf5/bin:/ccc/products/ferret-6.9.3/default/bin:/ccc/cont003/home/igcmg/igcmg/Tools/curie/bin + export PATH + FER_GO='/ccc/cont003/home/igcmg/igcmg/Tools/fast . /ccc/products/ferret-6.9.3/default/go /ccc/products/ferret-6.9.3/default/examples /ccc/products/ferret-6.9.3/default/contrib /ccc/cont003/home/igcmg/igcmg/Tools/atlas /home/cont003/p86denv/IGCM_POST_UTIL/JNL /home/cont003/p86denv/GRAF /home/cont003/p86denv/GRAF/GO' + export FER_GO + FER_PALETTE='. /ccc/products/ferret-6.9.3/default/ppl /ccc/cont003/home/igcmg/igcmg/Tools/fast /ccc/cont003/home/igcmg/igcmg/Tools/atlas /home/cont003/p86denv/GRAF/PALET' + export FER_PALETTE + MirrorlibIGCM=false + typeset -r MirrorlibIGCM + libIGCM_POST=/ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM + typeset -r libIGCM_POST + R_EXE=/bin + typeset -r R_EXE + SUBMIT_DIR=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030 + typeset -x SUBMIT_DIR + R_IN=/ccc/work/cont003/igcmg/igcmg/IGCM + typeset -r R_IN + R_IN_ECMWF=/ccc/work/cont003/dsm/p24data + typeset -r R_IN_ECMWF + RUN_DIR_PATH=/ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947 + typeset -r RUN_DIR_PATH + OUTCOMMAND_PATH=/tmp + typeset -r OUTCOMMAND_PATH + HOST_MPIRUN_COMMAND='/usr/bin/time ccc_mprun -E-K1 ' + typeset -r HOST_MPIRUN_COMMAND + UNIX_MAX_LIMIT=360 + PackDefault=true + DEFAULT_NUM_PROC_OCE=5 + DEFAULT_NUM_PROC_CPL=1 + (( DEFAULT_NUM_PROC_ATM = BATCH_NUM_PROC_TOT - DEFAULT_NUM_PROC_OCE - DEFAULT_NUM_PROC_CPL )) + NB_CORE_PER_NODE=16 + umask 0022 + false . ${libIGCM}/libIGCM_config/libIGCM_config.ksh + . /ccc/cont003/dsku/perle2/home/app/gencmip6/oboucher/IPSLCM613/modipsl/libIGCM/libIGCM_config/libIGCM_config.ksh #!/bin/ksh #************************************************************** # Author: Sebastien Denvil, Martial Mancip # Contact: Sebastien.Denvil__at__ipsl.jussieu.fr Martial.Mancip__at__ipsl.jussieu.fr # $Revision:: 1431 $ Revision of last commit # $Author:: sdipsl $ Author of last commit # $Date:: 2018-03-20 16:34:45 +0100 (Tue, 20 Mar 2018) $ Date of last commit # IPSL (2006) # This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC # #************************************************************** #=================================== function IGCM_config_CommonConfiguration { IGCM_debug_PushStack "IGCM_config_CommonConfiguration" $@ # Debug Print : [ ${Verbosity} -gt 0 ] && echo IGCM_debug_Print 1 "IGCM_config_CommonConfiguration" $@ # config.card path configCardPath=$1 #================================== typeset option auxprint #================================== # Read UserChoices section: [ ${Verbosity} -gt 0 ] && echo IGCM_debug_Print 1 "DefineArrayFromOption : config_UserChoices" IGCM_card_DefineArrayFromSection ${configCardPath} UserChoices for option in ${config_UserChoices[*]} ; do IGCM_card_DefineVariableFromOption ${configCardPath} UserChoices ${option} eval auxprint=\${config_UserChoices_${option}} IGCM_debug_Print 3 "${option} : ${auxprint}" done #================================== # Read Ensemble section: [ ${Verbosity} -gt 0 ] && echo IGCM_debug_Print 1 "DefineArrayFromOption : config_Ensemble" IGCM_card_DefineArrayFromSection ${configCardPath} Ensemble for option in ${config_Ensemble[*]} ; do IGCM_card_DefineVariableFromOption ${configCardPath} Ensemble ${option} eval auxprint=\${config_Ensemble_${option}} IGCM_debug_Print 3 "${option} : ${auxprint}" done #================================== # Read Post section: [ ${Verbosity} -gt 0 ] && echo IGCM_debug_Print 1 "DefineArrayFromOption : config_Post" IGCM_card_DefineArrayFromSection ${configCardPath} Post for option in ${config_Post[*]} ; do IGCM_card_DefineVariableFromOption ${configCardPath} Post ${option} eval auxprint=\${config_Post_${option}} IGCM_debug_Print 3 "${option} : ${auxprint}" done [ ${Verbosity} -gt 0 ] && echo #================================== # Define default value to keep compatibility with previous card: means before changes due to TGCC # Apply some overrules to ensure proper usage of computing centres resources # if [ X${PackDefault} = Xtrue ] ; then if [ X${config_UserChoices_SpaceName} = XTEST ]; then # TEST simulations will not be packed and will stay on SCRATCHDIR filesystem IGCM_debug_Print 1 "SpaceName=TEST. OVERRULE PackFrequency to NONE" config_Post_PackFrequency=NONE else # Default to RebuildFrequency if nothing has been set up related to PackFrequency [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency} fi else # If we DO NOT apply pack in this computing center config_Post_PackFrequency=NONE fi #==================================================== # Define ARCHIVE : Dedicated to large files # Define STORAGE : Dedicated to small/medium files # Define R_OUT : Output tree located on ARCHIVE # Define R_BUF : Output tree located on STORAGE (files waiting treatment, or file lcoation when SpaceName=!PROD) # Define R_FIG : Output tree located on STORAGE hosting figures (monitoring and atlas, and/or small files) # Define R_TMP : A temporary space used by IGCM_debug_send_AMQP_msg__MAILTUNNEL. Must be persistent in between jobs IGCM_sys_defineArchives #==================================================== # R_SAVE : Job output directory # R_BUFR : Job output buffered directory # R_CMIP : Job output directory for CMIP6 standard files if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} R_CMIP=${CMIP6_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName} else R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} R_CMIP=${CMIP6_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} fi else if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName} R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName} R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName} R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName} else R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} fi fi #==================================================== # Define R_OUT_KSH : Storage place for job output # Define R_OUT_EXE : Storage place for binary used during simulation R_OUT_KSH=${R_SAVE}/Out R_OUT_EXE=${R_SAVE}/Exe #==================================================== # Define R_BUF_KSH : Buffer place for job output # Define R_BUF_EXE : Buffer place for binary used during simulation R_BUF_KSH=${R_BUFR}/Out R_BUF_EXE=${R_BUFR}/Exe #==================================================== # Define REBUILD_DIR : where we store files needing rebuild process REBUILD_DIR=${R_BUFR}/REBUILD if [ ! X${TaskType} = Xchecking ] ; then IGCM_sys_MkdirWork ${REBUILD_DIR} fi #==================================================== # DodsCopy : apply default value if not defined if ( [ X${config_Post_DodsCopy} = X${NULL_STR} ] || [ X${config_Post_DodsCopy} = X ] ) ; then config_Post_DodsCopy=TRUE fi #==================================================== # AtlasIPSL : apply default value if not defined if ( [ X${config_Post_AtlasIPSL} = X${NULL_STR} ] || [ X${config_Post_AtlasIPSL} = X ] ) ; then config_Post_AtlasIPSL=TRUE fi #==================================================== # ParserXIOS : apply default value if not defined if ( [ X${config_Post_ParserXIOS} = X${NULL_STR} ] || [ X${config_Post_ParserXIOS} = X ] ) ; then config_Post_ParserXIOS=FALSE fi #==================================================== # MetricsPCMDI : apply default value if not defined if ( [ X${config_Post_MetricsPCMDI} = X${NULL_STR} ] || [ X${config_Post_MetricsPCMDI} = X ] ) ; then config_Post_MetricsPCMDI=FALSE fi #==================================================== # IgnoreNonMonotonic : apply default value if not defined if ( [ X${config_Post_IgnoreNonMonotonic} = X${NULL_STR} ] || [ X${config_Post_IgnoreNonMonotonic} = X ] ) ; then config_Post_IgnoreNonMonotonic=FALSE fi #==================================================== # LightRestartPack : apply default value if not defined if ( [ X${config_Post_LightRestartPack} = X${NULL_STR} ] || [ X${config_Post_LightRestartPack} = X ] ) ; then config_Post_LightRestartPack=FALSE fi #==================================================== # Define StackFileLocation : directory where we store stack files # Define StackFileName : stack file containing call tree and instrumentation # Stack file containing call tree will be stored there. if ( $DEBUG_debug ) ; then StackFileLocation=${StackFileLocation:=${R_BUF_KSH}} [ ! -d ${StackFileLocation} ] && mkdir -p ${StackFileLocation} if [ X${TaskType} = Xcomputing ]; then StackFileName=computing.stack.$$ elif [ X${TaskType} = Xpost-processing ]; then StackFileName=${Script_Post_Output}.stack.$$ elif [ X${TaskType} = Xchecking ]; then StackFileName=checking.stack.$$ else IGCM_debug_Exit "IGCM_config_CommonConfiguration unknown TaskType : ${TaskType}" IGCM_debug_Verif_Exit fi # This boolean will trigger the filling of the stack # Only now we know where things should be ... # We don't fill the stack when we perform checking task if [ ! X${TaskType} = Xchecking ] ; then ActivateStackFilling=true fi fi IGCM_debug_PopStack "IGCM_config_CommonConfiguration" } #=================================== function IGCM_config_Initialize { IGCM_debug_PushStack "IGCM_config_Initialize" # Debug Print : echo IGCM_debug_Print 1 "IGCM_config_Initialize" # Test modipsl tree existence. IGCM_sys_TestDir ${MODIPSL} [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir" IGCM_sys_TestDir ${libIGCM} [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir" IGCM_sys_TestDir ${R_EXE} [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir" IGCM_sys_TestDir ${SUBMIT_DIR} [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir" if ( $DEBUG_debug ) ; then echo "Keep trace of inital SUBMIT_DIR : " ls -lta ${SUBMIT_DIR} fi #================================== # Read ListOfComponents section: echo IGCM_debug_Print 1 "DefineArrayFromSection : ListOfComponents" IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card ListOfComponents for comp in ${config_ListOfComponents[*]} ; do IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/config.card ListOfComponents ${comp} done IGCM_debug_Print 3 ${config_ListOfComponents[*]} #================================== # Read Executable section: IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Executable #================================== # Read Restarts section: # Restarts : Gerneral rule or local for each component. echo IGCM_debug_Print 1 "DefineArrayFromOption : config_Restarts" IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Restarts for option in ${config_Restarts[*]} ; do IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card Restarts ${option} eval auxprint=\${config_Restarts_${option}} IGCM_debug_Print 3 "${option} : ${auxprint}" done #================================== # Define Job Outputs Name echo IGCM_debug_Print 2 "Define Script_Output_Prefix and Exe_Output" Script_Output_Prefix=${config_UserChoices_Script_Output_Prefix:='Script_Output'} IGCM_debug_Print 3 "Script_Output_Prefix = ${Script_Output_Prefix}" Exe_Output=out_execution IGCM_debug_Print 3 "Exe_Output = ${Exe_Output}" #===================================================================# # Prepare variables available for ${COMP}.card and ${COMP}.driver # # But available to any son functions # #===================================================================# # Convert yyyy-mm-dd date to gregorian yyyymmdd DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} ) DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} ) # Period Length In Days between DateBegin and DateEnd (( ExperienceLengthInDays=$( IGCM_date_DaysBetweenGregorianDate ${DateEnd} ${DateBegin} ) + 1 )) if [ ${ExperienceLengthInDays} -lt 0 ] ; then IGCM_debug_Print 1 "Problem with dates in config.card : ${DateEnd} < ${DateBegin} ! You must check that." IGCM_debug_Exit "IGCM_config_Initialize" " Wrong Dates." IGCM_debug_Verif_Exit fi # Day and Year of Initial State (Given in julian format) InitDay=$(( $( IGCM_date_ConvertGregorianDateToJulian $DateBegin ) % 1000 )) InitYear=$(( $( IGCM_date_ConvertGregorianDateToJulian $DateBegin ) / 1000 )) #================================================================# # Test and Prepare directories # #================================================================# # ==> 4 kinds of input files : # 1) R_INIT : Initial State Files (Etat0, carteveg) # 2) R_BC : Boundary Conditions (Forcages, lai) # 3) Parameters files (allready define through ${SUBMIT_DIR}) # 4) Restarts files (allready define in IGCM_config_Initialize) # Here we offer the possibility to redefine R_INIT, R_BC # and PeriodNb through config.card R_INIT=${config_UserChoices_R_INIT:=${R_IN}/INIT} echo IGCM_debug_Print 2 "(Re)Define R_INIT, R_BC and PeriodNb" IGCM_debug_Print 3 "R_IN=${R_IN}" IGCM_debug_Print 3 "R_INIT=${R_INIT}" R_BC=${config_UserChoices_R_BC:=${R_IN}/BC} IGCM_debug_Print 3 "R_BC=${R_BC}" PeriodNb=${config_UserChoices_PeriodNb:=${PeriodNb}} IGCM_debug_Print 3 "Loop in main Job with ${PeriodNb} period(s)" # SD ADA SPECIFIC # # TO FIX # #IGCM_sys_TestDirArchive ${R_IN} #[ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive" if ( ${FirstInitialize} ) ; then IGCM_sys_MkdirArchive ${R_SAVE} [ ! ${config_Post_PackFrequency} = NONE ] && IGCM_sys_Mkdir ${R_BUFR} else IGCM_sys_TestDirArchive ${R_SAVE} [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive ${R_SAVE}" if [ ! ${config_Post_PackFrequency} = NONE ] ; then IGCM_sys_TestDir ${R_BUFR} [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDir ${R_BUFR}" fi # Test state of run in run.card. Will schedule an exit if another process setted it to "Fatal" IGCM_config_StateCheck # And EXIT if not OK IGCM_debug_Verif_Exit fi #==================================================== # Experience type : DEB(ug), DEV(elopment), RUN if [ X${JobType} != XRUN ] ; then echo echo "====================================================" echo "libIGCM JOB is NOT in RUN type mode." echo "!! OUTPUT files will NOT be PROTECTED !!" echo "Be carefull : you can ERASE the result of this job !" case ${JobType} in DEB) echo "DEBUG mode : activation of 'set -vx' mode." echo "DEBUG mode : no protection for output files." echo "DEBUG mode : if active force asynchronous rebuild frequency to PeriodLength frequency." ;; DEV) echo "DEVelopment mode : no protection for output files." echo "DEVelopment mode : if active force asynchronous rebuild frequency to PeriodLength frequency." ;; esac if ( [ X${config_Post_RebuildFrequency} != XNONE ] && [ ${DRYRUN} -eq 0 ] ) ; then if [ X${config_Post_RebuildFrequency} != X${config_UserChoices_PeriodLength} ] ; then echo "------------" echo "WARNING : Job is NOT in RUN mode then we will force REBUILD Frequency" echo " to PeriodLength : ${config_UserChoices_PeriodLength}" echo "------------" config_Post_RebuildFrequency=${config_UserChoices_PeriodLength} fi fi echo "====================================================" echo fi IGCM_debug_PopStack "IGCM_config_Initialize" } #=================================== function IGCM_config_DaysInPeriodLength { IGCM_debug_PushStack "IGCM_config_DaysInPeriodLength" typeset i # Determine number of day(s) in PeriodLength : case ${config_UserChoices_PeriodLength} in *Y|*y) PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | sed -e 's/[yY]//' ) echo IGCM_debug_Print 2 "Number of years for PeriodLength : ${PeriodLengthInYears}" PeriodLengthInDays=0 i=0 until [ $i -ge $PeriodLengthInYears ] ; do (( PeriodLengthInDays = PeriodLengthInDays + $( IGCM_date_DaysInYear $(( year + i )) ) )) (( i=i+1 )) done ;; *M|*m) PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | sed -e 's/[mM]//' ) echo IGCM_debug_Print 2 "Number of months for PeriodLength : ${PeriodLengthInMonths}" PeriodLengthInDays=0 i=0 until [ $i -ge $PeriodLengthInMonths ] ; do if [ $(( 10#${month} + ${i} )) -lt 13 ] ; then (( PeriodLengthInDays = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( 10#${month} + ${i} )) ) )) else (( PeriodLengthInDays = PeriodLengthInDays + $( IGCM_date_DaysInMonth $year $(( 10#${month} + ${i} - 12 )) ) )) fi (( i=i+1 )) done ;; *D|*d) PeriodLengthInMonths=0 PeriodLengthInDays=$( echo ${config_UserChoices_PeriodLength} | sed -e 's/[dD]//' ) echo IGCM_debug_Print 2 "Number of days for PeriodLength : ${PeriodLengthInDays}";; *) IGCM_debug_Exit "IGCM_config_DaysInPeriodLength " ${config_UserChoices_PeriodLength} " invalid period length : choose in *Y, *M, *D." IGCM_debug_Verif_Exit ;; esac IGCM_debug_PopStack "IGCM_config_DaysInPeriodLength" } #=================================== function IGCM_config_DateCoherency { IGCM_debug_PushStack "IGCM_config_DateCoherency" echo IGCM_debug_Print 1 "IGCM_config_DateCoherency" echo typeset Length VerifiedPeriodDateBegin VerifiedPeriodDateEnd # check coherency between (PeriodDateBegin, PeriodDateEnd) and (DateBegin, CumulPeriod, PeriodLength) # DateBegin + CumulPeriod*PeriodLength = PeriodDateBegin echo case ${config_UserChoices_PeriodLength} in *Y|*y) Length=$( IGCM_date_DaysInCurrentPeriod ${DateBegin} $(( ${CumulPeriod} * ${PeriodLengthInYears} ))Y ) ;; *M|*m) Length=$( IGCM_date_DaysInCurrentPeriod ${DateBegin} $(( ${CumulPeriod} * ${PeriodLengthInMonths} ))M ) ;; *D|*d) Length=$( IGCM_date_DaysInCurrentPeriod ${DateBegin} $(( ${CumulPeriod} * ${PeriodLengthInDays} ))D ) ;; esac VerifiedPeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} ${Length}-1 ) if [ ${VerifiedPeriodDateEnd} != ${PeriodDateEnd} ] ; then IGCM_debug_Print 1 "From run.card PeriodDateEnd is not consistent with DateBegin and CumulPeriod." IGCM_debug_Print 1 "We have DateBegin = ${DateBegin}" IGCM_debug_Print 1 "We have CumulPeriod = ${CumulPeriod}" IGCM_debug_Print 1 "We have PeriodDateEnd = ${PeriodDateEnd}" IGCM_debug_Print 1 "We have VerifiedPeriodDateEnd = ${VerifiedPeriodDateEnd}" IGCM_debug_Print 1 "You must have change run.card in an inconsistent way." IGCM_debug_Exit "STOP here to avoid further issues." fi # PeriodDateBegin + PeriodLength = PeriodDateEnd VerifiedPeriodDateBegin=$( IGCM_date_AddDaysToGregorianDate ${VerifiedPeriodDateEnd} $(( ${PeriodLengthInDays} * -1 )) ) IGCM_debug_PopStack "IGCM_config_DateCoherency" } #=================================== function IGCM_config_StateCheck { IGCM_debug_PushStack "IGCM_config_StateCheck" #Test state of run in run.card IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodState if [ ${run_Configuration_PeriodState} = "Fatal" ] ; then echo IGCM_debug_Print 1 "!! Error in run.card with PeriodState : " ${run_Configuration_PeriodState} "!!" IGCM_debug_Print 1 "Check the overall status of your simulation by visiting this page:" IGCM_debug_Print 1 "http://prodiguer-test-web.ipsl.fr/static/simulation.detail.html?uid=${simuid}" IGCM_debug_Print 1 "Then try running ${libIGCM}/clean_PeriodLenght.job to clean latest failed period" IGCM_debug_Print 1 "Or try running ${libIGCM}/clean_latestPackperiod.job to clean lastest pack period." IGCM_debug_Print 1 "Or use ${libIGCM}/purge_simulation.job to delete the full simulation." IGCM_debug_Exit elif [ $( echo ${run_Configuration_PeriodState} | grep Fatal | wc -l ) -eq 1 ] ; then echo IGCM_debug_Print 1 "!! Error in run.card with PeriodState : " ${run_Configuration_PeriodState} "!!" IGCM_debug_Print 1 "Compute jobs has been stop because at least the above mentionned post-processing jobs fails." IGCM_debug_Print 1 "Check post-processing jobs carefully by visiting this page:" IGCM_debug_Print 1 "http://prodiguer-test-web.ipsl.fr/static/simulation.detail.html?uid=${simuid}" IGCM_debug_Print 1 "Please visit that page to see how to fix issues:" IGCM_debug_Print 1 "https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocGmonitor" IGCM_debug_Print 1 "Then try running ${libIGCM}/clean_PeriodLenght.job to clean latest failed period" IGCM_debug_Print 1 "Or try running ${libIGCM}/clean_latestPackperiod.job to clean latest pack period." IGCM_debug_Print 1 "Or use ${libIGCM}/purge_simulation.job to delete the full simulation." IGCM_debug_Exit fi IGCM_debug_PopStack "IGCM_config_StateCheck" } #=================================== function IGCM_config_Check { IGCM_debug_PushStack "IGCM_config_Check" # If one of the following modulo is not zero : # we will issue an error then explain and exit in # AA_job IGCM_debug_Verif_Exit call before binary submission echo IGCM_debug_Print 1 "IGCM_config_Check" echo typeset i # Check RebuildFrequency against key frequencies : PeriodLength ; PackFrequency ; TimeSeriesFrequency ; SeasonalFrequency if ( [ ! X${config_Post_RebuildFrequency} = X${NULL_STR} ] && [ ! X${config_Post_RebuildFrequency} = XNONE ] ) ; then AsynchronousRebuild=true IGCM_debug_Print 1 "Asynchronous rebuild has been activated." echo # modulo (RebuildFrequency and PeriodLength/TimeSeriesFrequency/SeasonalFrequency) must be zero IGCM_debug_Print 1 "Check coherence between RebuildFrequency and PeriodLength" IGCM_post_CheckModuloFrequency config_Post_RebuildFrequency config_UserChoices_PeriodLength IGCM_debug_Print 1 "Check coherence between PackFrequency and RebuildFrequency" IGCM_post_CheckModuloFrequency config_Post_PackFrequency config_Post_RebuildFrequency IGCM_debug_Print 1 "Check coherence between TimeSeriesFrequency and RebuildFrequency" IGCM_post_CheckModuloFrequency config_Post_TimeSeriesFrequency config_Post_RebuildFrequency IGCM_debug_Print 1 "Check coherence between SeasonalFrequency and RebuildFrequency" IGCM_post_CheckModuloFrequency config_Post_SeasonalFrequency config_Post_RebuildFrequency else AsynchronousRebuild=false IGCM_debug_Print 1 "Asynchronous rebuild has not been activated" IGCM_debug_Print 1 "Proceed with standard post-treatment pathway" echo #modulo (PeriodLength and TimeSeriesFrequency/SeasonalFrequency) must be zero IGCM_debug_Print 1 "Check coherence between TimeSeriesFrequency and PeriodLength" IGCM_post_CheckModuloFrequency config_Post_TimeSeriesFrequency config_UserChoices_PeriodLength IGCM_debug_Print 1 "Check coherence between SeasonalFrequency and PeriodLength" IGCM_post_CheckModuloFrequency config_Post_SeasonalFrequency config_UserChoices_PeriodLength fi # Check PackFrequency against other key frequencies # Modulo (PackFrequency and TimeSeriesFrequency/SeasonalFrequency and PeriodLenght) must be zero if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then Pack=true # IGCM_debug_Print 1 "Check coherence between PackFrequency and PeriodLength" IGCM_post_CheckModuloFrequency config_Post_PackFrequency config_UserChoices_PeriodLength IGCM_debug_Print 1 "Check coherence between TimeSeriesFrequency and PackFrequency" IGCM_post_CheckModuloFrequency config_Post_TimeSeriesFrequency config_Post_PackFrequency IGCM_debug_Print 1 "Check coherence between SeasonalFrequency and PackFrequency" IGCM_post_CheckModuloFrequency config_Post_SeasonalFrequency config_Post_PackFrequency else Pack=false fi # modulo (TimeSeriesFrequency and all Chunck2D) must be zero NbJob=${#CHUNCK2D_SIZE[@]} i=0 until [ $i -ge $NbJob ]; do value=${CHUNCK2D_SIZE[${i}]} IGCM_debug_Print 1 "Check coherence between ${CHUNCK2D_NAME[${i}]} Chunck2D frequency and TimeSeriesFrequency" IGCM_post_CheckModuloFrequency value config_Post_TimeSeriesFrequency case ${value} in *Y|*y) ;; *) IGCM_debug_Print 1 "All ChunckJob2D frequency must be expressed in year *Y|*y in comp.card" IGCM_debug_Exit "This will stop the job" ;; esac (( i=i+1 )) done # modulo (TimeSeriesFrequency and all Chunck3D) must be zero NbJob=${#CHUNCK3D_SIZE[@]} i=0 until [ $i -ge $NbJob ]; do value=${CHUNCK3D_SIZE[${i}]} IGCM_debug_Print 1 "Check coherence between ${CHUNCK3D_NAME[${i}]} Chunck3D frequency and TimeSeriesFrequency" IGCM_post_CheckModuloFrequency value config_Post_TimeSeriesFrequency case ${value} in *Y|*y) ;; *) IGCM_debug_Print 1 "All ChunckJob3D frequency must be expressed in year *Y|*y in comp.card" IGCM_debug_Exit "This will stop the job" ;; esac (( i=i+1 )) done # check to be sure there is enough space on temporary filesystems to run echo IGCM_debug_Print 1 "Check if there is enough space on temporary filesystem" IGCM_sys_check_quota # check to be sure that RUN_DIR_PATH, that will be removed is not pointing to an important directory echo IGCM_debug_Print 1 "Check where RUN_DIR_PATH variable is pointing to" IGCM_sys_check_path IGCM_debug_PopStack "IGCM_config_Check" } #=================================== function IGCM_config_ConfigureExecution { IGCM_debug_PushStack " IGCM_config_ConfigureExecution" #echo IGCM_debug_Print 1 " IGCM_config_ConfigureExecution" #echo typeset ExeNameIn ExeNameFirst CompNameFirst configCardPath comp i typeset tempvar tempvarMPI tempvarNOD NbElts NbExec # config.card path configCardPath=$1 coreNumber=0 mpiTasks=0 openMPthreads=0 NbExec=0 OK_PARA_MPI=false OK_PARA_OMP=false OK_PARA_NOD=false OK_PARA_MPMD=false for comp in ${config_ListOfComponents[*]} ; do # Manage component executable IGCM_card_DefineArrayFromOption ${configCardPath} Executable ${comp} eval ExeNameIn=\${config_Executable_${comp}[0]} # NO order in config.card for parallelized values ! # just use suffix : MPI , OMP and NOD (for number of NODes.) # NOD is the number of NODes allocated eval ${comp}_PROC_NOD=0 # MPI is the number of MPI processus per nodes eval ${comp}_PROC_MPI=0 # OMP is the number of OpenMP threads per MPI processus eval ${comp}_PROC_OMP=0 # Only if we really have an executable for the component : if ( [ "X${ExeNameIn}" != X\"\" ] && [ "X${ExeNameIn}" != "Xinca.dat" ] ) ; then IGCM_debug_Print 1 ${comp} # Keep the first executable found and the first CompName ExeNameFirst=${ExeNameIn} CompNameFirst=${comp} # Are we a second executable? (( NbExec = NbExec + 1 )) # set 1 MPI task, 1 OpenMP thread and 1 node as default eval ${comp}_PROC_MPI=1 eval ${comp}_PROC_OMP=1 eval ${comp}_PROC_NOD=1 eval NbElts=\${#config_Executable_${comp}[@]} if [ ${NbElts} -gt 2 ] ; then # # CURRENT METHOD TO SPECIFY MPI AND OMP RESSOURCES # i=2 while [ ${i} -lt ${NbElts} ] ; do eval tempvar=\${config_Executable_${comp}[${i}]} IGCM_debug_Print 2 ${tempvar} if [ X${tempvar} = X ] ; then IGCM_debug_Print 2 "Error reading MPI/OMP parameters !!!" IGCM_debug_Exit "Check your config.card. Exit now" IGCM_debug_Verif_Exit fi case ${tempvar} in *[mM][pP][iI]*) # Read MPI parameter for composante eval ${comp}_PROC_MPI=$( echo ${tempvar} | tr '[a-z]' '[A-Z]' | sed -e "s/MPI//" ) OK_PARA_MPI=true;; *[oO][mM][pP]*) # Read OMP parameter for composante eval ${comp}_PROC_OMP=$( echo ${tempvar} | tr '[a-z]' '[A-Z]' | sed -e "s/OMP//" ) ;; *[nN][oO][dD]*) # Read NOD (NumBer of Nodes) parameter for composante eval ${comp}_PROC_NOD=$( echo ${tempvar} | tr '[a-z]' '[A-Z]' | sed -e "s/NOD//" ) OK_PARA_NOD=true OK_PARA_MPI=true ;; esac (( i = i + 1 )) done else # # BACKWARD COMPATIBILITY NOT SUPPORTED ANYMORE # IGCM_debug_Exit "You are using a deprecated ressources specification mechanism in your config.card" IGCM_debug_Exit "Please check : https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocEsetup#ThesectionExecutable" IGCM_debug_Exit "Please modify ${configCardPath}" exit fi if [ ${comp}_PROC_NOD -gt 1 ] ; then if ( [ ${comp}_PROC_MPI -gt 1 ] && [ ${comp}_PROC_OMP -gt 1 ] ) ; then IGCM_debug_Print 2 "Error using MPI/OMP/NOD parameters !!!" IGCM_debug_Exit "It is not allowed to use MPI and OMP and NOD parameters for the same component" IGCM_debug_Exit "Check your config.card. Exit now" IGCM_debug_Verif_Exit fi if [ "${comp}" != "IOS" ] ; then IGCM_debug_Print 2 "Error using NOD parameter !!!" IGCM_debug_Exit "NOD parameter is only available for IOS component " IGCM_debug_Exit "Check your config.card. Exit now" IGCM_debug_Verif_Exit fi fi eval tempvarMPI=\${${comp}_PROC_MPI} eval tempvarNOD=\${${comp}_PROC_NOD} eval tempvarOMP=\${${comp}_PROC_OMP} # set OMP mode if more than 1 OMP thread. [ ${tempvarOMP} -ge 2 ] && OK_PARA_OMP=true # Number of OMP threads [ ${openMPthreads} -lt ${tempvarOMP} ] && openMPthreads=${tempvarOMP} # SUM UP NUMBER OF CORES if [ ${comp}_PROC_NOD -gt 1 ] ; then (( coreNumber = coreNumber + tempvarNOD * NB_CORE_PER_NODE )) else (( coreNumber = coreNumber + tempvarMPI * tempvarNOD * tempvarOMP )) fi # SUM UP NUMBER OF MPI TASKS (( mpiTasks = mpiTasks + tempvarMPI * tempvarNOD )) fi done # MANDATORY FOR THE OPA9.DRIVER. USED TO EDIT OPA NAMELIST # WE SHOULD PLANIFY NUM_PROC_??? DEPRECATION NUM_PROC_CPL=${CPL_PROC_MPI} NUM_PROC_OCE=${OCE_PROC_MPI} NUM_PROC_ATM=${ATM_PROC_MPI} # set MPMD mode if more than 2 executable names. [ ${NbExec} -ge 2 ] && OK_PARA_MPMD=true # Define the execution type we are running in if ( ${OK_PARA_MPMD} ) ; then if ( ${OK_PARA_MPI} ) ; then # MPMD always implies MPI executionType=1 fi if ( ${OK_PARA_OMP} ) ; then # MPMD + MPI/OMP executionType=2 fi else if ( ( ${OK_PARA_MPI} ) && ( ${OK_PARA_OMP} ) ) ; then # SPMD + MPI/OMP executionType=3 elif ( ( ${OK_PARA_MPI} ) && ( ! ${OK_PARA_OMP} ) ) ; then # SPMD + MPI only executionType=4 elif ( ( ! ${OK_PARA_MPI} ) && ( ${OK_PARA_OMP} ) ) ; then # SPMD + OMP only executionType=5 elif ( ( ! ${OK_PARA_MPI} ) && ( ! ${OK_PARA_OMP} ) ) ; then # SEQUENTIAL THEN executionType=6 coreNumber=1 fi fi IGCM_debug_Print 1 "MPI/OMP treatment coreNumber = ${coreNumber}" IGCM_debug_Print 1 "MPI/OMP treatment mpiTasks = ${mpiTasks}" IGCM_debug_Print 1 "MPI/OMP treatment openMPthreads = ${openMPthreads}" IGCM_debug_Print 1 "MPI/OMP treatment executionType = ${executionType}" IGCM_debug_PopStack "IGCM_config_ConfigureExecution" } #=================================== function IGCM_config_PeriodStart { IGCM_debug_PushStack "IGCM_config_PeriodStart" echo IGCM_debug_Print 1 "IGCM_config_PeriodStart" echo if ( ${FirstInitialize} ) ; then #================================================# # Initialize date/period information # #================================================# IGCM_date_GetYearMonthDay ${DateBegin} year month day IGCM_config_DaysInPeriodLength PeriodDateBegin=${DateBegin} PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( ${PeriodLengthInDays} - 1 )) ) CumulPeriod=1 #=================================================# # Write updated run.card # #=================================================# #Correct run.card Configuration for this period IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin ${PeriodDateBegin} IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd ${PeriodDateEnd} IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod ${CumulPeriod} if [ X$( grep "SubmitPath" ${SUBMIT_DIR}/run.card ) != X ] ; then IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration SubmitPath ${SUBMIT_DIR} fi IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Running" else #================================================# # The file run.card allready exist # #================================================# # Test state of run in run.card. Will schedule an exit if another process setted it to "Fatal" IGCM_config_StateCheck # And EXIT if not OK IGCM_debug_Verif_Exit #===================================# # Read updated run.card # #===================================# IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod PeriodDateBegin=$( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateBegin} ) PeriodDateEnd=$( IGCM_date_ConvertFormatToGregorian ${run_Configuration_PeriodDateEnd} ) CumulPeriod=${run_Configuration_CumulPeriod} LastPeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate $( IGCM_date_ConvertFormatToGregorian ${PeriodDateBegin} ) -1 ) if [ ${Period} = 1 ]; then # save last Job output and current run.card typeset Potential IGCM_sys_Cd ${SUBMIT_DIR} # IGCM_debug_Print 2 "Save previous ksh job output" for Potential in $( ls ${Script_Output_Prefix}_${config_UserChoices_JobName}.[0-9][0-9][0-9][0-9][0-9][0-9] ) ; do if [ X${Pack} = Xtrue ] ; then ( IGCM_sys_TestFileBuffer ${R_BUF_KSH}/${Potential} ) || IGCM_sys_Cp ${Potential} ${R_BUF_KSH}/${Potential}.$$ else ( IGCM_sys_TestFileArchive ${R_OUT_KSH}/${Potential} ) || IGCM_sys_Put_Out ${Potential} ${R_OUT_KSH}/${Potential}.$$ NOMOVE IGCM_debug_Print 1 "Save of previous ksh job output is not done for Pack=false" fi done # IGCM_debug_Print 2 "Save current run.card" IGCM_card_CheckConflict run.card if [ X${Pack} = Xtrue ] ; then IGCM_sys_Cp ${SUBMIT_DIR}/run.card ${R_BUF_KSH}/run.card else IGCM_sys_Put_Out ${SUBMIT_DIR}/run.card ${R_OUT_KSH}/run.card NOMOVE IGCM_debug_Print 1 "Save of run.card is not done for Pack=false" fi # IGCM_sys_Cd ${RUN_DIR} else unset FileToBeDeleted fi # Determine number of day(s) in PeriodLength IGCM_date_GetYearMonthDay $PeriodDateBegin year month day IGCM_config_DaysInPeriodLength # Check coherency between (PeriodDateBegin, PeriodDateEnd) and (DateBegin, CumulPeriod, PeriodLength) IGCM_config_DateCoherency # And EXIT if not OK IGCM_debug_Verif_Exit # Test state of run in run.card. Will schedule an exit if another process setted it to "Fatal" IGCM_config_StateCheck # And EXIT if not OK IGCM_debug_Verif_Exit # We can say we are "Running" now. IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Running" fi # BEGIN: SHOULD GO IN A FUNCTION FROM libIGCM_date.ksh # Compute year_m1 and year_p1 (year minus 1Y and year plus 1Y) year_m1=$(( year - 1 )) year_p1=$(( year + 1 )) # Compute month_m1 (month minus 1M) # Compute yyyymm_m1 (yyyymm minus 1M) month_m1=$(( 10#${month} - 1 )) if [ ${month_m1} = 0 ]; then month_m1=12 yyyymm_m1=${year_m1}12 elif [ ${month_m1} -le 9 ]; then month_m1=0${month_m1} yyyymm_m1=${year}${month_m1} else yyyymm_m1=${year}${month_m1} fi # Compute month_p1 (month plus 1M) # Compute yyyymm_p1 (yyyymm plus 1M) month_p1=$(( 10#${month} + 1 )) if [ ${month_p1} = 13 ]; then month_p1=01 yyyymm_p1=${year_p1}01 elif [ ${month_p1} -le 9 ]; then month_p1=0${month_p1} yyyymm_p1=${year}${month_p1} else yyyymm_p1=${year}${month_p1} fi #===================================================================# # Calculate CyclicYear to be used for looping over a given forcing # # period. Add CyclicBegin and CyclicEnd in config.card UserChoices. # #===================================================================# # To use the variable CyclicYear, one must add in config.card CyclicBegin and CyclicEnd. # CyclicBegin is the first year in the cycle. CyclicEnd is the last year included in the cycle. if ( [ ! X${config_UserChoices_CyclicBegin} = X ] && [ ! X${config_UserChoices_CyclicEnd} = X ] ) ; then CycleNb=$(( ${config_UserChoices_CyclicEnd} - ${config_UserChoices_CyclicBegin} + 1 )) CyclicYear_p1=NOTDEFINED # For current year yeartmp=$year diffy=$(( $yeartmp - ${config_UserChoices_CyclicBegin} )) while [ $diffy -lt 0 ] ; do yeartmp=$(( ${yeartmp} + ${CycleNb} )) diffy=$(( $yeartmp - ${config_UserChoices_CyclicBegin} )) done CyclicYear=$(( ( ${diffy} % ${CycleNb} ) + ${config_UserChoices_CyclicBegin} )) # For next coming year yeartmp=$(( $year + 1 )) diffy=$(( $yeartmp - ${config_UserChoices_CyclicBegin} )) while [ $diffy -lt 0 ] ; do yeartmp=$(( ${yeartmp} + ${CycleNb} )) diffy=$(( $yeartmp - ${config_UserChoices_CyclicBegin} )) done CyclicYear_p1=$(( ( ${diffy} % ${CycleNb} ) + ${config_UserChoices_CyclicBegin} )) IGCM_debug_Print 1 "CyclicYear = ${CyclicYear}, CyclicYear_p1 = ${CyclicYear_p1}, current year=$year" else CyclicYear="ERROR_CyclicYear_Variable_Not_Defined" CyclicYear_p1="ERROR_CyclicYear_p1_Variable_Not_Defined" IGCM_debug_Print 1 "CyclicYear wont be use without adding CyclicBegin and CyclicEnd in config.card" fi # END: SHOULD GO IN A FUNCTION FROM libIGCM_date.ksh #===================================================================# # Prepare variables available for ${COMP}.card and ${COMP}.driver # # But available to any son functions # #===================================================================# # Period Length In Days between DateBegin and DateCurrent (at end of period == PeriodDateEnd !) (( SimulationLengthInDays = $( IGCM_date_DaysBetweenGregorianDate ${PeriodDateEnd} ${DateBegin} ) + 1 )) # Debug Print : echo IGCM_debug_Print 1 "IGCM_config_PeriodStart : Before Execution" IGCM_debug_Print 1 "Year of simulation : ${year}" IGCM_debug_Print 1 "Month of simulation : ${month}" IGCM_debug_Print 1 "PeriodLengthInDays : ${PeriodLengthInDays}" IGCM_debug_Print 1 "PeriodDateBegin : ${PeriodDateBegin}" IGCM_debug_Print 1 "PeriodDateEnd : ${PeriodDateEnd}" IGCM_debug_Print 1 "SimulationLengthInDays : ${SimulationLengthInDays}" IGCM_debug_Print 1 "ExperienceLengthInDays : ${ExperienceLengthInDays}" #================================================================# # Prepare variables available for comp_finalyze # #================================================================# # Period for save files DatesPeriod=${PeriodDateBegin}_${PeriodDateEnd} # Prefix for save files of this period PREFIX=${config_UserChoices_JobName}_${DatesPeriod} # List of files that will be deleted in RUN_DIR after run [ -f stack ] && FileToBeDeleted[0]="stack" # Test if the same run as already been saved : if [ X${JobType} = XRUN ] ; then if [ ${DRYRUN} -le 0 ] ; then if ( IGCM_sys_TestFileBuffer ${R_BUF_KSH}/${PREFIX}_${Exe_Output} ) ; then IGCM_debug_Exit "IGCM_config_PeriodStart" "You are currently re-running an old job." IGCM_debug_Print 1 "Because of readonly permissions, you can't re-run a job when saved files" IGCM_debug_Print 1 " are still in the ARCHIVE directory. You must deleted those files, or " IGCM_debug_Print 1 " the whole ${R_SAVE} tree. See different clean_*.job in ${libIGCM} directory." IGCM_debug_Print 1 " This exit has been initiated because at least ${R_BUF_KSH}/${PREFIX}_${Exe_Output} exists." IGCM_debug_Verif_Exit fi fi else if ( IGCM_sys_TestFileBuffer ${R_BUF_KSH}/${PREFIX}_${Exe_Output} ) ; then IGCM_debug_Print 1 "IGCM_config_PeriodStart" "RErun an old job. Allowed in DEBUG or DEV mode." fi fi #================================================================# # Prepare variables available for binary execution # # Call function for creation of run script # # Only done once per job # #================================================================# if [ ${Period} -eq 1 ]; then # Define the execution context (MPMD, SPMD, MPI/OMP ...) IGCM_config_ConfigureExecution ${SUBMIT_DIR}/config.card # Create the execution script for the current context IGCM_sys_build_execution_scripts fi ExecutionFail=false # Update the rabbitMQ queue IGCM_debug_BigBro_Update IGCM_debug_PopStack "IGCM_config_PeriodStart" } #=================================== function IGCM_config_SaveSourceModifications { IGCM_debug_PushStack "IGCM_config_SaveSourceModifications" typeset ExeOutDateMax listVarEnv ExeOutDateMax=$1 listVarEnv="ExeOutDateMax,R_OUT_EXE,PREFIX,SUBMIT_DIR" IGCM_sys_RshMaster "\ . ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh; \ export ExeOutDateMax=${ExeOutDateMax};\ export R_OUT_EXE=${R_OUT_EXE};\ export PREFIX=${PREFIX};\ export SUBMIT_DIR=${SUBMIT_DIR};\ export listVarEnv=${listVarEnv};\ Script_Output=out_SaveSourceModifications;\ IGCM_sys_Qsub ${libIGCM}/SaveSourceModifications.job ${ExeOutDateMax} ${R_OUT_EXE} ${PREFIX} ${SUBMIT_DIR}" IGCM_debug_PopStack "IGCM_config_SaveSourceModifications" } #=================================== function IGCM_config_PeriodEnd { IGCM_debug_PushStack "IGCM_config_PeriodEnd" echo IGCM_debug_Print 1 "IGCM_config_PeriodEnd" echo if [ ${DRYRUN} -le 1 ] ; then IGCM_debug_Print 1 "Check components binary : size and creation date" typeset LS_comp LS_bin ExeDate ExeCpuLog NextExeSize LastCompExeSize typeset comp i typeset ExeNameIn ExeNameOut UpdateExe ExeSecDateMax #==================================# # Get last Exe Size # #==================================# (( i=0 )) if ( ${FirstInitialize} ) ; then run_Log_LastExeSize="" for comp in ${config_ListOfComponents[*]} ; do run_Log_LastExeSize[$i]=0 (( i=i+1 )) done else IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/run.card Log LastExeSize fi #==================================# # And Build ExeDate # #==================================# # ExeDate = ATM_Jun_12_09:34-SRF_Jun_12_09:34-OCE_Jun_12_09:34-ICE_Jun_12_09:34-CPL_Jun_12_09:33 # Would be nice to have next line but no way to format ls output (need to ls -l --time-style "+%Y-%m-%dT%H:%M") # ExeDate = ATM_2009-06-12T09:34+SRF_2009-06-12T09:34+OCE_2009-06-12T09:34+ICE_2009-06-12T09:34+CPL_2009-06-12T09:34 ExeDate="" NextExeSize="( " (( i=0 )) UpdateExe=false (( ExeSecDateMax = 0 )) for comp in ${config_ListOfComponents[*]} ; do IGCM_debug_Print 3 ${comp} eval ExeNameIn=\${config_Executable_${comp}[0]} eval ExeNameOut=\${config_Executable_${comp}[1]} # Only if we really have an executable for the component : if [ X${ExeNameIn} = X\"\" ] ; then # If there is no exe file for this component (( ExeSize=0 )) else LS_bin=${R_EXE}/${ExeNameIn} IGCM_sys_FileSize ${LS_bin} ExeSize set +A LS_comp -- $( LC_TIME=en_US ls -l ${LS_bin} ) if [ X${ExeDate} = X ] ; then # First component exe date ExeDate=${comp}_${LS_comp[5]}_${LS_comp[6]} else ExeDate=${ExeDate}-${comp}_${LS_comp[5]}_${LS_comp[6]} fi ExeDate=${ExeDate}_${LS_comp[7]} fi if [ ${i} -eq 0 ] ; then # First component NextExeSize="( "${ExeSize} else NextExeSize=${NextExeSize}", "${ExeSize} fi LastCompExeSize=${run_Log_LastExeSize[$i]} (( i=i+1 )) if [ ${ExeSize} -ne ${LastCompExeSize} ] ; then if ( ${FirstInitialize} ) ; then IGCM_debug_Print 1 "Save first ${ExeNameIn} in ${R_OUT_EXE} !" else IGCM_debug_Print 1 "${ExeNameIn} has changed in ${R_EXE} !" IGCM_debug_Print 1 "Save latest ${ExeNameIn} in ${R_OUT_EXE} !" FileToBeDeleted[${#FileToBeDeleted[@]}]=${ExeNameOut} fi IGCM_sys_Put_Out ${ExeNameOut} ${R_OUT_EXE}/${PREFIX}_${ExeNameIn} rw UpdateExe=true # SD : switch off for now #IGCM_sys_GetDate_FichWork ${LS_bin} ExeSecDate #if [ $ExeSecDateMax -lt $ExeSecDate ] ; then # ExeSecDateMax=$ExeSecDate #fi fi done # SD : switch off for now #if ( ${UpdateExe} ) ; then # echo "Launch SaveSourceModifications." # IGCM_config_SaveSourceModifications ${ExeSecDateMax} #fi NextExeSize=${NextExeSize}" )" IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Log LastExeSize "${NextExeSize}" if [ ${DRYRUN} -le 1 ] ; then tail -1500 ${Exe_Output} > ${Exe_Output}_tail.txt ExeCpuLog=$( gawk -f ${libIGCM}/libIGCM_sys/IGCM_add_out.awk ${Exe_Output}_tail.txt ) RET=$? if [ $RET -eq 0 ] ; then # ExeCpuLog variable contents 5 fields echo "${CumulPeriod} ${PeriodDateBegin} ${PeriodDateEnd} ${ExeCpuLog} ${ExeDate}" | \ gawk '{printf("# %11d | %15s | %15s | %19s | %19s | %15.5f | %15.5f | %15.5f | %s\n", \ $1,$2,$3,$4,$5,$6,$7,$8,$9)}' >> ${SUBMIT_DIR}/run.card fi FileToBeDeleted[${#FileToBeDeleted[@]}]=${Exe_Output}_tail.txt fi fi #==================================# # Save Job output # #==================================# if [ X${Pack} = Xtrue ] ; then IGCM_sys_PutBuffer_Out ${Exe_Output} ${R_BUF_KSH}/${PREFIX}_${Exe_Output} else IGCM_sys_Put_Out ${Exe_Output} ${R_OUT_KSH}/${PREFIX}_${Exe_Output} fi FileToBeDeleted[${#FileToBeDeleted[@]}]=${Exe_Output} # All was right ? no ? then we stop. IGCM_debug_Verif_Exit # If all was OK, we can delete all files not necessary for next Job echo IGCM_debug_Print 1 "Files that will be deleted before next period-run : " if [ ${DRYRUN} -le 2 ] ; then for f in ${FileToBeDeleted[@]} ; do [ -f ${f} ] && ls -la $f ; [ -f ${f} ] && rm -f $f ; done else echo ${FileToBeDeleted[@]} fi # Send some accounting element to the user if CumulPeriod=3 if [ ${CumulPeriod} -eq 3 ] ; then echo IGCM_debug_Print 1 "Send email containing some accounting information : " RealCpuTime=$( echo ${ExeCpuLog} | gawk '{print $3}' ) consumeHoursPerPeriod=$( echo "scale=6;${RealCpuTime}*${coreNumber}/3600" | bc ) consumeHoursPerWholeSimulation=$( echo "scale=6;${consumeHoursPerPeriod}/${PeriodLengthInDays}*${ExperienceLengthInDays}" | bc ) recommendedPeriodNb=$( echo "scale=6;${jobWarningDelay}/3600/${consumeHoursPerPeriod}*${coreNumber}" | bc ) IGCM_sys_SendMail Accounting fi #=================================================# # Modification of libIGCM behaviour # #=================================================# # To use this function, one must copy libIGCM.card from ${libIGCM} directory # and put it in ${SUBMIT_DIR} directory. After modifications of ${SUBMIT_DIR}/libIGCM.card, # variables define inside [UserChanges] will be modified for next Period of libIGCM main loop. if [ -f ${SUBMIT_DIR}/libIGCM.card ] ; then echo echo "########################################################################" echo "!!! Modification of libIGCM behaviour !!!" echo IGCM_debug_Print 1 "DefineArrayFromOption : libIGCM_UserChanges in libIGCM.card" IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/libIGCM.card UserChanges IGCM_debug_Print 2 "libIGCM_UserChanges" ${libIGCM_UserChanges[*]} # Special treatments for libIGCM internals for option in ${libIGCM_UserChanges[*]} ; do IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/libIGCM.card UserChanges ${option} echo "We will change : ${option}." eval echo "Previous value : " \${${option}} eval echo "Change to : " \${libIGCM_UserChanges_${option}} eval ${option}=\${libIGCM_UserChanges_${option}} case ${option} in config_UserChoices_DateEnd) IGCM_debug_PrintVariables 1 config_UserChoices_DateEnd DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} ) # Period Length In Days between DateBegin and DateEnd (( ExperienceLengthInDays=$( IGCM_date_DaysBetweenGregorianDate ${DateEnd} ${DateBegin} ) + 1 )) if [ ${ExperienceLengthInDays} -lt 0 ] ; then IGCM_debug_Print 1 "Problem with dates in libIGCM.card : ${DateEnd} < ${DateBegin} ! You must check that." IGCM_debug_Exit "IGCM_PeriodEnd have wrong dates." IGCM_debug_Verif_Exit fi ;; config_UserChoices_PeriodLength) IGCM_debug_Print 1 "Change config_UserChoices_PeriodLength=${config_UserChoices_PeriodLength}" ;; PeriodNb) IGCM_debug_Print 1 "Loop in main Job with ${PeriodNb} period(s)" ;; config_Post_RebuildFrequency) IGCM_debug_Print 1 "Change config_Post_RebuildFrequency=${config_Post_RebuildFrequency} : IGCM_post_Configure" IGCM_post_Configure ;; config_Post_TimeSeriesFrequency) IGCM_debug_Print 1 "Change config_Post_TimeSeriesFrequency = ${config_Post_TimeSeriesFrequency} : IGCM_post_Configure" IGCM_post_Configure ;; config_Post_SeasonalFrequency) IGCM_debug_Print 1 "Change config_Post_SeasonalFrequency = ${config_Post_SeasonalFrequency} : IGCM_post_Configure" IGCM_post_Configure ;; esac done echo echo "########################################################################" echo fi #=================================================# # Determine next computed period # #=================================================# PeriodDateBegin=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateEnd} 1 ) IGCM_date_GetYearMonthDay $PeriodDateBegin year month day year_m1=$(( year - 1 )) year_p1=$(( year + 1 )) IGCM_config_DaysInPeriodLength PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateBegin} $(( ${PeriodLengthInDays} - 1 )) ) # Debug Print : echo IGCM_debug_Print 1 "IGCM_config_PeriodEnd : Preparing Next Execution" IGCM_debug_Print 1 "PeriodDateBegin : ${PeriodDateBegin}" IGCM_debug_Print 1 "PeriodDateEnd : ${PeriodDateEnd}" IGCM_debug_Print 1 "PeriodLengthInDays : ${PeriodLengthInDays}" PeriodDateBegin=$( IGCM_date_ConvertFormatToHuman ${PeriodDateBegin} ) PeriodDateEnd=$( IGCM_date_ConvertFormatToHuman ${PeriodDateEnd} ) (( CumulPeriod = CumulPeriod + 1 )) # Debug Print : echo IGCM_debug_Print 3 "PeriodDateBegin Human : ${PeriodDateBegin}" IGCM_debug_Print 3 "PeriodDateEnd Human : ${PeriodDateEnd}" IGCM_debug_Print 3 "CumulPeriod : ${CumulPeriod}" #=================================================# # Write updated run.card # #=================================================# IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateBegin ${PeriodDateBegin} IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodDateEnd ${PeriodDateEnd} IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration CumulPeriod ${CumulPeriod} if ( ${FirstInitialize} ) ; then # It's no more the first time FirstInitialize=false fi IGCM_debug_PopStack "IGCM_config_PeriodEnd" } #=================================== function IGCM_config_Finalize { IGCM_debug_PushStack "IGCM_config_Finalize" echo IGCM_debug_Print 1 "IGCM_config_Finalize" echo # Test state of run in run.card. Will schedule an exit if another process setted it to "Fatal" IGCM_config_StateCheck # And EXIT if not OK IGCM_debug_Verif_Exit if [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ; then #==========================# # End of entire simulation # #==========================# simulationIsOver=true # Mail notification IGCM_sys_SendMail # IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "Completed" # IGCM_debug_Print 1 "Normal End of computation." else #=================# # Submit next job # #=================# simulationIsOver=false IGCM_card_WriteOption ${SUBMIT_DIR}/run.card Configuration PeriodState "OnQueue" # Name of next Ksh Script output : Script_Output=${Script_Output_Prefix}_${config_UserChoices_JobName}.$( printf "%06d" ${CumulPeriod} ) IGCM_debug_Print 1 "Submit next job" # SUBMIT NEXT JOB from SUBMIT_DIR and come back in RUN_DIR IGCM_sys_Cd ${SUBMIT_DIR} # Keep only the 5 latest ${Script_Output_Prefix}_${config_UserChoices_JobName} ScriptTot=$( ls ${Script_Output_Prefix}_${config_UserChoices_JobName}.?????? 2>/dev/null | wc -l ) [ ${ScriptTot} -gt 5 ] && rm -f $( ls ${Script_Output_Prefix}_${config_UserChoices_JobName}.?????? | head -$(( ${ScriptTot} - 5 )) ) # Submit next job and come back IGCM_sys_Qsub ${SUBMIT_DIR}/Job_${config_UserChoices_JobName} IGCM_sys_Cd - fi # Clean ${RUN_DIR}=${RUN_DIR_PATH}/${config_UserChoices_JobName}.${$} # Only for production run (No clean up in DEV or DEB mode) # and command sent from .. directory. IGCM_sys_Cd .. [ X${JobType} = XRUN ] && IGCM_sys_RmRunDir -rf ${RUN_DIR_PATH} # Inform the rabbitMQ queue IGCM_debug_BigBro_Finalize IGCM_debug_PopStack "IGCM_config_Finalize" } #=================================== #------- IGCM_sys_MkdirWork ${RUN_DIR_PATH} + IGCM_sys_MkdirWork /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947 IGCM_sys_MkdirWork : /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947 IGCM_sys_Cd ${RUN_DIR_PATH} + IGCM_sys_Cd /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947 IGCM_sys_Cd : /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947 #------- ( ${DEBUG_debug} ) && IGCM_debug_Check + false ( ${DEBUG_debug} ) && IGCM_card_Check + false ( ${DEBUG_debug} ) && IGCM_date_Check + false ######################################################################## #set -vx # Useful cleaning function MENAGE () { typeset ExistFlag ExistFlag=$( IGCM_sys_RshArchive "[ -f $1/$3 ] && echo 0 || echo 1" ) [ ${ExistFlag} -eq 0 ] && ( IGCM_sys_RshArchive rm -f $1/$2 ;) } ######################################################################## # ------------------------------------------------------------------ # Test if all was right before proceeding further # ------------------------------------------------------------------ IGCM_debug_Verif_Exit + IGCM_debug_Verif_Exit if [ ${StandAlone} = true ] ; then CARD_DIR=${SUBMIT_DIR} else CARD_DIR=${RUN_DIR_PATH} IGCM_sys_Get_Master ${SUBMIT_DIR}/config.card ${RUN_DIR_PATH} IGCM_sys_Get_Master ${SUBMIT_DIR}/run.card ${RUN_DIR_PATH} IGCM_sys_Get_Master ${SUBMIT_DIR}/COMP ${RUN_DIR_PATH} IGCM_sys_Get_Master ${SUBMIT_DIR}/POST ${RUN_DIR_PATH} fi + [ true '=' true ] + CARD_DIR=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030 #================================== # First of all # # Read libIGCM compatibility version in config.card # Read UserChoices section # Read Ensemble section # Read Post section # Define all netcdf output directories #================================== IGCM_config_CommonConfiguration ${CARD_DIR}/config.card + IGCM_config_CommonConfiguration /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card 2018-07-26 11:03:57 --Debug1--> IGCM_config_CommonConfiguration 2018-07-26 11:03:57 --Debug1--> /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card 2018-07-26 11:03:57 --Debug1--> DefineArrayFromOption : config_UserChoices unset config_UserChoicesconfig_UserChoices[0]=_0_echo ${config_UserChoices[@]}config_UserChoices_JobName=CM61-LR-hist-03.2030auxprint=${config_UserChoices_JobName}2018-07-26 11:03:57 --------------Debug3--> JobName : CM61-LR-hist-03.2030 config_UserChoices_ExperimentName=historicalauxprint=${config_UserChoices_ExperimentName}2018-07-26 11:03:57 --------------Debug3--> ExperimentName : historical config_UserChoices_SpaceName=PRODauxprint=${config_UserChoices_SpaceName}2018-07-26 11:03:57 --------------Debug3--> SpaceName : PROD config_UserChoices_LongName="IPSLCM6.1.3-LR"auxprint=${config_UserChoices_LongName}2018-07-26 11:03:57 --------------Debug3--> LongName : IPSLCM6.1.3-LR config_UserChoices_TagName=IPSLCM6auxprint=${config_UserChoices_TagName}2018-07-26 11:03:57 --------------Debug3--> TagName : IPSLCM6 config_UserChoices_Member=r6i1p1f1auxprint=${config_UserChoices_Member}2018-07-26 11:03:57 --------------Debug3--> Member : r6i1p1f1 config_UserChoices_ExpType=IPSLCM/historical_CMIP6auxprint=${config_UserChoices_ExpType}2018-07-26 11:03:57 --------------Debug3--> ExpType : IPSLCM/historical_CMIP6 config_UserChoices_CalendarType=leapauxprint=${config_UserChoices_CalendarType}2018-07-26 11:03:57 --------------Debug3--> CalendarType : leap config_UserChoices_DateBegin=1850-01-01auxprint=${config_UserChoices_DateBegin}2018-07-26 11:03:57 --------------Debug3--> DateBegin : 1850-01-01 config_UserChoices_DateEnd=2014-12-31auxprint=${config_UserChoices_DateEnd}2018-07-26 11:03:57 --------------Debug3--> DateEnd : 2014-12-31 config_UserChoices_ORCA_version=eORCA1.2auxprint=${config_UserChoices_ORCA_version}2018-07-26 11:03:57 --------------Debug3--> ORCA_version : eORCA1.2 config_UserChoices_PeriodLength=1Yauxprint=${config_UserChoices_PeriodLength}2018-07-26 11:03:57 --------------Debug3--> PeriodLength : 1Y 2018-07-26 11:03:57 --Debug1--> DefineArrayFromOption : config_Ensemble unset config_Ensembleconfig_Ensemble[0]=_0_echo ${config_Ensemble[@]} 2018-07-26 11:03:57 --Debug1--> Warning with readding of config_Ensemble variable in /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card. 2018-07-26 11:03:57 --Debug1--> Warning: Section Ensemble not found unset config_Ensemble 2018-07-26 11:03:57 --Debug1--> DefineArrayFromOption : config_Post unset config_Postconfig_Post[0]=_0_echo ${config_Post[@]}config_Post_ParserXIOS=FALSEauxprint=${config_Post_ParserXIOS}2018-07-26 11:03:57 --------------Debug3--> ParserXIOS : FALSE config_Post_RebuildFrequency=NONEauxprint=${config_Post_RebuildFrequency}2018-07-26 11:03:57 --------------Debug3--> RebuildFrequency : NONE config_Post_PackFrequency=10Yauxprint=${config_Post_PackFrequency}2018-07-26 11:03:57 --------------Debug3--> PackFrequency : 10Y config_Post_LightRestartPack=FALSEauxprint=${config_Post_LightRestartPack}2018-07-26 11:03:57 --------------Debug3--> LightRestartPack : FALSE config_Post_TimeSeriesFrequency=10Yauxprint=${config_Post_TimeSeriesFrequency}2018-07-26 11:03:57 --------------Debug3--> TimeSeriesFrequency : 10Y config_Post_SeasonalFrequency=10Yauxprint=${config_Post_SeasonalFrequency}2018-07-26 11:03:57 --------------Debug3--> SeasonalFrequency : 10Y config_Post_MetricsPCMDI=FALSEauxprint=${config_Post_MetricsPCMDI}2018-07-26 11:03:57 --------------Debug3--> MetricsPCMDI : FALSE config_Post_SeasonalFrequencyOffset=0auxprint=${config_Post_SeasonalFrequencyOffset}2018-07-26 11:03:57 --------------Debug3--> SeasonalFrequencyOffset : 0 2018-07-26 11:03:57 --Debug1--> R_OUT has been defined = /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT 2018-07-26 11:03:57 --Debug1--> R_BUF has been defined = /ccc/scratch/cont003/gencmip6/oboucher/IGCM_OUT 2018-07-26 11:03:57 --Debug1--> R_FIG has been defined = /ccc/work/cont003/gencmip6/oboucher/IGCM_OUT IGCM_sys_MkdirWork : /ccc/scratch/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/REBUILD # ------------------------------------------------------------------ # Activate BigBrother so as to supervise this job # ------------------------------------------------------------------ IGCM_debug_BigBro_Initialize + IGCM_debug_BigBro_Initialize #================================== # Define default value to keep compatibility with previous card: means before changes due to TGCC if [ X${PackDefault} = Xtrue ] ; then [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency} else config_Post_PackFrequency=NONE fi + [ Xtrue '=' Xtrue ] + [ X10Y '=' X ] #================================== # If pack is active then PackFrequency overule the config_UserChoices_PeriodLength if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then config_UserChoices_PeriodLength=${config_Post_PackFrequency} fi + [ ! X10Y '=' X_0_ ] + [ ! X10Y '=' XNONE ] + config_UserChoices_PeriodLength=10Y # # Determine component to take care of depending on kind of task create_ts will perform # [ ${CompToRead} ] && set -A config_ListOfComponents ${CompToRead} || IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents + [ ] + IGCM_card_DefineArrayFromSection /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents unset config_ListOfComponentsconfig_ListOfComponents[0]=_0_echo ${config_ListOfComponents[@]}# # Determine period for time series. Default : value from AA_job or from launch_TS if any # [ X${CompletedFlag} = X ] || CompletedFlag=$( IGCM_date_ConvertFormatToGregorian ${CompletedFlag} ) + [ X '=' X ] DateBegin=${DateBegin:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )} + DateBegin=18500101 # PeriodDateEnd=${PeriodDateEnd:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )} + PeriodDateEnd=20141231 # # Determine Dimension of the produced time series : 2D or 3D if ( [ X${TsTask} = XChunck2D ] || [ X${TsTask} = X2D ] ) ; then Dimension=2D elif ( [ X${TsTask} = XChunck3D ] || [ X${TsTask} = X3D ] ) ; then Dimension=3D else Dimension="" fi + [ X3D '=' XChunck2D ] + [ X3D '=' X2D ] + [ X3D '=' XChunck3D ] + [ X3D '=' X3D ] + Dimension=3D # ------------------------------------------------------------------ #D- Test if all was right before entering the loop # ------------------------------------------------------------------ IGCM_debug_Verif_Exit + IGCM_debug_Verif_Exit ######################################################################## # Depending on requested time series fill following variables : # # - LISTE_FILE_${comp}[*] # - LISTE_VARS_${file}[*] # - LISTE_AXIS_${file}[*] # - LISTE_PATCH_${file}[*] ######################################################################## # # For each selected component determine which files need post-processing # DoJob=false + DoJob=false for comp in ${config_ListOfComponents[*]} ; do # ActiveComp=false # IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp} eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1 # card=${CARD_DIR}/COMP/${compname}.card IGCM_card_DefineArrayFromOption ${card} OutputFiles List # ListFilesName=${compname}_OutputFiles_List eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1 # if [ X${FileName0} != X${NULL_STR} ] ; then # #IGCM_debug_Print 1 "Component : ${compname}" # # INITIALISATION # typeset i if [ ${FlagToRead} ] ; then ((NbFiles=${FlagToRead})) ((i=${NbFiles})) else eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 i=2 fi # until [ $i -gt $NbFiles ]; do # eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1 # if [ X${flag_post} != XNONE ] ; then # # For each comp and each file who needs post-processing # determine which variables need time series. # FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' ) IGCM_card_DefineArrayFromOption ${card} Post_${FILE} TimeSeriesVars${Dimension} IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension} # # If TimeSeriesVars list is empty we skip # if [ $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then # IGCM_debug_Print 3 "Nothing to do for ${FILE} according to ${card}" IGCM_debug_Print 3 "TimeSeriesVars${Dimension} for ${FILE} is empty" (( i=i+3 )) continue # fi # # If files/variables has been switch off by ChunckJob${Dimension}=0 we skip # if [ X$( eval echo \${${compname}_Post_${FILE}_ChunckJob${Dimension}} ) = XOFF ] ; then IGCM_debug_Print 3 "Nothing to do for ${FILE} according to ${card}" IGCM_debug_Print 3 "ChunckJob${Dimension}=OFF for ${FILE} so it has been switched off" (( i=i+3 )) continue fi # # If we are not a Chunck type task, we skip files/variables handled by chunck task # if ( [ ! X${TsTask} = XChunck${Dimension} ] && [ ! X${TsTask} = X ] && [ ! XChunck${Dimension} = XChunck ] ) ; then if [ ! $( eval echo \${${compname}_Post_${FILE}_ChunckJob${Dimension}} ) = NONE ] ; then IGCM_debug_Print 3 "Nothing to do for ${FILE} TimeSeriesVars${Dimension} according to ${card}" IGCM_debug_Print 3 "Let another chunck task do the job $( eval echo \${${compname}_Post_${FILE}_ChunckJob${Dimension}} )" (( i=i+3 )) continue fi fi # # Now on we know we have things to do # # # We need coordinates axis to properly fill produced time series # IGCM_card_DefineArrayFromOption ${card} Post_${FILE} GatherWithInternal # if [ $( eval echo \${${compname}_Post_${FILE}_GatherWithInternal} ) = ${NULL_STR} ] ; then # IGCM_debug_Print 1 "ERROR !! We miss coordinate axis for ${FILE} according to ${card}" IGCM_debug_Print 1 "So no time series will be produced for ${FILE} !!" (( i=i+3 )) continue # fi # # We need LIST of variables not allready produced (useful for standalone mode) # FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' ) case ${FlagDir} in *Y) TS_Dir=TS_YE ;; *M) TS_Dir=TS_MO ;; *D) TS_Dir=TS_DA ;; HF) TS_Dir=TS_HF ;; 3H) TS_Dir=TS_HF ;; INS) TS_Dir=TS_INS ;; esac # count=0 for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do # DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir} TestedFile=${config_UserChoices_JobName}_${DateBegin}_${PeriodDateEnd}_${FlagDir}_${var}.nc # IGCM_sys_TestFileArchive ${DIRECTORY}/${TestedFile} if [ ! $? = 0 ] ; then eval set +A LISTE_VARS_${FILE} \${LISTE_VARS_${FILE}[*]} ${var} ActiveComp=true (( count = count + 1 )) fi done # if [ ${count} -gt 0 ] ; then # eval set +A LISTE_FILE_${comp} \${LISTE_FILE_${comp}[*]} ${FILE} eval set +A LISTE_AXIS_${FILE} \${${compname}_Post_${FILE}_GatherWithInternal[*]} # if [ ! X${RebuildFrequency} = Xtrue ] ; then IGCM_card_DefineArrayFromOption ${card} Post_${FILE} Patches eval set +A LISTE_PATCHES_${FILE} \${${compname}_Post_${FILE}_Patches[*]} if [ X$( eval echo \${LISTE_PATCHES_${FILE}[0]} ) != X${NULL_STR} ]; then for Patch in $( eval echo \${LISTE_PATCHES_${FILE}[*]} ); do if [ Xload${Patch} != X ] ; then . ${libIGCM}/libIGCM_post/IGCM_${Patch}.ksh eval load${Patch}=loaded fi done fi fi fi fi (( i=i+3 )) done fi # if [ ${ActiveComp} = true ] ; then set +A ActiveListOfComponents ${ActiveListOfComponents[*]} ${comp} fi done + ActiveComp=false + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents ATM unset config_ListOfComponents_ATMconfig_ListOfComponents_ATM[0]=_0_+ eval compname='${config_ListOfComponents_ATM[0]}' + 1> /dev/null 2>& 1 + card=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lmdz.card + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lmdz.card OutputFiles List unset lmdz_OutputFiles_Listlmdz_OutputFiles_List[0]=_0_+ ListFilesName=lmdz_OutputFiles_List + eval FileName0='${lmdz_OutputFiles_List[0]}' + 1> /dev/null 2>& 1 + [ Xhistmth.nc '!=' X_0_ ] + typeset i + [ ] + eval NbFiles='${#lmdz_OutputFiles_List[@]}' + 1> /dev/null 2>& 1 + i=2 + [ 2 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[2]}' + 1> /dev/null 2>& 1 + [ XPost_1M_histmth '!=' XNONE ] + echo Post_1M_histmth + awk -FPost_ '{print $2}' + FILE=1M_histmth + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lmdz.card Post_1M_histmth TimeSeriesVars3D unset lmdz_Post_1M_histmth_TimeSeriesVars3Dlmdz_Post_1M_histmth_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lmdz.card Post_1M_histmth ChunckJob3D lmdz_Post_1M_histmth_ChunckJob3D=100Y+ eval echo '${lmdz_Post_1M_histmth_TimeSeriesVars3D}' echo ${lmdz_Post_1M_histmth_TimeSeriesVars3D}+ echo temp + [ temp '=' _0_ ] + eval echo '${lmdz_Post_1M_histmth_ChunckJob3D}' echo ${lmdz_Post_1M_histmth_ChunckJob3D}+ echo 100Y + [ X100Y '=' XOFF ] + [ ! X3D '=' XChunck3D ] + [ ! X3D '=' X ] + [ ! XChunck3D '=' XChunck ] + eval echo '${lmdz_Post_1M_histmth_ChunckJob3D}' echo ${lmdz_Post_1M_histmth_ChunckJob3D}+ echo 100Y + [ ! 100Y '=' NONE ] + IGCM_debug_Print 3 'Nothing to do for 1M_histmth TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lmdz.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_histmth TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lmdz.card + eval echo '${lmdz_Post_1M_histmth_ChunckJob3D}' echo ${lmdz_Post_1M_histmth_ChunckJob3D}+ echo 100Y + IGCM_debug_Print 3 'Let another chunck task do the job 100Y' 2018-07-26 11:03:57 --------------Debug3--> Let another chunck task do the job 100Y + (( i=i+3 )) + continue + [ 5 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[5]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 8 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[8]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 11 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[11]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 14 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[14]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 17 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[17]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 20 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[20]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 23 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[23]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 26 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[26]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 29 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[29]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 32 -gt 33 ] + eval flag_post='${lmdz_OutputFiles_List[32]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 35 -gt 33 ] + [ false '=' true ] + ActiveComp=false + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents SRF unset config_ListOfComponents_SRFconfig_ListOfComponents_SRF[0]=_0_+ eval compname='${config_ListOfComponents_SRF[0]}' + 1> /dev/null 2>& 1 + card=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/orchidee.card + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/orchidee.card OutputFiles List unset orchidee_OutputFiles_Listorchidee_OutputFiles_List[0]=_0_+ ListFilesName=orchidee_OutputFiles_List + eval FileName0='${orchidee_OutputFiles_List[0]}' + 1> /dev/null 2>& 1 + [ Xsechiba_history.nc '!=' X_0_ ] + typeset i + [ ] + eval NbFiles='${#orchidee_OutputFiles_List[@]}' + 1> /dev/null 2>& 1 + i=2 + [ 2 -gt 9 ] + eval flag_post='${orchidee_OutputFiles_List[2]}' + 1> /dev/null 2>& 1 + [ XPost_1M_sechiba_history '!=' XNONE ] + echo Post_1M_sechiba_history + awk -FPost_ '{print $2}' + FILE=1M_sechiba_history + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/orchidee.card Post_1M_sechiba_history TimeSeriesVars3D unset orchidee_Post_1M_sechiba_history_TimeSeriesVars3Dorchidee_Post_1M_sechiba_history_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/orchidee.card Post_1M_sechiba_history ChunckJob3D orchidee_Post_1M_sechiba_history_ChunckJob3D=NONE+ eval echo '${orchidee_Post_1M_sechiba_history_TimeSeriesVars3D}' echo ${orchidee_Post_1M_sechiba_history_TimeSeriesVars3D}+ echo lai + [ lai '=' _0_ ] + eval echo '${orchidee_Post_1M_sechiba_history_ChunckJob3D}' echo ${orchidee_Post_1M_sechiba_history_ChunckJob3D}+ echo NONE + [ XNONE '=' XOFF ] + [ ! X3D '=' XChunck3D ] + [ ! X3D '=' X ] + [ ! XChunck3D '=' XChunck ] + eval echo '${orchidee_Post_1M_sechiba_history_ChunckJob3D}' echo ${orchidee_Post_1M_sechiba_history_ChunckJob3D}+ echo NONE + [ ! NONE '=' NONE ] + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/orchidee.card Post_1M_sechiba_history GatherWithInternal unset orchidee_Post_1M_sechiba_history_GatherWithInternalorchidee_Post_1M_sechiba_history_GatherWithInternal[0]=_0_+ eval echo '${orchidee_Post_1M_sechiba_history_GatherWithInternal}' echo ${orchidee_Post_1M_sechiba_history_GatherWithInternal}+ echo lon + [ lon '=' _0_ ] + echo 1M_sechiba_history + awk -F _ '{print $1}' + FlagDir=1M + TS_Dir=TS_MO + count=0 + eval echo '${orchidee_Post_1M_sechiba_history_TimeSeriesVars3D[*]}' echo ${orchidee_Post_1M_sechiba_history_TimeSeriesVars3D[*]}+ echo lai maxvegetfrac vegetfrac nee gpp growth_resp hetero_resp humrel inter maint_resp npp precisol + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' lai set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} lai+ set +A LISTE_VARS_1M_sechiba_history lai + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' maxvegetfrac set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} maxvegetfrac+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' vegetfrac set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} vegetfrac+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' nee set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} nee+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' gpp set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} gpp+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee gpp + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' growth_resp set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} growth_resp+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee gpp growth_resp + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' hetero_resp set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} hetero_resp+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee gpp growth_resp hetero_resp + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' humrel set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} humrel+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee gpp growth_resp hetero_resp humrel + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' inter set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} inter+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee gpp growth_resp hetero_resp humrel inter + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' maint_resp set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} maint_resp+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee gpp growth_resp hetero_resp humrel inter maint_resp + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' npp set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} npp+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee gpp growth_resp hetero_resp humrel inter maint_resp npp + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_sechiba_history '${LISTE_VARS_1M_sechiba_history[*]}' precisol set +A LISTE_VARS_1M_sechiba_history ${LISTE_VARS_1M_sechiba_history[*]} precisol+ set +A LISTE_VARS_1M_sechiba_history lai maxvegetfrac vegetfrac nee gpp growth_resp hetero_resp humrel inter maint_resp npp precisol + ActiveComp=true + (( count = count + 1 )) + [ 12 -gt 0 ] + eval set +A LISTE_FILE_SRF '${LISTE_FILE_SRF[*]}' 1M_sechiba_history set +A LISTE_FILE_SRF ${LISTE_FILE_SRF[*]} 1M_sechiba_history+ set +A LISTE_FILE_SRF 1M_sechiba_history + eval set +A LISTE_AXIS_1M_sechiba_history '${orchidee_Post_1M_sechiba_history_GatherWithInternal[*]}' set +A LISTE_AXIS_1M_sechiba_history ${orchidee_Post_1M_sechiba_history_GatherWithInternal[*]}+ set +A LISTE_AXIS_1M_sechiba_history lon lat time_counter Areas Contfrac time_centered time_centered_bounds + [ ! Xtrue '=' Xtrue ] + (( i=i+3 )) + [ 5 -gt 9 ] + eval flag_post='${orchidee_OutputFiles_List[5]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 8 -gt 9 ] + eval flag_post='${orchidee_OutputFiles_List[8]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 11 -gt 9 ] + [ true '=' true ] + set +A ActiveListOfComponents SRF + ActiveComp=false + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents SBG unset config_ListOfComponents_SBGconfig_ListOfComponents_SBG[0]=_0_+ eval compname='${config_ListOfComponents_SBG[0]}' + 1> /dev/null 2>& 1 + card=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card OutputFiles List unset stomate_OutputFiles_Liststomate_OutputFiles_List[0]=_0_+ ListFilesName=stomate_OutputFiles_List + eval FileName0='${stomate_OutputFiles_List[0]}' + 1> /dev/null 2>& 1 + [ Xstomate_history.nc '!=' X_0_ ] + typeset i + [ ] + eval NbFiles='${#stomate_OutputFiles_List[@]}' + 1> /dev/null 2>& 1 + i=2 + [ 2 -gt 6 ] + eval flag_post='${stomate_OutputFiles_List[2]}' + 1> /dev/null 2>& 1 + [ XPost_1M_stomate_history '!=' XNONE ] + echo Post_1M_stomate_history + awk -FPost_ '{print $2}' + FILE=1M_stomate_history + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card Post_1M_stomate_history TimeSeriesVars3D unset stomate_Post_1M_stomate_history_TimeSeriesVars3Dstomate_Post_1M_stomate_history_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card Post_1M_stomate_history ChunckJob3D stomate_Post_1M_stomate_history_ChunckJob3D=NONE+ eval echo '${stomate_Post_1M_stomate_history_TimeSeriesVars3D}' echo ${stomate_Post_1M_stomate_history_TimeSeriesVars3D}+ echo VEGET_COV_MAX + [ VEGET_COV_MAX '=' _0_ ] + eval echo '${stomate_Post_1M_stomate_history_ChunckJob3D}' echo ${stomate_Post_1M_stomate_history_ChunckJob3D}+ echo NONE + [ XNONE '=' XOFF ] + [ ! X3D '=' XChunck3D ] + [ ! X3D '=' X ] + [ ! XChunck3D '=' XChunck ] + eval echo '${stomate_Post_1M_stomate_history_ChunckJob3D}' echo ${stomate_Post_1M_stomate_history_ChunckJob3D}+ echo NONE + [ ! NONE '=' NONE ] + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card Post_1M_stomate_history GatherWithInternal unset stomate_Post_1M_stomate_history_GatherWithInternalstomate_Post_1M_stomate_history_GatherWithInternal[0]=_0_+ eval echo '${stomate_Post_1M_stomate_history_GatherWithInternal}' echo ${stomate_Post_1M_stomate_history_GatherWithInternal}+ echo lon + [ lon '=' _0_ ] + echo 1M_stomate_history + awk -F _ '{print $1}' + FlagDir=1M + TS_Dir=TS_MO + count=0 + eval echo '${stomate_Post_1M_stomate_history_TimeSeriesVars3D[*]}' echo ${stomate_Post_1M_stomate_history_TimeSeriesVars3D[*]}+ echo VEGET_COV_MAX NPP GPP HET_RESP MAINT_RESP GROWTH_RESP TOTAL_M TOTAL_BM_LITTER TOTAL_SOIL_CARB WOOD_HARVEST_PFT + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' VEGET_COV_MAX set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} VEGET_COV_MAX+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' NPP set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} NPP+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' GPP set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} GPP+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP GPP + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' HET_RESP set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} HET_RESP+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP GPP HET_RESP + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' MAINT_RESP set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} MAINT_RESP+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP GPP HET_RESP MAINT_RESP + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' GROWTH_RESP set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} GROWTH_RESP+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP GPP HET_RESP MAINT_RESP GROWTH_RESP + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' TOTAL_M set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} TOTAL_M+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP GPP HET_RESP MAINT_RESP GROWTH_RESP TOTAL_M + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' TOTAL_BM_LITTER set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} TOTAL_BM_LITTER+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP GPP HET_RESP MAINT_RESP GROWTH_RESP TOTAL_M TOTAL_BM_LITTER + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' TOTAL_SOIL_CARB set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} TOTAL_SOIL_CARB+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP GPP HET_RESP MAINT_RESP GROWTH_RESP TOTAL_M TOTAL_BM_LITTER TOTAL_SOIL_CARB + ActiveComp=true + (( count = count + 1 )) + DIRECTORY=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + TestedFile=CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc + [ ! 1 '=' 0 ] + eval set +A LISTE_VARS_1M_stomate_history '${LISTE_VARS_1M_stomate_history[*]}' WOOD_HARVEST_PFT set +A LISTE_VARS_1M_stomate_history ${LISTE_VARS_1M_stomate_history[*]} WOOD_HARVEST_PFT+ set +A LISTE_VARS_1M_stomate_history VEGET_COV_MAX NPP GPP HET_RESP MAINT_RESP GROWTH_RESP TOTAL_M TOTAL_BM_LITTER TOTAL_SOIL_CARB WOOD_HARVEST_PFT + ActiveComp=true + (( count = count + 1 )) + [ 10 -gt 0 ] + eval set +A LISTE_FILE_SBG '${LISTE_FILE_SBG[*]}' 1M_stomate_history set +A LISTE_FILE_SBG ${LISTE_FILE_SBG[*]} 1M_stomate_history+ set +A LISTE_FILE_SBG 1M_stomate_history + eval set +A LISTE_AXIS_1M_stomate_history '${stomate_Post_1M_stomate_history_GatherWithInternal[*]}' set +A LISTE_AXIS_1M_stomate_history ${stomate_Post_1M_stomate_history_GatherWithInternal[*]}+ set +A LISTE_AXIS_1M_stomate_history lon lat Areas CONTFRAC time_counter time_centered time_centered_bounds + [ ! Xtrue '=' Xtrue ] + (( i=i+3 )) + [ 5 -gt 6 ] + eval flag_post='${stomate_OutputFiles_List[5]}' + 1> /dev/null 2>& 1 + [ XPost_1M_stomate_ipcc_history '!=' XNONE ] + echo Post_1M_stomate_ipcc_history + awk -FPost_ '{print $2}' + FILE=1M_stomate_ipcc_history + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card Post_1M_stomate_ipcc_history TimeSeriesVars3D unset stomate_Post_1M_stomate_ipcc_history_TimeSeriesVars3Dstomate_Post_1M_stomate_ipcc_history_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card Post_1M_stomate_ipcc_history ChunckJob3D stomate_Post_1M_stomate_ipcc_history_ChunckJob3D=NONE+ eval echo '${stomate_Post_1M_stomate_ipcc_history_TimeSeriesVars3D}' echo ${stomate_Post_1M_stomate_ipcc_history_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_stomate_ipcc_history according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_stomate_ipcc_history according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/stomate.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_stomate_ipcc_history is empty' 2018-07-26 11:03:57 --------------Debug3--> TimeSeriesVars3D for 1M_stomate_ipcc_history is empty + (( i=i+3 )) + continue + [ 8 -gt 6 ] + [ true '=' true ] + set +A ActiveListOfComponents SRF SBG + ActiveComp=false + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents OCE unset config_ListOfComponents_OCEconfig_ListOfComponents_OCE[0]=_0_+ eval compname='${config_ListOfComponents_OCE[0]}' + 1> /dev/null 2>& 1 + card=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card OutputFiles List unset opa9_OutputFiles_Listopa9_OutputFiles_List[0]=_0_+ ListFilesName=opa9_OutputFiles_List + eval FileName0='${opa9_OutputFiles_List[0]}' + 1> /dev/null 2>& 1 + [ 'X${config_UserChoices_JobName}_1y_scalar.nc' '!=' X_0_ ] + typeset i + [ ] + eval NbFiles='${#opa9_OutputFiles_List[@]}' + 1> /dev/null 2>& 1 + i=2 + [ 2 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[2]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 5 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[5]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 8 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[8]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 11 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[11]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 14 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[14]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 17 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[17]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 20 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[20]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 23 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[23]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 26 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[26]}' + 1> /dev/null 2>& 1 + [ XPost_1M_scalar '!=' XNONE ] + echo Post_1M_scalar + awk -FPost_ '{print $2}' + FILE=1M_scalar + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_scalar TimeSeriesVars3D unset opa9_Post_1M_scalar_TimeSeriesVars3Dopa9_Post_1M_scalar_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_scalar ChunckJob3D opa9_Post_1M_scalar_ChunckJob3D=NONE+ eval echo '${opa9_Post_1M_scalar_TimeSeriesVars3D}' echo ${opa9_Post_1M_scalar_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_scalar according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_scalar according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_scalar is empty' 2018-07-26 11:03:57 --------------Debug3--> TimeSeriesVars3D for 1M_scalar is empty + (( i=i+3 )) + continue + [ 29 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[29]}' + 1> /dev/null 2>& 1 + [ XPost_1M_grid_T '!=' XNONE ] + echo Post_1M_grid_T + awk -FPost_ '{print $2}' + FILE=1M_grid_T + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_grid_T TimeSeriesVars3D unset opa9_Post_1M_grid_T_TimeSeriesVars3Dopa9_Post_1M_grid_T_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_grid_T ChunckJob3D opa9_Post_1M_grid_T_ChunckJob3D=100Y+ eval echo '${opa9_Post_1M_grid_T_TimeSeriesVars3D}' echo ${opa9_Post_1M_grid_T_TimeSeriesVars3D}+ echo e3t + [ e3t '=' _0_ ] + eval echo '${opa9_Post_1M_grid_T_ChunckJob3D}' echo ${opa9_Post_1M_grid_T_ChunckJob3D}+ echo 100Y + [ X100Y '=' XOFF ] + [ ! X3D '=' XChunck3D ] + [ ! X3D '=' X ] + [ ! XChunck3D '=' XChunck ] + eval echo '${opa9_Post_1M_grid_T_ChunckJob3D}' echo ${opa9_Post_1M_grid_T_ChunckJob3D}+ echo 100Y + [ ! 100Y '=' NONE ] + IGCM_debug_Print 3 'Nothing to do for 1M_grid_T TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_grid_T TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + eval echo '${opa9_Post_1M_grid_T_ChunckJob3D}' echo ${opa9_Post_1M_grid_T_ChunckJob3D}+ echo 100Y + IGCM_debug_Print 3 'Let another chunck task do the job 100Y' 2018-07-26 11:03:57 --------------Debug3--> Let another chunck task do the job 100Y + (( i=i+3 )) + continue + [ 32 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[32]}' + 1> /dev/null 2>& 1 + [ XPost_1M_grid_U '!=' XNONE ] + echo Post_1M_grid_U + awk -FPost_ '{print $2}' + FILE=1M_grid_U + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_grid_U TimeSeriesVars3D unset opa9_Post_1M_grid_U_TimeSeriesVars3Dopa9_Post_1M_grid_U_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_grid_U ChunckJob3D opa9_Post_1M_grid_U_ChunckJob3D=100Y+ eval echo '${opa9_Post_1M_grid_U_TimeSeriesVars3D}' echo ${opa9_Post_1M_grid_U_TimeSeriesVars3D}+ echo e3u + [ e3u '=' _0_ ] + eval echo '${opa9_Post_1M_grid_U_ChunckJob3D}' echo ${opa9_Post_1M_grid_U_ChunckJob3D}+ echo 100Y + [ X100Y '=' XOFF ] + [ ! X3D '=' XChunck3D ] + [ ! X3D '=' X ] + [ ! XChunck3D '=' XChunck ] + eval echo '${opa9_Post_1M_grid_U_ChunckJob3D}' echo ${opa9_Post_1M_grid_U_ChunckJob3D}+ echo 100Y + [ ! 100Y '=' NONE ] + IGCM_debug_Print 3 'Nothing to do for 1M_grid_U TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_grid_U TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + eval echo '${opa9_Post_1M_grid_U_ChunckJob3D}' echo ${opa9_Post_1M_grid_U_ChunckJob3D}+ echo 100Y + IGCM_debug_Print 3 'Let another chunck task do the job 100Y' 2018-07-26 11:03:57 --------------Debug3--> Let another chunck task do the job 100Y + (( i=i+3 )) + continue + [ 35 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[35]}' + 1> /dev/null 2>& 1 + [ XPost_1M_grid_V '!=' XNONE ] + echo Post_1M_grid_V + awk -FPost_ '{print $2}' + FILE=1M_grid_V + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_grid_V TimeSeriesVars3D unset opa9_Post_1M_grid_V_TimeSeriesVars3Dopa9_Post_1M_grid_V_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_grid_V ChunckJob3D opa9_Post_1M_grid_V_ChunckJob3D=100Y+ eval echo '${opa9_Post_1M_grid_V_TimeSeriesVars3D}' echo ${opa9_Post_1M_grid_V_TimeSeriesVars3D}+ echo e3v + [ e3v '=' _0_ ] + eval echo '${opa9_Post_1M_grid_V_ChunckJob3D}' echo ${opa9_Post_1M_grid_V_ChunckJob3D}+ echo 100Y + [ X100Y '=' XOFF ] + [ ! X3D '=' XChunck3D ] + [ ! X3D '=' X ] + [ ! XChunck3D '=' XChunck ] + eval echo '${opa9_Post_1M_grid_V_ChunckJob3D}' echo ${opa9_Post_1M_grid_V_ChunckJob3D}+ echo 100Y + [ ! 100Y '=' NONE ] + IGCM_debug_Print 3 'Nothing to do for 1M_grid_V TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_grid_V TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + eval echo '${opa9_Post_1M_grid_V_ChunckJob3D}' echo ${opa9_Post_1M_grid_V_ChunckJob3D}+ echo 100Y + IGCM_debug_Print 3 'Let another chunck task do the job 100Y' 2018-07-26 11:03:57 --------------Debug3--> Let another chunck task do the job 100Y + (( i=i+3 )) + continue + [ 38 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[38]}' + 1> /dev/null 2>& 1 + [ XPost_1M_grid_W '!=' XNONE ] + echo Post_1M_grid_W + awk -FPost_ '{print $2}' + FILE=1M_grid_W + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_grid_W TimeSeriesVars3D unset opa9_Post_1M_grid_W_TimeSeriesVars3Dopa9_Post_1M_grid_W_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_grid_W ChunckJob3D opa9_Post_1M_grid_W_ChunckJob3D=100Y+ eval echo '${opa9_Post_1M_grid_W_TimeSeriesVars3D}' echo ${opa9_Post_1M_grid_W_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_grid_W according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_grid_W according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_grid_W is empty' 2018-07-26 11:03:57 --------------Debug3--> TimeSeriesVars3D for 1M_grid_W is empty + (( i=i+3 )) + continue + [ 41 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[41]}' + 1> /dev/null 2>& 1 + [ XPost_1M_diaptr_T '!=' XNONE ] + echo Post_1M_diaptr_T + awk -FPost_ '{print $2}' + FILE=1M_diaptr_T + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_diaptr_T TimeSeriesVars3D unset opa9_Post_1M_diaptr_T_TimeSeriesVars3Dopa9_Post_1M_diaptr_T_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_diaptr_T ChunckJob3D opa9_Post_1M_diaptr_T_ChunckJob3D=NONE+ eval echo '${opa9_Post_1M_diaptr_T_TimeSeriesVars3D}' echo ${opa9_Post_1M_diaptr_T_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_diaptr_T according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_diaptr_T according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_diaptr_T is empty' 2018-07-26 11:03:57 --------------Debug3--> TimeSeriesVars3D for 1M_diaptr_T is empty + (( i=i+3 )) + continue + [ 44 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[44]}' + 1> /dev/null 2>& 1 + [ XPost_1M_diaptr_W '!=' XNONE ] + echo Post_1M_diaptr_W + awk -FPost_ '{print $2}' + FILE=1M_diaptr_W + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_diaptr_W TimeSeriesVars3D unset opa9_Post_1M_diaptr_W_TimeSeriesVars3Dopa9_Post_1M_diaptr_W_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_diaptr_W ChunckJob3D opa9_Post_1M_diaptr_W_ChunckJob3D=NONE+ eval echo '${opa9_Post_1M_diaptr_W_TimeSeriesVars3D}' echo ${opa9_Post_1M_diaptr_W_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_diaptr_W according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_diaptr_W according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_diaptr_W is empty' 2018-07-26 11:03:57 --------------Debug3--> TimeSeriesVars3D for 1M_diaptr_W is empty + (( i=i+3 )) + continue + [ 47 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[47]}' + 1> /dev/null 2>& 1 + [ XPost_1M_trdtra '!=' XNONE ] + echo Post_1M_trdtra + awk -FPost_ '{print $2}' + FILE=1M_trdtra + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_trdtra TimeSeriesVars3D unset opa9_Post_1M_trdtra_TimeSeriesVars3Dopa9_Post_1M_trdtra_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card Post_1M_trdtra ChunckJob3D opa9_Post_1M_trdtra_ChunckJob3D=100Y+ eval echo '${opa9_Post_1M_trdtra_TimeSeriesVars3D}' echo ${opa9_Post_1M_trdtra_TimeSeriesVars3D}+ echo ttrdtr_zdfp + [ ttrdtr_zdfp '=' _0_ ] + eval echo '${opa9_Post_1M_trdtra_ChunckJob3D}' echo ${opa9_Post_1M_trdtra_ChunckJob3D}+ echo 100Y + [ X100Y '=' XOFF ] + [ ! X3D '=' XChunck3D ] + [ ! X3D '=' X ] + [ ! XChunck3D '=' XChunck ] + eval echo '${opa9_Post_1M_trdtra_ChunckJob3D}' echo ${opa9_Post_1M_trdtra_ChunckJob3D}+ echo 100Y + [ ! 100Y '=' NONE ] + IGCM_debug_Print 3 'Nothing to do for 1M_trdtra TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_trdtra TimeSeriesVars3D according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/opa9.card + eval echo '${opa9_Post_1M_trdtra_ChunckJob3D}' echo ${opa9_Post_1M_trdtra_ChunckJob3D}+ echo 100Y + IGCM_debug_Print 3 'Let another chunck task do the job 100Y' 2018-07-26 11:03:57 --------------Debug3--> Let another chunck task do the job 100Y + (( i=i+3 )) + continue + [ 50 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[50]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 53 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[53]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 56 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[56]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 59 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[59]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 62 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[62]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 65 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[65]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 68 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[68]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 71 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[71]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 74 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[74]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 77 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[77]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 80 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[80]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 83 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[83]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 86 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[86]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 89 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[89]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 92 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[92]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 95 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[95]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 98 -gt 99 ] + eval flag_post='${opa9_OutputFiles_List[98]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 101 -gt 99 ] + [ false '=' true ] + ActiveComp=false + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents ICE unset config_ListOfComponents_ICEconfig_ListOfComponents_ICE[0]=_0_+ eval compname='${config_ListOfComponents_ICE[0]}' + 1> /dev/null 2>& 1 + card=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lim3.card + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lim3.card OutputFiles List unset lim3_OutputFiles_Listlim3_OutputFiles_List[0]=_0_+ ListFilesName=lim3_OutputFiles_List + eval FileName0='${lim3_OutputFiles_List[0]}' + 1> /dev/null 2>& 1 + [ 'X${config_UserChoices_JobName}_1m_icemod.nc' '!=' X_0_ ] + typeset i + [ ] + eval NbFiles='${#lim3_OutputFiles_List[@]}' + 1> /dev/null 2>& 1 + i=2 + [ 2 -gt 6 ] + eval flag_post='${lim3_OutputFiles_List[2]}' + 1> /dev/null 2>& 1 + [ XPost_1M_icemod '!=' XNONE ] + echo Post_1M_icemod + awk -FPost_ '{print $2}' + FILE=1M_icemod + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lim3.card Post_1M_icemod TimeSeriesVars3D unset lim3_Post_1M_icemod_TimeSeriesVars3Dlim3_Post_1M_icemod_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lim3.card Post_1M_icemod ChunckJob3D lim3_Post_1M_icemod_ChunckJob3D=NONE+ eval echo '${lim3_Post_1M_icemod_TimeSeriesVars3D}' echo ${lim3_Post_1M_icemod_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_icemod according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lim3.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_icemod according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/lim3.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_icemod is empty' 2018-07-26 11:03:57 --------------Debug3--> TimeSeriesVars3D for 1M_icemod is empty + (( i=i+3 )) + continue + [ 5 -gt 6 ] + eval flag_post='${lim3_OutputFiles_List[5]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 8 -gt 6 ] + [ false '=' true ] + ActiveComp=false + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents MBG unset config_ListOfComponents_MBGconfig_ListOfComponents_MBG[0]=_0_+ eval compname='${config_ListOfComponents_MBG[0]}' + 1> /dev/null 2>& 1 + card=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/pisces.card + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/pisces.card OutputFiles List unset pisces_OutputFiles_Listpisces_OutputFiles_List[0]=_0_+ ListFilesName=pisces_OutputFiles_List + eval FileName0='${pisces_OutputFiles_List[0]}' + 1> /dev/null 2>& 1 + [ 'X${config_UserChoices_JobName}_1y_ptrc_T.nc' '!=' X_0_ ] + typeset i + [ ] + eval NbFiles='${#pisces_OutputFiles_List[@]}' + 1> /dev/null 2>& 1 + i=2 + [ 2 -gt 21 ] + eval flag_post='${pisces_OutputFiles_List[2]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 5 -gt 21 ] + eval flag_post='${pisces_OutputFiles_List[5]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 8 -gt 21 ] + eval flag_post='${pisces_OutputFiles_List[8]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 11 -gt 21 ] + eval flag_post='${pisces_OutputFiles_List[11]}' + 1> /dev/null 2>& 1 + [ XPost_1M_bioscalar '!=' XNONE ] + echo Post_1M_bioscalar + awk -FPost_ '{print $2}' + FILE=1M_bioscalar + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/pisces.card Post_1M_bioscalar TimeSeriesVars3D unset pisces_Post_1M_bioscalar_TimeSeriesVars3Dpisces_Post_1M_bioscalar_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/pisces.card Post_1M_bioscalar ChunckJob3D pisces_Post_1M_bioscalar_ChunckJob3D=NONE+ eval echo '${pisces_Post_1M_bioscalar_TimeSeriesVars3D}' echo ${pisces_Post_1M_bioscalar_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_bioscalar according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/pisces.card' 2018-07-26 11:03:57 --------------Debug3--> Nothing to do for 1M_bioscalar according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/pisces.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_bioscalar is empty' 2018-07-26 11:03:57 --------------Debug3--> TimeSeriesVars3D for 1M_bioscalar is empty + (( i=i+3 )) + continue + [ 14 -gt 21 ] + eval flag_post='${pisces_OutputFiles_List[14]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 17 -gt 21 ] + eval flag_post='${pisces_OutputFiles_List[17]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 20 -gt 21 ] + eval flag_post='${pisces_OutputFiles_List[20]}' + 1> /dev/null 2>& 1 + [ XNONE '!=' XNONE ] + (( i=i+3 )) + [ 23 -gt 21 ] + [ false '=' true ] + ActiveComp=false + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents CPL unset config_ListOfComponents_CPLconfig_ListOfComponents_CPL[0]=_0_+ eval compname='${config_ListOfComponents_CPL[0]}' + 1> /dev/null 2>& 1 + card=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card OutputFiles List unset oasis_OutputFiles_Listoasis_OutputFiles_List[0]=_0_+ ListFilesName=oasis_OutputFiles_List + eval FileName0='${oasis_OutputFiles_List[0]}' + 1> /dev/null 2>& 1 + [ XSISUTESW_LMDZ_01.nc '!=' X_0_ ] + typeset i + [ ] + eval NbFiles='${#oasis_OutputFiles_List[@]}' + 1> /dev/null 2>& 1 + i=2 + [ 2 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[2]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 5 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[5]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 8 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[8]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 11 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[11]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 14 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[14]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 17 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[17]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 20 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[20]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 23 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[23]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 26 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[26]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 29 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[29]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 32 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[32]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 35 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[35]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 38 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[38]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 41 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[41]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 44 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[44]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 47 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[47]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 50 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[50]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 53 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[53]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 56 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[56]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 59 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[59]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 62 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[62]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 65 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[65]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 68 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[68]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 71 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[71]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 74 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[74]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 77 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[77]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 80 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[80]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 83 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[83]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 86 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[86]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 89 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[89]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 92 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[92]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 95 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[95]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 98 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[98]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 101 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[101]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 104 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[104]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 107 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[107]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 110 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[110]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 113 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[113]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 116 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[116]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 119 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[119]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 122 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[122]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:58 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:58 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 125 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[125]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 128 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[128]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 131 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[131]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 134 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[134]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 137 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[137]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 140 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[140]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 143 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[143]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 146 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[146]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 149 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[149]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 152 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[152]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 155 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[155]}' + 1> /dev/null 2>& 1 + [ XPost_ncks_cdo '!=' XNONE ] + echo Post_ncks_cdo + awk -FPost_ '{print $2}' + FILE=ncks_cdo + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo TimeSeriesVars3D unset oasis_Post_ncks_cdo_TimeSeriesVars3Doasis_Post_ncks_cdo_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_ncks_cdo ChunckJob3D oasis_Post_ncks_cdo_ChunckJob3D=NONE+ eval echo '${oasis_Post_ncks_cdo_TimeSeriesVars3D}' echo ${oasis_Post_ncks_cdo_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for ncks_cdo according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for ncks_cdo is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for ncks_cdo is empty + (( i=i+3 )) + continue + [ 158 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[158]}' + 1> /dev/null 2>& 1 + [ XPost_1D_cpl_atm '!=' XNONE ] + echo Post_1D_cpl_atm + awk -FPost_ '{print $2}' + FILE=1D_cpl_atm + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_1D_cpl_atm TimeSeriesVars3D unset oasis_Post_1D_cpl_atm_TimeSeriesVars3Doasis_Post_1D_cpl_atm_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_1D_cpl_atm ChunckJob3D oasis_Post_1D_cpl_atm_ChunckJob3D=NONE+ eval echo '${oasis_Post_1D_cpl_atm_TimeSeriesVars3D}' echo ${oasis_Post_1D_cpl_atm_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1D_cpl_atm according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for 1D_cpl_atm according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1D_cpl_atm is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for 1D_cpl_atm is empty + (( i=i+3 )) + continue + [ 161 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[161]}' + 1> /dev/null 2>& 1 + [ XPost_1D_cpl_oce '!=' XNONE ] + echo Post_1D_cpl_oce + awk -FPost_ '{print $2}' + FILE=1D_cpl_oce + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_1D_cpl_oce TimeSeriesVars3D unset oasis_Post_1D_cpl_oce_TimeSeriesVars3Doasis_Post_1D_cpl_oce_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_1D_cpl_oce ChunckJob3D oasis_Post_1D_cpl_oce_ChunckJob3D=NONE+ eval echo '${oasis_Post_1D_cpl_oce_TimeSeriesVars3D}' echo ${oasis_Post_1D_cpl_oce_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1D_cpl_oce according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for 1D_cpl_oce according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1D_cpl_oce is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for 1D_cpl_oce is empty + (( i=i+3 )) + continue + [ 164 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[164]}' + 1> /dev/null 2>& 1 + [ XPost_1M_cpl_atm '!=' XNONE ] + echo Post_1M_cpl_atm + awk -FPost_ '{print $2}' + FILE=1M_cpl_atm + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_1M_cpl_atm TimeSeriesVars3D unset oasis_Post_1M_cpl_atm_TimeSeriesVars3Doasis_Post_1M_cpl_atm_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_1M_cpl_atm ChunckJob3D oasis_Post_1M_cpl_atm_ChunckJob3D=NONE+ eval echo '${oasis_Post_1M_cpl_atm_TimeSeriesVars3D}' echo ${oasis_Post_1M_cpl_atm_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_cpl_atm according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for 1M_cpl_atm according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_cpl_atm is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for 1M_cpl_atm is empty + (( i=i+3 )) + continue + [ 167 -gt 168 ] + eval flag_post='${oasis_OutputFiles_List[167]}' + 1> /dev/null 2>& 1 + [ XPost_1M_cpl_oce '!=' XNONE ] + echo Post_1M_cpl_oce + awk -FPost_ '{print $2}' + FILE=1M_cpl_oce + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_1M_cpl_oce TimeSeriesVars3D unset oasis_Post_1M_cpl_oce_TimeSeriesVars3Doasis_Post_1M_cpl_oce_TimeSeriesVars3D[0]=_0_+ IGCM_card_DefineVariableFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card Post_1M_cpl_oce ChunckJob3D oasis_Post_1M_cpl_oce_ChunckJob3D=NONE+ eval echo '${oasis_Post_1M_cpl_oce_TimeSeriesVars3D}' echo ${oasis_Post_1M_cpl_oce_TimeSeriesVars3D}+ echo _0_ + [ _0_ '=' _0_ ] + IGCM_debug_Print 3 'Nothing to do for 1M_cpl_oce according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card' 2018-07-26 11:03:59 --------------Debug3--> Nothing to do for 1M_cpl_oce according to /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/oasis.card + IGCM_debug_Print 3 'TimeSeriesVars3D for 1M_cpl_oce is empty' 2018-07-26 11:03:59 --------------Debug3--> TimeSeriesVars3D for 1M_cpl_oce is empty + (( i=i+3 )) + continue + [ 170 -gt 168 ] + [ false '=' true ] + ActiveComp=false + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/config.card ListOfComponents IOS unset config_ListOfComponents_IOSconfig_ListOfComponents_IOS[0]=_0_+ eval compname='${config_ListOfComponents_IOS[0]}' + 1> /dev/null 2>& 1 + card=/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/xios.card + IGCM_card_DefineArrayFromOption /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/COMP/xios.card OutputFiles List unset xios_OutputFiles_Listxios_OutputFiles_List[0]=_0_+ ListFilesName=xios_OutputFiles_List + eval FileName0='${xios_OutputFiles_List[0]}' + 1> /dev/null 2>& 1 + [ X_0_ '!=' X_0_ ] + [ false '=' true ] set -A config_ListOfComponents ${ActiveListOfComponents[*]} + set -A config_ListOfComponents SRF SBG [ ! -z "${ActiveListOfComponents}" ] && DoJob=true + [ ! -z SRF ] + DoJob=true ######################################################################## # # IS THERE SOME ALLREADY PRODUCED TIME SERIES ? # IF SO BRING THEM IN THE WORKING DIRECTORY # # PS : Keep in mind that IGCM_sys_Get here is a weak link : # - especially for IDRiS # - no special protection against "command too long" ! # - libIGCM_sys should handle that or modify following code part # ######################################################################## if [ ${StandAlone} != true ] ; then Running_Flag=$( IGCM_sys_RshMaster "IGCM_card_DefineVariableFromOption \ ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesRunning ; \ echo \${run_PostProcessing_TimeSeriesRunning}" ) #if [ X${Running_Flag} = Xy ] ; then # # Time Series Job allready running # IGCM_debug_Print 1 "Time Series Job allready running exit" # exit #fi # Now run.card know we are running IGCM_sys_RshMaster IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesRunning "y" # Get information from last execution #CompletedFlag=$( IGCM_sys_RshMaster \ # "IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted ;\ # echo \${run_PostProcessing_TimeSeriesCompleted}" ) fi + [ true '!=' true ] # Is it the first submission or not ? if ( [ X${CompletedFlag} = X ] || [ X${CompletedFlag} = X$( IGCM_date_AddDaysToGregorianDate ${DateBegin} -1 ) ] ) ; then # First Time Series Submission FIRST_PASS=TRUE Length=$( IGCM_date_DaysInPreviousPeriod ${DateBegin} ${config_UserChoices_PeriodLength} begin) DATE_FIN_JOB_B=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( Length - 1 )) ) else # Last Completed Time Series FIRST_PASS=FALSE DATE_FIN_JOB_B=${CompletedFlag} date=${DateBegin}_${DATE_FIN_JOB_B} # for comp in ${config_ListOfComponents[*]} ; do # IGCM_sys_Mkdir ${RUN_DIR_PATH}/${comp} # IGCM_sys_Cd ${RUN_DIR_PATH}/${comp} # unset liste_file # file_path=${R_SAVE}/${comp}/Analyse # i=0 file=${NULL_STR} # for file in $( eval echo \${LISTE_FILE_${comp}[*]} ); do # # Determine in which output can we find file # IE : Analyse/TS or Analyse/DA2TS or ... # FlagDir=$( echo ${file} | awk -F "_" '{print $1}' ) case ${FlagDir} in *Y) TS_Dir=TS_YE ;; *M) TS_Dir=TS_MO ;; *D) TS_Dir=TS_DA ;; HF) TS_Dir=TS_HF ;; 3H) TS_Dir=TS_HF ;; INS) TS_Dir=TS_INS ;; esac for var in $( eval echo \${LISTE_VARS_${file}[*]} ) ; do # IGCM_sys_TestFileArchive ${file_path}/${TS_Dir}/${config_UserChoices_JobName}_${date}_${FlagDir}_${var}.nc if [ $? = 0 ] ; then liste_file[${#liste_file[*]}]=${file_path}/${TS_Dir}/${config_UserChoices_JobName}_${date}_${FlagDir}_${var}.nc else IGCM_debug_Print 1 "WARNING ${file_path}/${TS_Dir}/${config_UserChoices_JobName}_${date}_${FlagDir}_${var}.nc dont exist" fi # done done if [ X${file} != X${NULL_STR} ] ; then IGCM_sys_Get /l liste_file[*] ${RUN_DIR_PATH}/${comp} IGCM_debug_Verif_Exit fi done # LEVEL=0 # fi + [ X '=' X ] + FIRST_PASS=TRUE + IGCM_date_DaysInPreviousPeriod 18500101 10Y begin year=1850month=01+ Length=3652 + IGCM_date_AddDaysToGregorianDate 18500101 3651 + DATE_FIN_JOB_B=18591231 ######################################################################## # # DEFINE LOOP PARAMETERS # ######################################################################## DATE_COUNT=${DATE_FIN_JOB_B} + DATE_COUNT=18591231 DATE_FIN_JOB_B_LOOP=${DATE_FIN_JOB_B} + DATE_FIN_JOB_B_LOOP=18591231 ( [ -n "${LEVEL}" ] && [ ${LEVEL} -eq 0 ] ) && NBRE_FILE_TOT=0 || NBRE_FILE_TOT=1 + [ -n '' ] + NBRE_FILE_TOT=1 if [ ${DoJob} = true ] ; then while [ ${DATE_COUNT} -lt ${PeriodDateEnd} ] ; do (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) Length=$( IGCM_date_DaysInNextPeriod ${DATE_COUNT} ${config_UserChoices_PeriodLength} ) DATE_COUNT=$( IGCM_date_AddDaysToGregorianDate ${DATE_COUNT} ${Length} ) done else NBRE_FILE_TOT=0 fi + [ true '=' true ] + [ 18591231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 18591231 10Y year=1859month=12+ Length=3653 + IGCM_date_AddDaysToGregorianDate 18591231 3653 + DATE_COUNT=18691231 + [ 18691231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 18691231 10Y year=1869month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 18691231 3652 + DATE_COUNT=18791231 + [ 18791231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 18791231 10Y year=1879month=12+ Length=3653 + IGCM_date_AddDaysToGregorianDate 18791231 3653 + DATE_COUNT=18891231 + [ 18891231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 18891231 10Y year=1889month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 18891231 3652 + DATE_COUNT=18991231 + [ 18991231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 18991231 10Y year=1899month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 18991231 3652 + DATE_COUNT=19091231 + [ 19091231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19091231 10Y year=1909month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 19091231 3652 + DATE_COUNT=19191231 + [ 19191231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19191231 10Y year=1919month=12+ Length=3653 + IGCM_date_AddDaysToGregorianDate 19191231 3653 + DATE_COUNT=19291231 + [ 19291231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19291231 10Y year=1929month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 19291231 3652 + DATE_COUNT=19391231 + [ 19391231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19391231 10Y year=1939month=12+ Length=3653 + IGCM_date_AddDaysToGregorianDate 19391231 3653 + DATE_COUNT=19491231 + [ 19491231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19491231 10Y year=1949month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 19491231 3652 + DATE_COUNT=19591231 + [ 19591231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19591231 10Y year=1959month=12+ Length=3653 + IGCM_date_AddDaysToGregorianDate 19591231 3653 + DATE_COUNT=19691231 + [ 19691231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19691231 10Y year=1969month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 19691231 3652 + DATE_COUNT=19791231 + [ 19791231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19791231 10Y year=1979month=12+ Length=3653 + IGCM_date_AddDaysToGregorianDate 19791231 3653 + DATE_COUNT=19891231 + [ 19891231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19891231 10Y year=1989month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 19891231 3652 + DATE_COUNT=19991231 + [ 19991231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 19991231 10Y year=1999month=12+ Length=3653 + IGCM_date_AddDaysToGregorianDate 19991231 3653 + DATE_COUNT=20091231 + [ 20091231 -lt 20141231 ] + (( NBRE_FILE_TOT = NBRE_FILE_TOT + 1 )) + IGCM_date_DaysInNextPeriod 20091231 10Y year=2009month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 20091231 3652 + DATE_COUNT=20191231 + [ 20191231 -lt 20141231 ] if [ ${NBRE_FILE_TOT} -le ${UNIX_MAX_LIMIT} ] ; then NBRE_TOUR=1 elif [ ${NBRE_FILE_TOT}%${UNIX_MAX_LIMIT} -eq 0 ] ; then let NBRE_TOUR=${NBRE_FILE_TOT}/${UNIX_MAX_LIMIT} else let NBRE_TOUR=${NBRE_FILE_TOT}/${UNIX_MAX_LIMIT}+1 fi + [ 17 -le 360 ] + NBRE_TOUR=1 CURRENT_LOOP=1 + CURRENT_LOOP=1 # THIS LOOP GIVES PARAMETERS FOR THE DATE'S LOOP ie : DATE_COURANTE, DATE_FIN. # WE HAVE 3 LEVELS # - LEVEL 1 : JUST ONE LOOP TO COMPLETE # - LEVEL 2 : WE ARE IN THE "DEEP" LOOP # - LEVEL 3 : WE ARE IN THE LAST LOOP while [ ${CURRENT_LOOP} -le ${NBRE_TOUR} ] ; do if [ ${NBRE_FILE_TOT} -le ${UNIX_MAX_LIMIT} ] ; then # - LEVEL 1 : JUST ONE LOOP TO COMPLETE NBRE_FILE_LOOP=${NBRE_FILE_TOT} if [ ${FIRST_PASS} = TRUE ] ; then DATE_COURANTE=${DATE_FIN_JOB_B_LOOP} else Length=$( IGCM_date_DaysInNextPeriod ${DATE_FIN_JOB_B_LOOP} ${config_UserChoices_PeriodLength} ) DATE_COURANTE=$( IGCM_date_AddDaysToGregorianDate ${DATE_FIN_JOB_B_LOOP} ${Length} ) fi DATE_FIN=${PeriodDateEnd} DATE_FIN_JOB_B_LOOP_PREC=${DATE_FIN_JOB_B_LOOP} [ -n "${DATE_LOOP}" ] && DATE_FIN_JOB_B_LOOP=${DATE_LOOP} [ -n "${LEVEL}" ] && FLAG_B="TRUE" || FLAG_B="FALSE" LEVEL=1 DEPOT="TRUE" elif [ ${CURRENT_LOOP} -ne ${NBRE_TOUR} ] ; then # - LEVEL 2 : WE ARE IN THE "DEEP" LOOP NBRE_FILE_LOOP=${UNIX_MAX_LIMIT} if [ ! ${FIRST_PASS} = TRUE ] && [ ${CURRENT_LOOP} -eq 1 ] ; then Length=$( IGCM_date_DaysInNextPeriod ${DATE_FIN_JOB_B_LOOP} ${config_UserChoices_PeriodLength} ) DATE_COURANTE=$( IGCM_date_AddDaysToGregorianDate ${DATE_FIN_JOB_B_LOOP} ${Length} ) elif [ -z "${DATE_COURANTE}" ] ; then DATE_COURANTE=${DATE_FIN_JOB_B} else Length=$( IGCM_date_DaysInNextPeriod ${DATE_FIN} ${config_UserChoices_PeriodLength} ) DATE_COURANTE=$( IGCM_date_AddDaysToGregorianDate ${DATE_FIN} ${Length} ) fi (( TotLength = 0 )) COMPTEUR=1 DATE_LOOP=${DATE_COURANTE} while [ ${COMPTEUR} -lt ${NBRE_FILE_LOOP} ] ; do # Length=$( IGCM_date_DaysInNextPeriod ${DATE_LOOP} ${config_UserChoices_PeriodLength} ) DATE_LOOP=$( IGCM_date_AddDaysToGregorianDate ${DATE_LOOP} ${Length} ) (( TotLength = TotLength + Length )) (( COMPTEUR = COMPTEUR + 1 )) # done # while [ ${COMPTEUR} -le ${NBRE_FILE_LOOP} ] done DATE_FIN=$( IGCM_date_AddDaysToGregorianDate ${DATE_COURANTE} ${TotLength} ) [ -n "${DATE_LOOP}" ] && DATE_FIN_JOB_B_LOOP_PREC=${DATE_FIN_JOB_B_LOOP} ; DATE_FIN_JOB_B_LOOP=${DATE_LOOP} [ -n "${LEVEL}" ] && [ ${LEVEL} -eq 0 ] && FLAG_B="TRUE" || [ ${CURRENT_LOOP} -gt 1 ] && FLAG_B="TRUE" || FLAG_B="FALSE" DEPOT="FALSE" LEVEL=2 else # - LEVEL 3 : WE ARE IN THE LAST LOOP NBRE_FILE_LOOP=$(( ${NBRE_FILE_TOT} % ( ${UNIX_MAX_LIMIT} * ( ${CURRENT_LOOP} - 1 ) ) )) [ ${NBRE_FILE_LOOP} -eq 0 ] && NBRE_FILE_LOOP=${UNIX_MAX_LIMIT} Length=$( IGCM_date_DaysInNextPeriod ${DATE_FIN} ${config_UserChoices_PeriodLength} ) DATE_COURANTE=$(IGCM_date_AddDaysToGregorianDate ${DATE_FIN} ${Length} ) DATE_FIN=${PeriodDateEnd} [ -n "${DATE_LOOP}" ] && DATE_FIN_JOB_B_LOOP_PREC=${DATE_FIN_JOB_B_LOOP} ; DATE_FIN_JOB_B_LOOP=${DATE_LOOP} LEVEL=3 DEPOT="TRUE" FLAG_B="TRUE" fi # THEN FOR EACH FILE TYPE WE LOOP BETWEEN DATE_COURANTE AND DATE_FIN. for comp in ${config_ListOfComponents[*]} ; do # IGCM_sys_Mkdir ${RUN_DIR_PATH}/${comp} # IGCM_sys_Cd ${RUN_DIR_PATH}/${comp} # eval R_OUT_${comp}=${R_SAVE}/${comp} # i=0 # for file in $( eval echo \${LISTE_FILE_${comp}[*]} ); do # # Determine in which output we can find file # IE : Output/MO or Output/DA or ... # FlagDir=$( echo ${file} | awk -F "_" '{print $1}' ) case ${FlagDir} in *Y) TS_Dir=TS_YE ; FreqDir=YE ;; *M) TS_Dir=TS_MO ; FreqDir=MO ;; *D) TS_Dir=TS_DA ; FreqDir=DA ;; HF) TS_Dir=TS_HF ; FreqDir=HF ;; 3H) TS_Dir=TS_HF ; FreqDir=HF ;; INS) TS_Dir=TS_INS ; FreqDir=INS ;; *) IGCM_debug_Print 1 "Error in FlagDir=${FlagDir} for file ${file}." IGCM_debug_Exit "Job create_ts" ;; esac # Initialize array unset liste_file unset liste_file_tmp eval file_path=\${R_OUT_${comp}}/Output/${FreqDir}/ COMPTEUR=1 MissingFile=FALSE DATE_LOOP=${DATE_COURANTE} while [ ${COMPTEUR} -le ${NBRE_FILE_LOOP} ] ; do # Length1=$( IGCM_date_DaysInPreviousPeriod ${DATE_LOOP} ${config_UserChoices_PeriodLength} end) DATE_TAB=$( IGCM_date_AddDaysToGregorianDate ${DATE_LOOP} $(( 1 - Length1 )) )_${DATE_LOOP} Length2=$( IGCM_date_DaysInNextPeriod ${DATE_LOOP} ${config_UserChoices_PeriodLength} ) DATE_LOOP=$( IGCM_date_AddDaysToGregorianDate ${DATE_LOOP} ${Length2} ) IGCM_sys_TestFileArchive ${file_path}${config_UserChoices_JobName}_${DATE_TAB}_${file}.nc if [ $? = 0 ] ; then liste_file[${#liste_file[*]}]=${file_path}${config_UserChoices_JobName}_${DATE_TAB}_${file}.nc liste_file_tmp[${#liste_file_tmp[*]}]=${config_UserChoices_JobName}_${DATE_TAB}_${file}.nc else IGCM_debug_Print 1 "WARNING ${file_path}${config_UserChoices_JobName}_${DATE_TAB}_${file}.nc dont exist" MissingFile=TRUE fi (( COMPTEUR = COMPTEUR + 1 )) # done # while [ ${COMPTEUR} -le ${NBRE_FILE_LOOP} ] done # We skip this file type if one of them is missing. if [ "${MissingFile}" = "TRUE" ] ; then IGCM_debug_Print 1 "WARNING We skip ${file} type processing" continue fi DATE_LOOP=$( IGCM_date_AddDaysToGregorianDate ${DATE_LOOP} -${Length2} ) # Get selected files IGCM_sys_Get /l liste_file[*] ${RUN_DIR_PATH}/${comp} IGCM_debug_Verif_Exit # Apply IGCM_Patch if needed if [ ! X${RebuildFrequency} = Xtrue ] ; then if [ X$( eval echo \${LISTE_PATCHES_${file}[0]} ) != X${NULL_STR} ]; then for file_t in $( eval echo ${liste_file_tmp[*]} ); do for Patch in $( eval echo \${LISTE_PATCHES_${file}[*]} ); do IGCM_${Patch} ${file_t} IGCM_debug_Verif_Exit done done fi fi # WE CAN CONCATENATE FILES AT THIS POINT [ "${FLAG_B}" = "TRUE" ] && DATE_BUILD_B=${DateBegin}_${DATE_FIN_JOB_B_LOOP_PREC} Length=$( IGCM_date_DaysInPreviousPeriod ${DATE_COURANTE} ${config_UserChoices_PeriodLength} end) DATE_BUILD1=$( IGCM_date_AddDaysToGregorianDate ${DATE_COURANTE} -$(( Length - 1 )) ) DATE_BUILD=${DATE_BUILD1}_${DATE_FIN} DATE_BUILD_END=${DateBegin}_${DATE_FIN} liste_coord=" " for axis in $( eval echo \${LISTE_AXIS_${file}[*]} ); do liste_coord=${liste_coord}${axis}"," done # Time axis must be the last dimension time_axis=${axis} # SWITCH BETWEEN MODEL TO FIT PARTICULAR CASE for var in $( eval echo \${LISTE_VARS_${file}[*]} ) ; do # # We skip variables not in the first file of the list. # Seems overkill to test thel all... but will do if needed ncdump -hv ${var} ${liste_file_tmp[0]} > /dev/null 2>&1 if [ ! $? = 0 ] ; then IGCM_debug_Print 1 "WARNING We skip ${var}, not present within ${liste_file_tmp[0]}" continue fi # if [ "${FLAG_B}" = "TRUE" ] ; then # WE CONCATENATE WITH EXISTING FILES file1=${config_UserChoices_JobName}_${DATE_BUILD_B}_${FlagDir}_${var}.nc file_out=${config_UserChoices_JobName}_${DATE_BUILD_END}_${FlagDir}_${var}.nc IGCM_sys_ncrcat --hst -v ${liste_coord}${var} ${file1} ${liste_file_tmp[*]} ${file_out} IGCM_debug_Verif_Exit # IGCM_sys_Rm ${file1} if [ ! "${DEPOT}" = "TRUE" ] ; then eval IGCM_sys_Put_Out ${file_out} \${R_OUT_${comp}}/Analyse/${TS_Dir}/${file_out} # "${file1} = file_before ? [ ! "${file1}" = "${config_UserChoices_JobName}_${DateBegin}_${DATE_FIN_JOB_B}_${FlagDir}_${var}.nc" ] && eval MENAGE \${R_OUT_${comp}}/Analyse/${TS_Dir} ${file1} ${file_out} fi else # OR NOT file_out=${config_UserChoices_JobName}_${DATE_BUILD}_${FlagDir}_${var}.nc IGCM_sys_ncrcat --hst -v ${liste_coord}${var} ${liste_file_tmp[*]} ${file_out} IGCM_debug_Verif_Exit fi # if [ "${DEPOT}" = "TRUE" ] ; then # WE PUT FINAL FILE ON FILE SYSTEM [ "${FLAG_B}" = "FALSE" ] && file_out=${config_UserChoices_JobName}_${DATE_BUILD}_${FlagDir}_${var}.nc file_before=${config_UserChoices_JobName}_${DateBegin}_${DATE_FIN_JOB_B}_${FlagDir}_${var}.nc # eval IGCM_sys_Put_Out ${file_out} \${R_OUT_${comp}}/Analyse/${TS_Dir}/${file_out} [ "${FLAG_B}" = "TRUE" ] && eval MENAGE \${R_OUT_${comp}}/Analyse/${TS_Dir} ${file_before} ${file_out} if [ ! "X${file1}" = "X" ] ; then [ ! "${file1}" = "${config_UserChoices_JobName}_${DateBegin}_${DATE_FIN_JOB_B}_${FlagDir}_${var}.nc" ] && eval MENAGE \${R_OUT_${comp}}/Analyse/${TS_Dir} ${file1} ${file_out} fi # [ -f ${file_out} ] && IGCM_sys_Rm ${file_out} # fi # done # for var in ${liste_var} ; do IGCM_sys_Rm ${liste_file_tmp[*]} done # for file in ${liste_file_brut} do done # for comp in ${config_ListOfComponents[*]} ; do # GO AHEAD IN DEEPEST LOOP (( CURRENT_LOOP = CURRENT_LOOP + 1 )) done # while [ ${CURRENT_LOOP} -le ${NBRE_TOUR} ] do # FINISH # DODS copy + [ 1 -le 1 ] + [ 17 -le 360 ] + NBRE_FILE_LOOP=17 + [ TRUE '=' TRUE ] + DATE_COURANTE=18591231 + DATE_FIN=20141231 + DATE_FIN_JOB_B_LOOP_PREC=18591231 + [ -n '' ] + [ -n '' ] + FLAG_B=FALSE + LEVEL=1 + DEPOT=TRUE + IGCM_sys_Mkdir /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SRF IGCM_sys_Mkdir : /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SRF + IGCM_sys_Cd /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SRF IGCM_sys_Cd : /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SRF + eval R_OUT_SRF=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF R_OUT_SRF=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF+ R_OUT_SRF=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF + i=0 + eval echo '${LISTE_FILE_SRF[*]}' echo ${LISTE_FILE_SRF[*]}+ echo 1M_sechiba_history + echo 1M_sechiba_history + awk -F _ '{print $1}' + FlagDir=1M + TS_Dir=TS_MO + FreqDir=MO + unset liste_file + unset liste_file_tmp + eval file_path='${R_OUT_SRF}/Output/MO/' file_path=${R_OUT_SRF}/Output/MO/+ file_path=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/ + COMPTEUR=1 + MissingFile=FALSE + DATE_LOOP=18591231 + [ 1 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18591231 10Y end year=1859month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 18591231 -3651 + DATE_TAB=18500101_18591231 + IGCM_date_DaysInNextPeriod 18591231 10Y year=1859month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 18591231 3653 + DATE_LOOP=18691231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[0]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + liste_file_tmp[0]=CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 2 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18691231 10Y end year=1869month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 18691231 -3652 + DATE_TAB=18600101_18691231 + IGCM_date_DaysInNextPeriod 18691231 10Y year=1869month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 18691231 3652 + DATE_LOOP=18791231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[1]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc + liste_file_tmp[1]=CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 3 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18791231 10Y end year=1879month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 18791231 -3651 + DATE_TAB=18700101_18791231 + IGCM_date_DaysInNextPeriod 18791231 10Y year=1879month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 18791231 3653 + DATE_LOOP=18891231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[2]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc + liste_file_tmp[2]=CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 4 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18891231 10Y end year=1889month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 18891231 -3652 + DATE_TAB=18800101_18891231 + IGCM_date_DaysInNextPeriod 18891231 10Y year=1889month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 18891231 3652 + DATE_LOOP=18991231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[3]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc + liste_file_tmp[3]=CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 5 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18991231 10Y end year=1899month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 18991231 -3651 + DATE_TAB=18900101_18991231 + IGCM_date_DaysInNextPeriod 18991231 10Y year=1899month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 18991231 3652 + DATE_LOOP=19091231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[4]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc + liste_file_tmp[4]=CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 6 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19091231 10Y end year=1909month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19091231 -3651 + DATE_TAB=19000101_19091231 + IGCM_date_DaysInNextPeriod 19091231 10Y year=1909month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19091231 3652 + DATE_LOOP=19191231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[5]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc + liste_file_tmp[5]=CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 7 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19191231 10Y end year=1919month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19191231 -3651 + DATE_TAB=19100101_19191231 + IGCM_date_DaysInNextPeriod 19191231 10Y year=1919month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19191231 3653 + DATE_LOOP=19291231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[6]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc + liste_file_tmp[6]=CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 8 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19291231 10Y end year=1929month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 19291231 -3652 + DATE_TAB=19200101_19291231 + IGCM_date_DaysInNextPeriod 19291231 10Y year=1929month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19291231 3652 + DATE_LOOP=19391231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[7]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc + liste_file_tmp[7]=CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 9 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19391231 10Y end year=1939month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19391231 -3651 + DATE_TAB=19300101_19391231 + IGCM_date_DaysInNextPeriod 19391231 10Y year=1939month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19391231 3653 + DATE_LOOP=19491231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[8]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc + liste_file_tmp[8]=CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 10 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19491231 10Y end year=1949month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 19491231 -3652 + DATE_TAB=19400101_19491231 + IGCM_date_DaysInNextPeriod 19491231 10Y year=1949month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19491231 3652 + DATE_LOOP=19591231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[9]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc + liste_file_tmp[9]=CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 11 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19591231 10Y end year=1959month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19591231 -3651 + DATE_TAB=19500101_19591231 + IGCM_date_DaysInNextPeriod 19591231 10Y year=1959month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19591231 3653 + DATE_LOOP=19691231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[10]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc + liste_file_tmp[10]=CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 12 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19691231 10Y end year=1969month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 19691231 -3652 + DATE_TAB=19600101_19691231 + IGCM_date_DaysInNextPeriod 19691231 10Y year=1969month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19691231 3652 + DATE_LOOP=19791231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[11]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc + liste_file_tmp[11]=CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 13 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19791231 10Y end year=1979month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19791231 -3651 + DATE_TAB=19700101_19791231 + IGCM_date_DaysInNextPeriod 19791231 10Y year=1979month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19791231 3653 + DATE_LOOP=19891231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[12]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc + liste_file_tmp[12]=CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 14 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19891231 10Y end year=1989month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 19891231 -3652 + DATE_TAB=19800101_19891231 + IGCM_date_DaysInNextPeriod 19891231 10Y year=1989month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19891231 3652 + DATE_LOOP=19991231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[13]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc + liste_file_tmp[13]=CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 15 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19991231 10Y end year=1999month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19991231 -3651 + DATE_TAB=19900101_19991231 + IGCM_date_DaysInNextPeriod 19991231 10Y year=1999month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19991231 3653 + DATE_LOOP=20091231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[14]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc + liste_file_tmp[14]=CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 16 -le 17 ] + IGCM_date_DaysInPreviousPeriod 20091231 10Y end year=2009month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 20091231 -3652 + DATE_TAB=20000101_20091231 + IGCM_date_DaysInNextPeriod 20091231 10Y year=2009month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 20091231 3652 + DATE_LOOP=20191231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[15]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc + liste_file_tmp[15]=CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 17 -le 17 ] + IGCM_date_DaysInPreviousPeriod 20191231 10Y end year=2019month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 20191231 -3651 + DATE_TAB=20100101_20191231 + IGCM_date_DaysInNextPeriod 20191231 10Y year=2019month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 20191231 3653 + DATE_LOOP=20291231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc + [ 0 '=' 0 ] + liste_file[16]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Output/MO/CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc + liste_file_tmp[16]=CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 18 -le 17 ] + [ FALSE '=' TRUE ] + IGCM_date_AddDaysToGregorianDate 20291231 -3653 + DATE_LOOP=20191231 + IGCM_sys_Get /l 'liste_file[*]' /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SRF IGCM_sys_Get : /l liste_file[*] /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SRF set +A dm_liste ${liste_file[*]}DEST=${3}+ IGCM_debug_Verif_Exit + [ ! Xtrue '=' Xtrue ] + [ FALSE '=' TRUE ] + IGCM_date_DaysInPreviousPeriod 18591231 10Y end year=1859month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 18591231 -3651 + DATE_BUILD1=18500101 + DATE_BUILD=18500101_20141231 + DATE_BUILD_END=18500101_20141231 + liste_coord=' ' + eval echo '${LISTE_AXIS_1M_sechiba_history[*]}' echo ${LISTE_AXIS_1M_sechiba_history[*]}+ echo lon lat time_counter Areas Contfrac time_centered time_centered_bounds + liste_coord=' lon,' + liste_coord=' lon,lat,' + liste_coord=' lon,lat,time_counter,' + liste_coord=' lon,lat,time_counter,Areas,' + liste_coord=' lon,lat,time_counter,Areas,Contfrac,' + liste_coord=' lon,lat,time_counter,Areas,Contfrac,time_centered,' + liste_coord=' lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,' + time_axis=time_centered_bounds + eval echo '${LISTE_VARS_1M_sechiba_history[*]}' echo ${LISTE_VARS_1M_sechiba_history[*]}+ echo lai maxvegetfrac vegetfrac nee gpp growth_resp hetero_resp humrel inter maint_resp npp precisol + ncdump -hv lai CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,lai CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,lai CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_lai.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_lai.nc + ncdump -hv maxvegetfrac CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,maxvegetfrac CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,maxvegetfrac CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_maxvegetfrac.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_maxvegetfrac.nc + ncdump -hv vegetfrac CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,vegetfrac CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,vegetfrac CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_vegetfrac.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_vegetfrac.nc + ncdump -hv nee CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,nee CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,nee CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_nee.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_nee.nc + ncdump -hv gpp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,gpp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,gpp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_gpp.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_gpp.nc + ncdump -hv growth_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,growth_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,growth_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_growth_resp.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_growth_resp.nc + ncdump -hv hetero_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,hetero_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,hetero_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_hetero_resp.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_hetero_resp.nc + ncdump -hv humrel CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,humrel CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,humrel CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_humrel.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_humrel.nc + ncdump -hv inter CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,inter CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,inter CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_inter.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_inter.nc + ncdump -hv maint_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,maint_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,maint_resp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_maint_resp.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_maint_resp.nc + ncdump -hv npp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,npp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,npp CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_npp.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_npp.nc + ncdump -hv precisol CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc + IGCM_sys_ncrcat --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,precisol CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc IGCM_sys_ncrcat : --hst -v lon,lat,time_counter,Areas,Contfrac,time_centered,time_centered_bounds,precisol CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_precisol.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc '${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc ${R_OUT_SRF}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_precisol.nc + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_18591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_sechiba_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_sechiba_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_sechiba_history.nc + IGCM_sys_Mkdir /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SBG IGCM_sys_Mkdir : /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SBG + IGCM_sys_Cd /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SBG IGCM_sys_Cd : /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SBG + eval R_OUT_SBG=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG R_OUT_SBG=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG+ R_OUT_SBG=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG + i=0 + eval echo '${LISTE_FILE_SBG[*]}' echo ${LISTE_FILE_SBG[*]}+ echo 1M_stomate_history + echo 1M_stomate_history + awk -F _ '{print $1}' + FlagDir=1M + TS_Dir=TS_MO + FreqDir=MO + unset liste_file + unset liste_file_tmp + eval file_path='${R_OUT_SBG}/Output/MO/' file_path=${R_OUT_SBG}/Output/MO/+ file_path=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/ + COMPTEUR=1 + MissingFile=FALSE + DATE_LOOP=18591231 + [ 1 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18591231 10Y end year=1859month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 18591231 -3651 + DATE_TAB=18500101_18591231 + IGCM_date_DaysInNextPeriod 18591231 10Y year=1859month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 18591231 3653 + DATE_LOOP=18691231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[0]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + liste_file_tmp[0]=CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 2 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18691231 10Y end year=1869month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 18691231 -3652 + DATE_TAB=18600101_18691231 + IGCM_date_DaysInNextPeriod 18691231 10Y year=1869month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 18691231 3652 + DATE_LOOP=18791231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[1]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc + liste_file_tmp[1]=CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 3 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18791231 10Y end year=1879month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 18791231 -3651 + DATE_TAB=18700101_18791231 + IGCM_date_DaysInNextPeriod 18791231 10Y year=1879month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 18791231 3653 + DATE_LOOP=18891231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[2]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc + liste_file_tmp[2]=CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 4 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18891231 10Y end year=1889month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 18891231 -3652 + DATE_TAB=18800101_18891231 + IGCM_date_DaysInNextPeriod 18891231 10Y year=1889month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 18891231 3652 + DATE_LOOP=18991231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[3]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc + liste_file_tmp[3]=CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 5 -le 17 ] + IGCM_date_DaysInPreviousPeriod 18991231 10Y end year=1899month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 18991231 -3651 + DATE_TAB=18900101_18991231 + IGCM_date_DaysInNextPeriod 18991231 10Y year=1899month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 18991231 3652 + DATE_LOOP=19091231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[4]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc + liste_file_tmp[4]=CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 6 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19091231 10Y end year=1909month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19091231 -3651 + DATE_TAB=19000101_19091231 + IGCM_date_DaysInNextPeriod 19091231 10Y year=1909month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19091231 3652 + DATE_LOOP=19191231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[5]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc + liste_file_tmp[5]=CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 7 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19191231 10Y end year=1919month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19191231 -3651 + DATE_TAB=19100101_19191231 + IGCM_date_DaysInNextPeriod 19191231 10Y year=1919month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19191231 3653 + DATE_LOOP=19291231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[6]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc + liste_file_tmp[6]=CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 8 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19291231 10Y end year=1929month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 19291231 -3652 + DATE_TAB=19200101_19291231 + IGCM_date_DaysInNextPeriod 19291231 10Y year=1929month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19291231 3652 + DATE_LOOP=19391231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[7]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc + liste_file_tmp[7]=CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 9 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19391231 10Y end year=1939month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19391231 -3651 + DATE_TAB=19300101_19391231 + IGCM_date_DaysInNextPeriod 19391231 10Y year=1939month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19391231 3653 + DATE_LOOP=19491231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[8]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc + liste_file_tmp[8]=CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 10 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19491231 10Y end year=1949month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 19491231 -3652 + DATE_TAB=19400101_19491231 + IGCM_date_DaysInNextPeriod 19491231 10Y year=1949month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19491231 3652 + DATE_LOOP=19591231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[9]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc + liste_file_tmp[9]=CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 11 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19591231 10Y end year=1959month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19591231 -3651 + DATE_TAB=19500101_19591231 + IGCM_date_DaysInNextPeriod 19591231 10Y year=1959month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19591231 3653 + DATE_LOOP=19691231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[10]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc + liste_file_tmp[10]=CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 12 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19691231 10Y end year=1969month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 19691231 -3652 + DATE_TAB=19600101_19691231 + IGCM_date_DaysInNextPeriod 19691231 10Y year=1969month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19691231 3652 + DATE_LOOP=19791231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[11]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc + liste_file_tmp[11]=CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 13 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19791231 10Y end year=1979month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19791231 -3651 + DATE_TAB=19700101_19791231 + IGCM_date_DaysInNextPeriod 19791231 10Y year=1979month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19791231 3653 + DATE_LOOP=19891231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[12]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc + liste_file_tmp[12]=CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 14 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19891231 10Y end year=1989month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 19891231 -3652 + DATE_TAB=19800101_19891231 + IGCM_date_DaysInNextPeriod 19891231 10Y year=1989month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 19891231 3652 + DATE_LOOP=19991231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[13]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc + liste_file_tmp[13]=CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 15 -le 17 ] + IGCM_date_DaysInPreviousPeriod 19991231 10Y end year=1999month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 19991231 -3651 + DATE_TAB=19900101_19991231 + IGCM_date_DaysInNextPeriod 19991231 10Y year=1999month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 19991231 3653 + DATE_LOOP=20091231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[14]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc + liste_file_tmp[14]=CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 16 -le 17 ] + IGCM_date_DaysInPreviousPeriod 20091231 10Y end year=2009month=12+ Length1=3653 + IGCM_date_AddDaysToGregorianDate 20091231 -3652 + DATE_TAB=20000101_20091231 + IGCM_date_DaysInNextPeriod 20091231 10Y year=2009month=12+ Length2=3652 + IGCM_date_AddDaysToGregorianDate 20091231 3652 + DATE_LOOP=20191231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[15]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc + liste_file_tmp[15]=CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 17 -le 17 ] + IGCM_date_DaysInPreviousPeriod 20191231 10Y end year=2019month=12+ Length1=3652 + IGCM_date_AddDaysToGregorianDate 20191231 -3651 + DATE_TAB=20100101_20191231 + IGCM_date_DaysInNextPeriod 20191231 10Y year=2019month=12+ Length2=3653 + IGCM_date_AddDaysToGregorianDate 20191231 3653 + DATE_LOOP=20291231 + IGCM_sys_TestFileArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc + [ 0 '=' 0 ] + liste_file[16]=/ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Output/MO/CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc + liste_file_tmp[16]=CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc + (( COMPTEUR = COMPTEUR + 1 )) + [ 18 -le 17 ] + [ FALSE '=' TRUE ] + IGCM_date_AddDaysToGregorianDate 20291231 -3653 + DATE_LOOP=20191231 + IGCM_sys_Get /l 'liste_file[*]' /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SBG IGCM_sys_Get : /l liste_file[*] /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947/SBG set +A dm_liste ${liste_file[*]}DEST=${3}+ IGCM_debug_Verif_Exit + [ ! Xtrue '=' Xtrue ] + [ FALSE '=' TRUE ] + IGCM_date_DaysInPreviousPeriod 18591231 10Y end year=1859month=12+ Length=3652 + IGCM_date_AddDaysToGregorianDate 18591231 -3651 + DATE_BUILD1=18500101 + DATE_BUILD=18500101_20141231 + DATE_BUILD_END=18500101_20141231 + liste_coord=' ' + eval echo '${LISTE_AXIS_1M_stomate_history[*]}' echo ${LISTE_AXIS_1M_stomate_history[*]}+ echo lon lat Areas CONTFRAC time_counter time_centered time_centered_bounds + liste_coord=' lon,' + liste_coord=' lon,lat,' + liste_coord=' lon,lat,Areas,' + liste_coord=' lon,lat,Areas,CONTFRAC,' + liste_coord=' lon,lat,Areas,CONTFRAC,time_counter,' + liste_coord=' lon,lat,Areas,CONTFRAC,time_counter,time_centered,' + liste_coord=' lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,' + time_axis=time_centered_bounds + eval echo '${LISTE_VARS_1M_stomate_history[*]}' echo ${LISTE_VARS_1M_stomate_history[*]}+ echo VEGET_COV_MAX NPP GPP HET_RESP MAINT_RESP GROWTH_RESP TOTAL_M TOTAL_BM_LITTER TOTAL_SOIL_CARB WOOD_HARVEST_PFT + ncdump -hv VEGET_COV_MAX CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,VEGET_COV_MAX CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,VEGET_COV_MAX CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_VEGET_COV_MAX.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_VEGET_COV_MAX.nc + ncdump -hv NPP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,NPP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,NPP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_NPP.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_NPP.nc + ncdump -hv GPP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,GPP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,GPP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_GPP.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_GPP.nc + ncdump -hv HET_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,HET_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,HET_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_HET_RESP.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_HET_RESP.nc + ncdump -hv MAINT_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,MAINT_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,MAINT_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_MAINT_RESP.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_MAINT_RESP.nc + ncdump -hv GROWTH_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,GROWTH_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,GROWTH_RESP CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_GROWTH_RESP.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_GROWTH_RESP.nc + ncdump -hv TOTAL_M CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,TOTAL_M CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,TOTAL_M CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_TOTAL_M.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_M.nc + ncdump -hv TOTAL_BM_LITTER CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,TOTAL_BM_LITTER CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,TOTAL_BM_LITTER CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_TOTAL_BM_LITTER.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_BM_LITTER.nc + ncdump -hv TOTAL_SOIL_CARB CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,TOTAL_SOIL_CARB CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,TOTAL_SOIL_CARB CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_TOTAL_SOIL_CARB.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_TOTAL_SOIL_CARB.nc + ncdump -hv WOOD_HARVEST_PFT CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc + 1> /dev/null 2>& 1 + [ ! 0 '=' 0 ] + [ FALSE '=' TRUE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc + IGCM_sys_ncrcat --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,WOOD_HARVEST_PFT CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc IGCM_sys_ncrcat : --hst -v lon,lat,Areas,CONTFRAC,time_counter,time_centered,time_centered_bounds,WOOD_HARVEST_PFT CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc + IGCM_debug_Verif_Exit + [ TRUE '=' TRUE ] + [ FALSE '=' FALSE ] + file_out=CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc + file_before=CM61-LR-hist-03.2030_18500101_18591231_1M_WOOD_HARVEST_PFT.nc + eval IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc '${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc' IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc ${R_OUT_SBG}/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc+ IGCM_sys_Put_Out CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc IGCM_sys_Put_Out : CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc IGCM_sys_MkdirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Chmod : 444 /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO/CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc + [ FALSE '=' TRUE ] + [ ! X '=' X ] + [ -f CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc ] + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_20141231_1M_WOOD_HARVEST_PFT.nc + IGCM_sys_Rm CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc IGCM_sys_Rm : CM61-LR-hist-03.2030_18500101_18591231_1M_stomate_history.nc CM61-LR-hist-03.2030_18600101_18691231_1M_stomate_history.nc CM61-LR-hist-03.2030_18700101_18791231_1M_stomate_history.nc CM61-LR-hist-03.2030_18800101_18891231_1M_stomate_history.nc CM61-LR-hist-03.2030_18900101_18991231_1M_stomate_history.nc CM61-LR-hist-03.2030_19000101_19091231_1M_stomate_history.nc CM61-LR-hist-03.2030_19100101_19191231_1M_stomate_history.nc CM61-LR-hist-03.2030_19200101_19291231_1M_stomate_history.nc CM61-LR-hist-03.2030_19300101_19391231_1M_stomate_history.nc CM61-LR-hist-03.2030_19400101_19491231_1M_stomate_history.nc CM61-LR-hist-03.2030_19500101_19591231_1M_stomate_history.nc CM61-LR-hist-03.2030_19600101_19691231_1M_stomate_history.nc CM61-LR-hist-03.2030_19700101_19791231_1M_stomate_history.nc CM61-LR-hist-03.2030_19800101_19891231_1M_stomate_history.nc CM61-LR-hist-03.2030_19900101_19991231_1M_stomate_history.nc CM61-LR-hist-03.2030_20000101_20091231_1M_stomate_history.nc CM61-LR-hist-03.2030_20100101_20191231_1M_stomate_history.nc + (( CURRENT_LOOP = CURRENT_LOOP + 1 )) + [ 2 -le 1 ] for comp in ${config_ListOfComponents[*]} ; do for TS_Dir in TS_YE TS_MO TS_DA TS_HF TS_INS ; do IGCM_sys_TestDirArchive ${R_SAVE}/${comp}/Analyse/${TS_Dir} [ $? = 0 ] && IGCM_sys_Put_Dods ${comp}/Analyse/${TS_Dir} done done + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_YE IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_YE + [ 1 '=' 0 ] + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + [ 0 '=' 0 ] + IGCM_sys_Put_Dods SRF/Analyse/TS_MO IGCM_sys_Put_Dods : SRF/Analyse/TS_MO IGCM_sys_Dods_Rm : SRF/Analyse/TS_MO /ccc/store/cont003/thredds/oboucher/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO IGCM_sys_Dods_Cp : SRF/Analyse/TS_MO - store : /ccc/store/cont003/thredds/oboucher/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO == IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_MO + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_DA IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_DA + [ 1 '=' 0 ] + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_HF IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_HF + [ 1 '=' 0 ] + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_INS IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SRF/Analyse/TS_INS + [ 1 '=' 0 ] + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_YE IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_YE + [ 1 '=' 0 ] + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + [ 0 '=' 0 ] + IGCM_sys_Put_Dods SBG/Analyse/TS_MO IGCM_sys_Put_Dods : SBG/Analyse/TS_MO IGCM_sys_Dods_Rm : SBG/Analyse/TS_MO /ccc/store/cont003/thredds/oboucher/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO IGCM_sys_Dods_Cp : SBG/Analyse/TS_MO - store : /ccc/store/cont003/thredds/oboucher/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO == IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_MO + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_DA IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_DA + [ 1 '=' 0 ] + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_HF IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_HF + [ 1 '=' 0 ] + IGCM_sys_TestDirArchive /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_INS IGCM_sys_TestDirArchive : /ccc/store/cont003/gencmip6/oboucher/IGCM_OUT/IPSLCM6/PROD/historical/CM61-LR-hist-03.2030/SBG/Analyse/TS_INS + [ 1 '=' 0 ] export DEBUG_debug; export BigBrother ; export libIGCM; export SUBMIT_DIR; export POST_DIR; export Script_Output ; + export DEBUG_debug + export BigBrother + export libIGCM + export SUBMIT_DIR + export POST_DIR + export Script_Output export StandAlone ; export RESOL_ATM; export RESOL_OCE ; export RESOL_ICE ; export RESOL_MBG ; export RESOL_SRF ; + export StandAlone + export RESOL_ATM + export RESOL_OCE + export RESOL_ICE + export RESOL_MBG + export RESOL_SRF export RESOL_SBG + export RESOL_SBG listVarEnv="DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG" + listVarEnv=DEBUG_debug,BigBrother,libIGCM,SUBMIT_DIR,POST_DIR,Script_Post_Output,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG export listVarEnv + export listVarEnv #D- # -------------------------------------------------------------------- #D- Test if all was right # -------------------------------------------------------------------- IGCM_debug_Verif_Exit + IGCM_debug_Verif_Exit # -------------------------------------------------------------------- #D- Submit MONITORING # -------------------------------------------------------------------- if ( [ X${TsTask} = X2D ] || [ X${TsTask} = X3D ] || [ X${TsTask} = X ] ) ; then # From 2D and 3D it is the last one to finish that will submit the monitoring. if [ ! "X$( grep "IGCM_sys_RmRunDir" ${POST_DIR}/create_ts.${PeriodDateEnd}.[23]D.out 2> /dev/null )" = "X" ] ; then Script_Post_Output=monitoring.${PeriodDateEnd} IGCM_sys_QsubPost monitoring fi fi + [ X3D '=' X2D ] + [ X3D '=' X3D ] + grep IGCM_sys_RmRunDir /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out + 2> /dev/null + [ ! $'X/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out:#D-function IGCM_sys_RmRunDir\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out:function IGCM_sys_RmRunDir {\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out: IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out: echo "IGCM_sys_RmRunDir :" $@\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out: IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}."\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out: IGCM_debug_Exit "IGCM_sys_RmRunDir"\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out: IGCM_debug_PopStack "IGCM_sys_RmRunDir"\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out: [ X${JobType} = XRUN ] && IGCM_sys_RmRunDir -rf ${RUN_DIR_PATH}\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out:#D-function IGCM_sys_RmRunDir\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out:function IGCM_sys_RmRunDir {\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out: IGCM_debug_PushStack "IGCM_sys_RmRunDir" $@\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out: echo "IGCM_sys_RmRunDir :" $@\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out: IGCM_debug_Print 1 "IGCM_sys_RmRunDir : rm error code is ${status}."\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out: IGCM_debug_Exit "IGCM_sys_RmRunDir"\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out: IGCM_debug_PopStack "IGCM_sys_RmRunDir"\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out: [ X${JobType} = XRUN ] && IGCM_sys_RmRunDir -rf ${RUN_DIR_PATH}\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out: if [ ! "X$( grep "IGCM_sys_RmRunDir" ${POST_DIR}/create_ts.${PeriodDateEnd}.[23]D.out 2> /dev/null )" = "X" ] ; then\n/ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out:+ grep IGCM_sys_RmRunDir /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.2D.out /ccc/cont003/home/gencmip6/oboucher/IPSLCM613/modipsl/config/IPSLCM6/CM61-LR-hist-03.2030/OutScript/create_ts.20141231.3D.out' '=' X ] + Script_Post_Output=monitoring.20141231 + IGCM_sys_QsubPost monitoring IGCM_sys_QsubPost : monitoring Submitted Batch Session 420262 #D- # -------------------------------------------------------------------- #D- Update the run.card # -------------------------------------------------------------------- if [ ${StandAlone} != true ] ; then # Put in run.card end period of time series [ X"${DATE_FIN}" = X ] || IGCM_sys_RshMaster IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted "${DATE_FIN}" # We have finish the job ! IGCM_sys_RshMaster IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesRunning "n" fi + [ true '!=' true ] # Clean RUN_DIR_PATH (necessary for cesium and titane only) IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} + IGCM_sys_RmRunDir -Rf /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947 IGCM_sys_RmRunDir : -Rf /ccc/scratch/cont003/gencmip6/oboucher/RUN_DIR/419571_76947 # ------------------------------------------------------------------ # Finalize BigBrother to inform that the jobs end # ------------------------------------------------------------------ IGCM_debug_BigBro_Finalize + IGCM_debug_BigBro_Finalize date + date Thu Jul 26 11:29:20 CEST 2018 #### SCRIPT ENDS HERE #### exit 0 + exit 0 ########## ########## ########## ########## ########## ########## ########## ########## Execution Sum Up ########## ########## ########## ########## ########## ########## ########## ########## Jobid : 419571 Jobname : TS User : oboucher Account : dekcmip6@standard Limits : time = 22:14:00 , memory/task = 4000 Mo Date : submit = 25/07/2018 17:54:41 , start = 26/07/2018 11:03:48 Execution : partition = standard , QoS = normal , Comment = (null) Resources : ntasks = 1 , cpus/task = 4 , ncpus = 4 , nodes = 1 Nodes=curie4530 CPU_IDs=4-7 Mem=16000 Memory / step -------------- Resident Size (Mo) Virtual Size (Go) JobID Max (Node:Task) AveTask Max (Node:Task) AveTask ----------- ------------------------ ------- -------------------------- ------- Accounting / step ------------------ JobID JobName Ntasks Ncpus Nnodes Layout Elapsed Ratio CPusage Eff State ------------ ------------ ------ ----- ------ ------- ------- ----- ------- --- ----- 419571 TS - 4 1 - 00:25:33 100 - - - ########## ########## ########## ########## ########## ########## ########## ##########