source: CMIP5/rcp45/v3.rcp45.2/COMP/orchidee.driver @ 1361

Last change on this file since 1361 was 1361, checked in by sdipsl, 13 years ago

Update config for rcp45 regarding variables to be in sync with latest svn variables list.

File size: 3.5 KB
RevLine 
[396]1#!/bin/ksh
2
[763]3#D- Driver du script pour ORCHIDEE
[396]4
[763]5function ORCHIDEE_sed
6{
7    IGCM_debug_PushStack "ORCHIDEE_sed"
8   
9    sed -e "s/^${1}\ *=.*/${1}= ${2}/" \
10        orchidee.def > orchidee.def.tmp
11    RET=$?
12    echo "ORCHIDEE_sed : ${1} ${2}"
13    \mv orchidee.def.tmp orchidee.def
14   
15    IGCM_debug_PopStack "ORCHIDEE_sed"
16    return $RET
17}
18
[396]19#-----------------------------------------------------------------
20function SRF_Initialize
21{
22    IGCM_debug_PushStack "SRF_Initialize"
23
[763]24    RESOL_SRF=ALL
[396]25
[1047]26    for frequency in ${config_SRF_WriteFrequency} ; do
27        case ${frequency} in
[1050]28            HF|hf) SRF_ok_hf=y ;;
[1047]29        esac
30    done
31
[396]32    IGCM_debug_PopStack "SRF_Initialize"
33}
34
35#-----------------------------------------------------------------
36function SRF_Update
37{
38    IGCM_debug_PushStack "SRF_Update"
39
[763]40    typeset SECHIBA_WRITE_STEP
[396]41
[1038]42    SRF_WriteFrequency=$( echo ${config_SRF_WriteFrequency} | sed -e 's/\([0-9]*[yYmMdDs]\).*/\1/' ) 
43    case ${SRF_WriteFrequency} in
[763]44        *Y|*y) 
[1038]45            WriteInYears=$( echo ${SRF_WriteFrequency} | awk -F '[yY]' '{print $1}' )
46            PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
[763]47            (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears * 86400 )) ;;
[1038]48        1M)
49            case ${config_UserChoices_PeriodLength} in
50            *Y|*y)
51                SECHIBA_WRITE_STEP=-1.
52                ;;
53            *M|*m)
54                SECHIBA_WRITE_STEP=-1.
55                ;;
56            *)
57                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 ))
58                ;;
59            esac
60            ;;
[763]61        *M|*m) 
[1038]62            WriteInMonths=$( echo ${SRF_WriteFrequency} | awk -F '[mM]' '{print $1}' )
[763]63            case ${config_UserChoices_PeriodLength} in
64            *Y|*y)
[1038]65                PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
[763]66                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * 86400 / PeriodLengthInYears / 12  ))
67                ;;
68            *M|*m)
[1038]69                PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | awk -F '[mM]' '{print $1}' )
[763]70                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInMonths  * 86400 / PeriodLengthInMonths  ))
71                ;;
72            *)
73                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 ))
74                ;;
75            esac
76            ;;
77        5D|5d) 
78            (( SECHIBA_WRITE_STEP = 5 * 86400 )) ;;
79        1D|1d) 
80            (( SECHIBA_WRITE_STEP = 86400 )) ;;
81        *s)
[1038]82            WriteInSeconds=$( echo ${SRF_WriteFrequency} | awk -F '[s]' '{print $1}' )
[763]83            (( SECHIBA_WRITE_STEP = WriteInSeconds )) ;;
84        *) 
[1038]85            IGCM_debug_Exit "SRF_Update " ${SRF_WriteFrequency} " invalid WriteFrequency : choose in 1Y, 1M, 5D, 1D." 
[763]86            IGCM_debug_Verif_Exit ;;
87    esac
88
[793]89    ORCHIDEE_sed HYDROL_CWRR ${orchidee_UserChoices_NEWHYDROL}
90
[763]91    ORCHIDEE_sed WRITE_STEP ${SECHIBA_WRITE_STEP}
[793]92    ORCHIDEE_sed SECHIBA_HISTLEVEL ${orchidee_UserChoices_sechiba_LEVEL}
[763]93
[1047]94    # Outputs HF in HISTFILE2 if required
[1050]95    [ X${SRF_ok_hf} = Xy ] && ORCHIDEE_sed SECHIBA_HISTFILE2 y
[1014]96    ORCHIDEE_sed SECHIBA_HISTLEVEL2 1
97    ORCHIDEE_sed WRITE_STEP2 10800.0
[763]98
[793]99    if ( [ ${CumulPeriod} -ne 1 ] || [ "${config_SRF_Restart}" != "n" ] ) ; then
100        ORCHIDEE_sed SECHIBA_restart_in sechiba_rest_in.nc
[396]101    fi
102
[1276]103    [ ${CumulPeriod} -eq 1 ] && ORCHIDEE_sed VEGET_REINIT y
[1361]104    [ ${year} -ge 2100 ] ORCHIDEE_sed VEGET_UPDATE 0Y
[1276]105
[653]106    #IGCM_sys_Cp ${RUN_DIR}/orchidee.def ${RUN_DIR}/run.def
107    #IGCM_sys_Put_Out ${RUN_DIR}/run.def ${R_SAVE}/${PREFIX}_run.def
[396]108
109    IGCM_debug_PopStack "SRF_Update"
110}
111
112#-----------------------------------------------------------------
113function SRF_Finalize
114{
115    IGCM_debug_PushStack "SRF_Finalize"
116
[653]117    #IGCM_sys_Put_Out ${RUN_DIR}/used_run.def ${R_SAVE}/${PREFIX}_used_run.def
[396]118
119    echo FINALIZE SRF !!!
120
121    IGCM_debug_PopStack "SRF_Finalize"
122}
Note: See TracBrowser for help on using the repository browser.