source: tags/ORCHIDEE_OL/FORCESOIL/COMP/stomate.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.9 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 SBG_Initialize
21{
22    IGCM_debug_PushStack "SBG_Initialize"
23
24    RESOL=${forcesoil_UserChoices_RESOL}
25
26    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card SBG RestartDate
27    Date_Restarts=$( IGCM_date_ConvertFormatToGregorian ${config_SBG_RestartDate} )
28    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card SBG RestartJobName
29    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card SBG RestartPath   
30
31    NUM_PROC=1
32#D- Number of processors used for lmdz and oasis coupler computed from PBS variable
33    if [ X"${BATCH_NUM_PROC_TOT}" != X ] ; then
34        NUM_PROC=${BATCH_NUM_PROC_TOT}
35    fi
36    echo BATCH_NUM_PROC_TOT=${BATCH_NUM_PROC_TOT}
37    echo NUM_PROC=${NUM_PROC}
38
39    if ( [ X${BATCH_NUM_PROC_TOT} != X ] && [ "${BATCH_NUM_PROC_TOT}" -gt 1 ] ) ; then
40        MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND}
41    fi
42
43    echo "ORCHIDEE Tag : " ${config_UserChoices_TagName}
44
45    IGCM_debug_PopStack "SBG_Initialize"
46}
47
48#-----------------------------------------------------------------
49function SBG_Update
50{
51    IGCM_debug_PushStack "SBG_Update"
52
53    typeset SECHIBA_WRITE_STEP STOMATE_WRITE_STEP
54
55    case ${config_SBG_WriteFrequency} in
56        *Y|*y) 
57            WriteInYears=$( echo ${1} | awk -F '[yY]' "{print ${config_SBG_WriteFrequency}}" )
58            PeriodLengthInYears=$( echo ${1} | awk -F '[yY]' "{print ${config_UserChoices_PeriodLength}}" )
59            (( STOMATE_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears )) ;;
60        *M|*m) 
61            WriteInMonths=$( echo ${1} | awk -F '[mM]' "{print ${config_SBG_WriteFrequency}}" )
62            case ${config_UserChoices_PeriodLength} in
63            *Y|*y)
64                PeriodLengthInYears=$( echo ${1} | awk -F '[yY]' "{print ${config_UserChoices_PeriodLength}}" )
65                (( STOMATE_WRITE_STEP = 30 )) ;;
66            *M|*m)
67                PeriodLengthInMonths=$( echo ${1} | awk -F '[mM]' "{print ${config_UserChoices_PeriodLength}}" )
68                (( STOMATE_WRITE_STEP = PeriodLengthInDays * WriteInMonths / PeriodLengthInMonths )) ;;
69            *)
70                (( STOMATE_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) )) ;;
71            esac
72            ;;
73        5D|5d) 
74            (( STOMATE_WRITE_STEP = 5 )) ;;
75        1D|1d) 
76            (( STOMATE_WRITE_STEP = 1 )) ;;
77        *s)
78            WriteInSeconds=$( echo ${1} | awk -F '[s]' "{print ${config_SBG_WriteFrequency}}" )
79            (( STOMATE_WRITE_STEP = 1 )) ;;
80        *) 
81            IGCM_debug_Exit "SBG_Update " ${config_SBG_WriteFrequency} " invalid WriteFrequency : choose in 1Y, 1M, 5D, 1D." 
82            IGCM_debug_Verif_Exit ;;
83    esac
84
85    ORCHIDEE_sed STOMATE_HIST_DT ${STOMATE_WRITE_STEP}
86    ORCHIDEE_sed STOMATE_HISTLEVEL ${stomate_UserChoices_stomate_LEVEL}
87    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SBG_Restart}" = "n" ] ) ; then
88        echo "Error in forcesoil !"
89        echo "You must use some old restarts with this job." 
90        echo "We will stop here."
91        IGCM_debug_Exit "YOU MUST USE SOME OLD RESTARTS WITH THE JOB FORCESOIL." 
92        IGCM_debug_Verif_Exit
93    else
94        ORCHIDEE_sed STOMATE_RESTART_FILEIN stomate_rest_in.nc
95        ORCHIDEE_sed STOMATE_CFORCING_NAME stomate_Cforcing.nc
96        ORCHIDEE_sed STOMATE_HIST_DT ${STOMATE_WRITE_STEP}
97        ORCHIDEE_sed STOMATE_HISTLEVEL 6
98    fi
99
100    ORCHIDEE_sed TIME_LENGTH ${PeriodLengthInDays}D
101#    ORCHIDEE_sed TIME_SKIP ${OldSimulationLengthInDays}D
102
103    IGCM_sys_Mv orchidee.def run.def
104#     IGCM_sys_Put_Out run.def ${R_OUT_FOR}/${PREFIX}_run.def
105#     FileToBeDeleted[${#FileToBeDeleted[@]}]=run.def
106
107    IGCM_debug_PopStack "SBG_Update"
108}
109
110#-----------------------------------------------------------------
111function SBG_Finalize
112{
113    IGCM_debug_PushStack "SBG_Finalize"
114
115    echo FINALIZE SBG !!!
116
117    IGCM_debug_PopStack "SBG_Finalize"
118}
Note: See TracBrowser for help on using the repository browser.