New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 3021 for branches/2011/dev_LOCEAN_2011/NEMOGCM/SETTE/all_functions.sh – NEMO

Ignore:
Timestamp:
2011-10-28T12:07:09+02:00 (13 years ago)
Author:
cetlod
Message:

branch dev_LOCEAN_2011:Merge in changes between rev 2757:3020 of branch 2011/dev_r2855_LOCEAN7_SETTE/NEMOGCM/SETTE subdirectory, see ticket #877

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_LOCEAN_2011/NEMOGCM/SETTE/all_functions.sh

    r2756 r3021  
    3131# 
    3232#  $ ./set_namelist INPUT_NAMELIST VARIABLE VALUE  
    33 #  $ ./copy_original INPUT_NAMELIST  
     33#  $ post_test_tidyup  
    3434# 
    3535# 
     
    3939# function superegrep 
    4040#   input variable value 
    41 # 
    42 # function copy_original 
    43 #   input namelist_name 
    44 #   output namelist  
    4541# 
    4642# function set_namelist 
     
    4844#   output namelist 
    4945# 
     46# function post_test_tidyup 
     47#   creates nemo_validation tree, and save output & debug files 
     48#   this function creates tree of validation in NEMO_VALIDATION_DIR as follows :  
     49# 
     50# NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/REVISION_NUMBER(or DATE)/TEST_NAME 
     51#  
     52# NEMO_VALIDATION_DIR           : is choosen in param.cfg 
     53# 
     54# WCONFIG_NAME                  : set by makenemo at the moment of compilation 
     55# 
     56# WCOMPILER_NAME                : set by makenemo at the moment of compilation 
     57# 
     58# REVISION_NUMBER(or DATE)      : revision number by svn info, if problems with svn date is taken 
     59# 
     60# TEST_NAME                     : set in sette.sh for each configuration to be tested (directory TEST_NAME is created under ${NEW_CONF} directory ) 
     61# 
    5062# EXAMPLES 
    5163# ======== 
     
    5365# :: 
    5466# 
    55 #  $ ./copy_original namelist_pisces          
    5667#  $ ./set_namelist namelist          nn_itend        75 
    5768#  $ ./set_namelist namelist_ice_lim2 cn_icerst_in  \"00101231_restart_ice\" 
     69#  $ post_test_tidyup  
    5870# 
    5971# 
     
    7183#   * creation 
    7284#- 
    73 # 
    74  
    75  
    76 # function to copy original namelists in ORIGINAL_namelist directory in ${INPUT_DIR} directory 
    77 # to allow re-run same tests in same directory and start with all correct values of namelist 
    78 copy_original () { 
    79         `mkdir -p ${INPUT_DIR}/ORIGINAL_namelist` 
    80    if [ -d ${INPUT_DIR}/ORIGINAL_namelist ] ; then 
    81            echo "created ${INPUT_DIR}/ORIGINAL_namelist directory in ${INPUT_DIR}"   >> ${SETTE_DIR}/output.sette 
    82    else 
    83            echo "problems in creating ${INPUT_DIR}/ORIGINAL_namelist directory"   >> ${SETTE_DIR}/output.sette 
    84            echo "EXIT," 
    85            exit 1 
    86    fi 
    87         `cp ${CONFIG_DIR}/${REF_CONF}/EXP00/$1 ${INPUT_DIR}/ORIGINAL_namelist/$1.ori` 
    88    if [ -n "$(ls ${INPUT_DIR}/ORIGINAL_namelist/$1.ori)" ] ; then 
    89       echo "copied namelist of reference configuration in ${INPUT_DIR}/ORIGINAL_namelist/$1.ori " >> ${SETTE_DIR}/output.sette 
    90    else 
    91       echo "problem in copying namelist of reference configuration in ${INPUT_DIR}/ORIGINAL_namelist/$1.ori " >> ${SETTE_DIR}/output.sette 
    92            echo "EXIT," 
    93            exit 1 
    94    fi 
    95         `cp ${INPUT_DIR}/ORIGINAL_namelist/$1.ori ${INPUT_DIR}/$1` 
    96    if [ -n "$(ls ${INPUT_DIR}/$1)" ] ; then 
    97       echo "copied original namelist in ${INPUT_DIR} directory " >> ${SETTE_DIR}/output.sette 
    98    else 
    99            echo "problem in copying  original namelist in ${INPUT_DIR} directory"  >> ${SETTE_DIR}/output.sette 
    100            echo "EXIT," 
    101            exit 1 
    102    fi 
    103 } 
    104  
    10585# function to find namelists parameters 
    10686supergrep () { 
     
    128108        echo "################" >> ${SETTE_DIR}/output.sette 
    129109       
    130    VAR_NAME=$( supergrep $2 ${INPUT_DIR}/$1 ) 
     110   VAR_NAME=$( supergrep $2 ${EXE_DIR}/$1 ) 
    131111   if [ ${#VAR_NAME} -eq 0 ]  
    132112   then 
    133113      echo "doing \"set_namelist $@\". " 
    134114      echo "variable: \"$2\" is empty" 
    135       echo "control that variable $2 is in \"${INPUT_DIR}/$1\" " 
     115      echo "control that variable $2 is in \"${EXE_DIR}/$1\" " 
    136116      echo "exit" 
    137117      echo "error in executing script : set_namelist $@" >> ${SETTE_DIR}/output.sette 
     
    139119      exit 1 
    140120   fi 
    141         sed -e "s/${VAR_NAME}.*/${VAR_NAME}/" ${INPUT_DIR}/$1 > ${INPUT_DIR}/$1.tmp 
    142         mv ${INPUT_DIR}/$1.tmp ${INPUT_DIR}/$1 
    143         sed -e "s/${VAR_NAME}/$2=$3/"  ${INPUT_DIR}/$1 > ${INPUT_DIR}/$1.tmp 
    144         mv ${INPUT_DIR}/$1.tmp ${INPUT_DIR}/$1 
     121        sed -e "s/${VAR_NAME}.*/${VAR_NAME}/" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 
     122        mv ${EXE_DIR}/$1.tmp ${EXE_DIR}/$1 
     123        sed -e "s/${VAR_NAME}/$2=$3/"  ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 
     124        mv ${EXE_DIR}/$1.tmp ${EXE_DIR}/$1 
    145125 
    146126        echo "finished script : set_namelist $@" >> ${SETTE_DIR}/output.sette 
     
    148128        echo "                " >> ${SETTE_DIR}/output.sette 
    149129} 
     130 
     131# function to tidy up after each test and populate the NEMO_VALIDATION store 
     132post_test_tidyup () { 
     133# 
     134# requires the following variables defined and exported from the calling script: 
     135#  SETTE_DIR 
     136#  INPUT_DIR 
     137#  EXE_DIR 
     138#  CONFIG_DIR 
     139#  NEMO_VALIDATION_DIR 
     140#  NEW_CONF 
     141#  CMP_NAM 
     142#  TEST_NAME 
     143echo "SETTE directory is : ${SETTE_DIR}" 
     144echo "INPUT directory is : ${INPUT_DIR}" 
     145echo "EXECUTION directory is : ${EXE_DIR}" 
     146echo "CONFIG directory is : ${CONFIG_DIR}" 
     147echo "VALIDATION directory is : ${NEMO_VALIDATION_DIR}" 
     148echo "NEW CONFIGURATION is : ${NEW_CONF}" 
     149echo "COMPILER is : ${CMP_NAM}" 
     150echo "TEST is : ${TEST_NAME}" 
     151################################################################ 
     152# SMALL DEBUG 
     153    if [ ! -r ${EXE_DIR}/time.step ] 
     154        then 
     155        echo "file time.step does not exist"   >> ${SETTE_DIR}/output.sette 
     156        echo "some problems during execution of model"  >> ${SETTE_DIR}/output.sette  
     157        exit 1 
     158    else 
     159        echo "file time.step exists"  >> ${SETTE_DIR}/output.sette 
     160        echo "ok model run"   >> ${SETTE_DIR}/output.sette 
     161    fi 
     162################################################################ 
     163 
     164################################################################ 
     165# Creation of NEMO_VALIDATION tree 
     166    export LANG=en_US  
     167    cd ${CONFIG_DIR} 
     168    cd ../ 
     169    REVISION_NB=`svn info | grep -i "Revision:" | sed -e "s/ //" | cut -d ":" -f 2` 
     170    if [ ${#REVISION_NB} -eq 0 ] 
     171    then 
     172      echo "some problems with svn info command" 
     173      echo "some problems with svn info command" >> ${SETTE_DIR}/output.sette 
     174      REVISION_NB=`date +%Y%m%d` 
     175      echo "put in ${REVISION_NB} date" 
     176      echo "put in ${REVISION_NB} date" >> ${SETTE_DIR}/output.sette 
     177    else 
     178    echo "value of revision number of NEMOGCM: ${REVISION_NB}" 
     179    fi 
     180    cd ${NEMO_VALIDATION_DIR} 
     181    `mkdir -p ${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME}` 
     182    NEMO_VALID=${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME} 
     183    if [ -d ${NEMO_VALID} ] ; then 
     184   echo "created ${NEMO_VALID} directory"   >> ${SETTE_DIR}/output.sette 
     185    else  
     186   echo "problems in creating ${NEMO_VALID} directory"   >> ${SETTE_DIR}/output.sette 
     187   echo "EXIT," 
     188   exit 1 
     189    fi 
     190    # Save output & debug files in NEMO_VALIDATION tree 
     191    echo "saving ocean & ice output, solver.stat, tracer.stat files ...." >> ${SETTE_DIR}/output.sette 
     192    echo "            " >> ${SETTE_DIR}/output.sette 
     193    [ -f ${EXE_DIR}/*ocean.output ] && cp ${EXE_DIR}/*ocean.output ${NEMO_VALID}/. 
     194    [ -f ${EXE_DIR}/*solver.stat ] && cp ${EXE_DIR}/*solver.stat ${NEMO_VALID}/. 
     195    [ -f ${EXE_DIR}/*tracer.stat ] && cp ${EXE_DIR}/*tracer.stat ${NEMO_VALID}/. 
     196    if [ -n "$(ls ${NEMO_VALID}/*solver*)" ] ; then 
     197   echo "moved solver.stat in ${NEMO_VALID} directory"  >> ${SETTE_DIR}/output.sette 
     198   echo "moved solver.stat in ${NEMO_VALID} directory"   
     199    else 
     200   echo "problem in looking for solver.stat file in ${NEMO_VALID} directory"  >> ${SETTE_DIR}/output.sette 
     201   echo "solver.stat IS NOT in ${NEMO_VALID} directory"  
     202    fi 
     203    if [ -n "$(ls ${NEMO_VALID}/*ocean.output*)" ] ; then 
     204   echo "moved ocean.output in ${NEMO_VALID} directory"  >> ${SETTE_DIR}/output.sette 
     205   echo "moved ocean.output in ${NEMO_VALID} directory"  
     206    else 
     207   echo "problem in looking for ocean.output file in ${NEMO_VALID} directory"  >> ${SETTE_DIR}/output.sette 
     208   echo "ocean.output IS NOT in ${NEMO_VALID} directory"  
     209    fi 
     210    if [ -n "$(ls ${NEMO_VALID}/*tracer.stat*)" ] ; then 
     211        echo "moved tracer.stat in ${NEMO_VALID} directory"  >> ${SETTE_DIR}/output.sette 
     212        echo "moved tracer.stat in ${NEMO_VALID} directory" 
     213    else 
     214        echo "problem in looking for tracer.stat file in ${NEMO_VALID} directory"  >> ${SETTE_DIR}/output.sette 
     215        echo "tracer.stat IS NOT in ${NEMO_VALID} directory" 
     216    fi 
     217} 
Note: See TracChangeset for help on using the changeset viewer.