source: tags/ORCHIDEE_OL/TESTSTOMATE/COMP/orchidee.driver @ 6

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

import first tag equivalent to CVS orchidee_1_9_5 + OOL_1_9_5

File size: 3.4 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#-----------------------------------------------------------------
32function SRF_Update
33{
34    IGCM_debug_PushStack "SRF_Update"
35
36    typeset SECHIBA_WRITE_STEP
37
38    SRF_WriteFrequency=$( echo ${config_SRF_WriteFrequency} | sed -e 's/\([0-9]*[yYmMdDs]\).*/\1/' ) 
39    case ${SRF_WriteFrequency} in
40        *Y|*y) 
41            WriteInYears=$( echo ${SRF_WriteFrequency} | awk -F '[yY]' '{print $1}' )
42            PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
43            (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears * 86400 )) ;;
44        1M)
45            case ${config_UserChoices_PeriodLength} in
46            *Y|*y)
47                SECHIBA_WRITE_STEP=-1.
48                ;;
49            *M|*m) 
50                SECHIBA_WRITE_STEP=-1.
51                ;;
52            *)
53                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 ))
54                ;;
55            esac
56            ;;
57        *M|*m) 
58            WriteInMonths=$( echo ${SRF_WriteFrequency} | awk -F '[mM]' '{print $1}' )
59            case ${config_UserChoices_PeriodLength} in
60            *Y|*y)
61                PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
62                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * 86400 / PeriodLengthInYears / 12  ))
63                ;;
64            *M|*m)
65                PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | awk -F '[mM]' '{print $1}' )
66                (( SECHIBA_WRITE_STEP = PeriodLengthInDays * WriteInMonths  * 86400 / PeriodLengthInMonths  ))
67                ;;
68            *)
69                (( SECHIBA_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) * 86400 ))
70                ;;
71            esac
72            ;;
73        5D|5d) 
74            (( SECHIBA_WRITE_STEP = 5 * 86400 )) ;;
75        1D|1d) 
76            (( SECHIBA_WRITE_STEP = 86400 )) ;;
77        *s)
78            WriteInSeconds=$( echo ${SRF_WriteFrequency} | awk -F '[s]' '{print $1}' )
79            (( SECHIBA_WRITE_STEP = WriteInSeconds )) ;;
80        *) 
81            IGCM_debug_Exit "SRF_Update " ${SRF_WriteFrequency} " invalid WriteFrequency : choose in 1Y, 1M, 5D, 1D." 
82            IGCM_debug_Verif_Exit ;;
83    esac
84
85    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SRF_Restart}" = "n" ] ) ; then
86        echo "Error in teststomate !"
87        echo "You must use some old restarts with this job." 
88        echo "We will stop here."
89        IGCM_debug_Exit "YOU MUST USE SOME OLD RESTARTS WITH THE JOB TESTSTOMATE." 
90        IGCM_debug_Verif_Exit
91    else
92        ORCHIDEE_sed SECHIBA_restart_in sechiba_rest_in.nc
93    fi
94
95    # For old versions of SECHIBA
96    typeset TAG_SECH
97    echo "Composante SRF : " ${config_ListOfComponents_SRF[@]}
98    TAG_SECH=${config_ListOfComponents_SRF[1]}
99    echo "TAG of SECHIBA : " ${TAG_SECH}
100    if ( [ "${TAG_SECH}" != "HEAD" ] ) ; then
101        ORCHIDEE_sed HYDROL_HDRY 1.0
102    fi
103
104    ORCHIDEE_sed TIME_LENGTH ${PeriodLengthInDays}D
105    IGCM_sys_Mv orchidee.def run.def
106
107    IGCM_debug_PopStack "SRF_Update"
108}
109
110#-----------------------------------------------------------------
111function SRF_Finalize
112{
113    IGCM_debug_PushStack "SRF_Finalize"
114
115    echo FINALIZE SRF !!!
116
117    IGCM_debug_PopStack "SRF_Finalize"
118}
Note: See TracBrowser for help on using the repository browser.