source: tags/ORCHIDEE_1_9_5/ORCHIDEE_OL/OOL_SEC/COMP/orchidee.driver @ 8

Last change on this file since 8 was 8, checked in by orchidee, 14 years ago

import first tag equivalent to CVS orchidee_1_9_5 + OOL_1_9_5

File size: 4.8 KB
Line 
1#!/bin/ksh
2
3#D- Driver du script pour ORCHIDEE
4
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
19#-----------------------------------------------------------------
20function SRF_Initialize
21{
22    IGCM_debug_PushStack "SRF_Initialize"
23
24    echo "ORCHIDEE Tag : " ${config_UserChoices_TagName}
25
26    RESOL_SRF=ALL
27   
28    IGCM_debug_PopStack "SRF_Initialize"
29}
30
31#-----------------------------------------------------------------
32# Optionnal function executed at the beginning of the main loop,
33# after IGCM_config_PeriodStart see libIGCM/AA_job.
34# It may be used to set special variables used in forward lists
35# function SRF_PeriodStart
36# {
37#     IGCM_debug_PushStack "SRF_PeriodStart"
38
39#     IGCM_debug_PopStack "SRF_PeriodStart"
40# }
41
42#-----------------------------------------------------------------
43function SRF_Update
44{
45    IGCM_debug_PushStack "SRF_Update"
46
47    typeset SECHIBA_WRITE_STEP STOMATE_WRITE_STEP
48
49    SRF_WriteFrequency=$( echo ${config_SRF_WriteFrequency} | sed -e 's/\([0-9]*[yYmMdDs]\).*/\1/' ) 
50    case ${SRF_WriteFrequency} in
51        *Y|*y) 
52            WriteInYears=$( echo ${SRF_WriteFrequency} | awk -F '[yY]' '{print $1}' )
53            PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
54            (( STOMATE_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears ))
55            (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears * 86400 )) ;;
56        1M)
57            case ${config_UserChoices_PeriodLength} in
58            *Y|*y)
59                SECHIBA_WRITE_STEP=-1.
60                ;;
61            *M|*m)
62                SECHIBA_WRITE_STEP=-1.
63                ;;
64            *)
65                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 ))
66                ;;
67            esac
68            ;;
69        *M|*m) 
70            WriteInMonths=$( echo ${SRF_WriteFrequency} | awk -F '[mM]' '{print $1}' )
71            case ${config_UserChoices_PeriodLength} in
72            *Y|*y)
73                PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
74                (( STOMATE_WRITE_STEP = 30 ))
75                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * 86400 / PeriodLengthInYears / 12 ))
76                ;;
77            *M|*m)
78                PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | awk -F '[mM]' '{print $1}' )
79                (( STOMATE_WRITE_STEP = PeriodLengthInDays * WriteInMonths / PeriodLengthInMonths ))
80                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInMonths  * 86400 / PeriodLengthInMonths  ))
81                ;;
82            *)
83                (( STOMATE_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) ))
84                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 ))
85                ;;
86            esac
87            ;;
88        5D|5d) 
89            (( STOMATE_WRITE_STEP = 5 ))
90            (( SECHIBA_WRITE_STEP = 5 * 86400 )) ;;
91        1D|1d) 
92            (( STOMATE_WRITE_STEP = 1 ))
93            (( SECHIBA_WRITE_STEP = 86400 )) ;;
94        *s)
95            WriteInSeconds=$( echo ${SRF_WriteFrequency} | awk -F '[s]' '{print $1}' )
96            (( STOMATE_WRITE_STEP = 1 ))
97            (( SECHIBA_WRITE_STEP = WriteInSeconds )) ;;
98        *) 
99            IGCM_debug_Exit "SRF_Update " ${SRF_WriteFrequency} " invalid WriteFrequency : choose in 1Y, 1M, 5D, 1D." 
100            IGCM_debug_Verif_Exit ;;
101    esac
102
103    ORCHIDEE_sed LAI_MAP ${orchidee_UserChoices_LAIMAP}
104    ORCHIDEE_sed RIVER_ROUTING ${orchidee_UserChoices_ROUTING}
105    ORCHIDEE_sed HYDROL_CWRR ${orchidee_UserChoices_NEWHYDROL}
106    ORCHIDEE_sed STOMATE_OK_CO2 ${orchidee_UserChoices_OKCO2}
107
108    ORCHIDEE_sed WRITE_STEP ${SECHIBA_WRITE_STEP}
109    ORCHIDEE_sed SECHIBA_HISTLEVEL ${orchidee_UserChoices_sechiba_LEVEL}
110##    if [ ${year} -eq 1950 ] ; then
111#       ORCHIDEE_sed SECHIBA_HISTFILE2 y
112#       ORCHIDEE_sed SECHIBA_HISTLEVEL2 10
113#       ORCHIDEE_sed WRITE_STEP2 1800.0
114##    fi
115    ORCHIDEE_sed STOMATE_HIST_DT ${STOMATE_WRITE_STEP}
116    ORCHIDEE_sed STOMATE_HISTLEVEL ${orchidee_UserChoices_stomate_LEVEL}
117    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SRF_Restart}" = "n" ] ) ; then
118        ORCHIDEE_sed SECHIBA_reset_time y
119        ORCHIDEE_sed STOMATE_FORCING_NAME NONE
120        ORCHIDEE_sed STOMATE_CFORCING_NAME NONE
121    else
122        ORCHIDEE_sed SECHIBA_restart_in sechiba_rest_in.nc
123        ORCHIDEE_sed SECHIBA_reset_time y
124        ORCHIDEE_sed STOMATE_FORCING_NAME NONE
125        ORCHIDEE_sed STOMATE_CFORCING_NAME NONE
126    fi
127
128    # For old versions of SECHIBA
129    typeset TAG_SECH
130    echo "Composante SRF : " ${config_ListOfComponents_SRF[@]}
131    TAG_SECH=${config_ListOfComponents_SRF[1]}
132    echo "TAG of SECHIBA : " ${TAG_SECH}
133    if ( [ "${TAG_SECH}" != "HEAD" ] ) ; then
134        ORCHIDEE_sed HYDROL_HDRY 1.0
135    fi
136
137    IGCM_debug_PopStack "SRF_Update"
138}
139
140#-----------------------------------------------------------------
141function SRF_Finalize
142{
143    IGCM_debug_PushStack "SRF_Finalize"
144
145    #IGCM_sys_Put_Out ${RUN_DIR}/used_run.def ${R_SAVE}/${PREFIX}_used_run.def
146
147    echo FINALIZE SRF !!!
148
149    IGCM_debug_PopStack "SRF_Finalize"
150}
Note: See TracBrowser for help on using the repository browser.