Ignore:
Timestamp:
2011-08-01T16:11:34+02:00 (13 years ago)
Author:
didier.solyga
Message:

Merge the revisions 373 + 376 to 389 from the trunk in the externalized version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ORCHIDEE_EXT/ORCHIDEE_OL/TESTSTOMATE/COMP/sechiba.driver

    r263 r382  
    3838    echo "ORCHIDEE Tag : " ${config_UserChoices_TagName} 
    3939 
     40    NUM_PROC=1 
     41#D- Number of processors used for lmdz and oasis coupler computed from PBS variable 
     42    if [ X"${BATCH_NUM_PROC_TOT}" != X ] ; then 
     43        NUM_PROC=${BATCH_NUM_PROC_TOT} 
     44    fi 
     45    echo BATCH_NUM_PROC_TOT=${BATCH_NUM_PROC_TOT} 
     46    echo NUM_PROC=${NUM_PROC} 
     47 
     48    if ( [ X${BATCH_NUM_PROC_TOT} != X ] && [ "${BATCH_NUM_PROC_TOT}" -gt 1 ] ) ; then 
     49        MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND} 
     50    fi 
     51 
    4052    RESOL_SRF=ALL 
    4153     
     54    typeset frequency 
    4255    for frequency in ${config_SRF_WriteFrequency} ; do 
    4356        case ${frequency} in 
     
    7487    IGCM_debug_PushStack "SRF_Update" 
    7588 
    76     SECHIBA_sed LAND_USE ${sechiba_UserChoices_LAND_USE} 
    77     if [ X${sechiba_UserChoices_LAND_USE} = Xy ] ; then 
     89    typeset SECHIBA_WRITE_STEP 
    7890 
    79       ##MM : cutting PFTmaps of ORCHIDEE : for first year without restart, we must use this year map 
    80       ##     WARNING : the next year map must be avaible and the december month, then this device will 
    81       ##               only work with PeriodLength scrictly less than 1Y. 
    82       # If you want to come back to old BIG LAND USE file 
    83       # (to run on multipple years, just one time with LAND USE activated),  
    84       # you must  
    85       # comment all next 8 lines and check correct parameters in sechiba.def file 
    86       # for your LAND USE specific file. 
    87         SECHIBA_sed VEGET_REINIT y 
    88         if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SRF_Restart}" = "n" ] ) ; then 
    89             SECHIBA_sed VEGET_YEAR 1 
    90             IGCM_sys_Mv PFTmap_IPCC_${year}.nc PFTmap.nc 
    91         else 
    92             SECHIBA_sed VEGET_YEAR 0 
    93             IGCM_sys_Mv -f PFTmap_IPCC_${year_p1}.nc PFTmap.nc 
     91    # Get WriteFrenquecies from config.card for SECHIBA 
     92    SRF_WriteFrequency=$( echo ${config_SRF_WriteFrequency} | sed -e 's/\([0-9]*[yYmMdDs]\).*/\1/' )  
     93    case ${SRF_WriteFrequency} in 
     94        *Y|*y)  
     95            WriteInYears=$( echo ${SRF_WriteFrequency} | awk -F '[yY]' '{print $1}' ) 
     96            PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' ) 
     97            (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears * 86400 )) ;; 
     98        1M) 
     99            case ${config_UserChoices_PeriodLength} in 
     100            *Y|*y) 
     101                SECHIBA_WRITE_STEP=-1. 
     102                ;; 
     103            *M|*m) 
     104                SECHIBA_WRITE_STEP=-1. 
     105                ;; 
     106            *) 
     107                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 )) 
     108                ;; 
     109            esac 
     110            ;; 
     111        *M|*m)  
     112            WriteInMonths=$( echo ${SRF_WriteFrequency} | awk -F '[mM]' '{print $1}' ) 
     113            case ${config_UserChoices_PeriodLength} in 
     114            *Y|*y) 
     115                PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' ) 
     116                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * 86400 / PeriodLengthInYears / 12 )) 
     117                ;; 
     118            *M|*m) 
     119                PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | awk -F '[mM]' '{print $1}' ) 
     120                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInMonths  * 86400 / PeriodLengthInMonths  )) 
     121                ;; 
     122            *) 
     123                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 )) 
     124                ;; 
     125            esac 
     126            ;; 
     127        5D|5d)  
     128            (( SECHIBA_WRITE_STEP = 5 * 86400 )) ;; 
     129        1D|1d)  
     130            (( SECHIBA_WRITE_STEP = 86400 )) ;; 
     131        *s) 
     132            WriteInSeconds=$( echo ${SRF_WriteFrequency} | awk -F '[s]' '{print $1}' ) 
     133            (( SECHIBA_WRITE_STEP = WriteInSeconds )) ;; 
     134        *)  
     135            IGCM_debug_Exit "SRF_Update " ${SRF_WriteFrequency} " invalid WriteFrequency : choose in 1Y, 1M, 5D, 1D."  
     136            IGCM_debug_Verif_Exit ;; 
     137    esac 
     138    SECHIBA_sed WRITE_STEP ${SECHIBA_WRITE_STEP} 
     139 
     140    if [ X${sechiba_UserChoices_IMPOSE_VEG} = Xn ] ; then 
     141        if [ X${sechiba_UserChoices_LAND_USE} = Xy ] ; then 
     142            SECHIBA_sed VEGET_UPDATE ${sechiba_UserChoices_VEGET_UPDATE} 
     143 
     144            ##MM : cutting PFTmaps of ORCHIDEE : for first year without restart, we must use this year map 
     145            ##     WARNING : the next year map must be avaible and the december month, then this device will 
     146            ##               only work with PeriodLength scrictly less than 1Y. 
     147            # If you want to come back to old BIG LAND USE file 
     148            # (to run on multipple years, just one time with LAND USE activated),  
     149            # you must  
     150            # comment all next 8 lines and check correct parameters in sechiba.def file 
     151            # for your LAND USE specific file. 
     152            SECHIBA_sed VEGET_REINIT y 
     153            if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SRF_Restart}" = "n" ] ) ; then 
     154                SECHIBA_sed VEGET_YEAR 1 
     155            else 
     156                SECHIBA_sed VEGET_YEAR 0 
     157                IGCM_sys_Mv -f PFTmap_IPCC_${year_p1}.nc PFTmap.nc 
     158            fi 
     159        elif [ X${sechiba_UserChoices_OLD_VEGET} = Xy ] ; then 
     160            SECHIBA_sed LAND_USE n 
    94161        fi 
     162    else 
     163        SECHIBA_sed IMPOSE_VEG y 
    95164    fi 
    96165 
    97     SECHIBA_sed IMPOSE_VEG ${sechiba_UserChoices_IMPOSE_VEG} 
    98      
    99166    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SRF_Restart}" = "n" ] ) ; then 
    100167        echo "Error in teststomate !" 
     
    106173        SECHIBA_sed SECHIBA_restart_in sechiba_rest_in.nc 
    107174    fi 
     175    FileToBeDeleted[${#FileToBeDeleted[@]}]=sechiba.def 
    108176 
    109177    DRIVER_sed TIME_LENGTH ${PeriodLengthInDays}D 
    110178#    DRIVER_sed TIME_SKIP ${OldSimulationLengthInDays}D 
     179    FileToBeDeleted[${#FileToBeDeleted[@]}]=driver.def 
    111180 
    112181    IGCM_debug_PopStack "SRF_Update" 
Note: See TracChangeset for help on using the changeset viewer.