source: tags/ORCHIDEE_1_9_5/ORCHIDEE_OL/OOL_SEC_STO/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: 5.0 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    for frequency in ${config_SRF_WriteFrequency} ; do
29        case ${frequency} in
30            HF|hf) SRF_ok_hf=y ;;
31        esac
32    done
33
34    IGCM_debug_PopStack "SRF_Initialize"
35}
36
37#-----------------------------------------------------------------
38# Optionnal function executed at the beginning of the main loop,
39# after IGCM_config_PeriodStart see libIGCM/AA_job.
40# It may be used to set special variables used in forward lists
41# function SRF_PeriodStart
42# {
43#     IGCM_debug_PushStack "SRF_PeriodStart"
44
45#     IGCM_debug_PopStack "SRF_PeriodStart"
46# }
47
48#-----------------------------------------------------------------
49function SRF_Update
50{
51    IGCM_debug_PushStack "SRF_Update"
52
53    typeset SECHIBA_WRITE_STEP
54
55    SRF_WriteFrequency=$( echo ${config_SRF_WriteFrequency} | sed -e 's/\([0-9]*[yYmMdDs]\).*/\1/' ) 
56    case ${SRF_WriteFrequency} in
57        *Y|*y) 
58            WriteInYears=$( echo ${SRF_WriteFrequency} | awk -F '[yY]' '{print $1}' )
59            PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
60            (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears * 86400 )) ;;
61        1M)
62            case ${config_UserChoices_PeriodLength} in
63            *Y|*y)
64                SECHIBA_WRITE_STEP=-1.
65                ;;
66            *M|*m)
67                SECHIBA_WRITE_STEP=-1.
68                ;;
69            *)
70                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 ))
71                ;;
72            esac
73            ;;
74        *M|*m) 
75            WriteInMonths=$( echo ${SRF_WriteFrequency} | awk -F '[mM]' '{print $1}' )
76            case ${config_UserChoices_PeriodLength} in
77            *Y|*y)
78                PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
79                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * 86400 / PeriodLengthInYears / 12 ))
80                ;;
81            *M|*m)
82                PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | awk -F '[mM]' '{print $1}' )
83                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInMonths  * 86400 / PeriodLengthInMonths  ))
84                ;;
85            *)
86                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 ))
87                ;;
88            esac
89            ;;
90        5D|5d) 
91            (( SECHIBA_WRITE_STEP = 5 * 86400 )) ;;
92        1D|1d) 
93            (( SECHIBA_WRITE_STEP = 86400 )) ;;
94        *s)
95            WriteInSeconds=$( echo ${SRF_WriteFrequency} | awk -F '[s]' '{print $1}' )
96            (( SECHIBA_WRITE_STEP = WriteInSeconds )) ;;
97        *) 
98            IGCM_debug_Exit "SRF_Update " ${SRF_WriteFrequency} " invalid WriteFrequency : choose in 1Y, 1M, 5D, 1D." 
99            IGCM_debug_Verif_Exit ;;
100    esac
101
102    ORCHIDEE_sed STOMATE_OK_CO2 ${orchidee_UserChoices_OKCO2}
103
104    ORCHIDEE_sed RIVER_ROUTING ${orchidee_UserChoices_ROUTING}
105    ORCHIDEE_sed HYDROL_CWRR ${orchidee_UserChoices_NEWHYDROL}
106
107    ORCHIDEE_sed WRITE_STEP ${SECHIBA_WRITE_STEP}
108    ORCHIDEE_sed SECHIBA_HISTLEVEL ${orchidee_UserChoices_sechiba_LEVEL}
109
110    # Outputs HF in HISTFILE2 if required
111    [ X${SRF_ok_hf} = Xy ] && SECHIBA_sed SECHIBA_HISTFILE2 y
112    ORCHIDEE_sed SECHIBA_HISTLEVEL2 1
113    ORCHIDEE_sed WRITE_STEP2 10800.0
114
115    ##MM : cutting PFTmaps of ORCHIDEE : for first year without restart, we must use this year map
116    ##     WARNING : the next year map must be avaible and the december month, then this device will
117    ##               only work with PeriodLength scrictly less than 1Y.
118#If you want to come back to old BIG LAND USE file (to run on multipple years, just one time with LAND USE activated), you must
119#comment all next 9 lines and check correct parameters in orchidee.def file for your LAND USE specific file.
120    ORCHIDEE_sed VEGET_REINIT y
121    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SRF_Restart}" = "n" ] ) ; then
122        SECHIBA_sed VEGET_YEAR 1
123        IGCM_sys_Mv PFTmap_IPCC_${year}.nc PFTmap.nc
124    else
125        SECHIBA_sed VEGET_REINIT y
126        SECHIBA_sed VEGET_YEAR 0
127        IGCM_sys_Mv -f PFTmap_IPCC_${year_p1}.nc PFTmap.nc
128    fi
129
130    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SRF_Restart}" = "n" ] ) ; then
131        ORCHIDEE_sed SECHIBA_reset_time y
132    else
133        ORCHIDEE_sed SECHIBA_restart_in sechiba_rest_in.nc
134        ORCHIDEE_sed SECHIBA_reset_time y
135    fi
136
137    # For old versions of SECHIBA
138    typeset TAG_SECH
139    echo "Composante SRF : " ${config_ListOfComponents_SRF[@]}
140    TAG_SECH=${config_ListOfComponents_SRF[1]}
141    echo "TAG of SECHIBA : " ${TAG_SECH}
142    if ( [ "${TAG_SECH}" != "HEAD" ] ) ; then
143        ORCHIDEE_sed HYDROL_HDRY 1.0
144    fi
145
146    IGCM_debug_PopStack "SRF_Update"
147}
148
149#-----------------------------------------------------------------
150function SRF_Finalize
151{
152    IGCM_debug_PushStack "SRF_Finalize"
153
154    #IGCM_sys_Put_Out ${RUN_DIR}/used_run.def ${R_SAVE}/${PREFIX}_used_run.def
155
156    echo FINALIZE SRF !!!
157
158    IGCM_debug_PopStack "SRF_Finalize"
159}
Note: See TracBrowser for help on using the repository browser.