source: tags/ORCHIDEE_1_9_6/ORCHIDEE_OL/FORCESOIL/COMP/stomate.driver @ 3991

Last change on this file since 3991 was 865, checked in by didier.solyga, 12 years ago

New scripts compatible the externalization done for OOL_SEC, OOL_SEC_STO, FORCESOIL, TESTSTOMATE and SPINUP configurations. These scripts use an unique empty run.def.

File size: 4.8 KB
Line 
1#!/bin/ksh
2
3#D- Driver du script pour STOMATE
4
5function ORCHIDEE_def
6{
7    IGCM_debug_PushStack "ORCHIDEE_def"
8   
9    typeset ORCHIDEE_def_KEY ORCHIDEE_default_KEY
10   
11    ORCHIDEE_def_KEY=$( grep -e "^${1}\ *=" run.def | gawk -- 'BEGIN {FS="="} {print $2}')
12    ORCHIDEE_default_KEY=$( grep -e "^${1}\ *=" ${SUBMIT_DIR}/PARAM/orchidee.default | gawk -- 'BEGIN {FS="="} {print $2}')
13
14    if [ X"${ORCHIDEE_def_KEY}" != X ] ; then
15        IGCM_debug_Print 2 "ORCHIDEE : ${1} has already been set in def file."
16        IGCM_debug_Print 2 " default value : ${ORCHIDEE_default_KEY}"
17        IGCM_debug_Print 2 " script value : ${2}"
18        IGCM_debug_Print 2 " USER value : ${ORCHIDEE_def_KEY}"
19        IGCM_debug_Print 2 "               We will not set in again !"
20    else
21        echo "${1}= ${2}" >> run.def
22        echo ""  >> run.def
23        echo "ORCHIDEE_def : ${1} ${2}"
24    fi
25   
26    IGCM_debug_PopStack "ORCHIDEE_def"
27    return $RET
28}
29
30#-----------------------------------------------------------------
31function SBG_Initialize
32{
33    IGCM_debug_PushStack "SBG_Initialize"
34
35    RESOL=${forcesoil_UserChoices_RESOL}
36
37    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card SBG RestartDate
38    Date_Restarts=$( IGCM_date_ConvertFormatToGregorian ${config_SBG_RestartDate} )
39    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card SBG RestartJobName
40    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card SBG RestartPath   
41
42    NUM_PROC=1
43#D- Number of processors used for lmdz and oasis coupler computed from PBS variable
44    if [ X"${BATCH_NUM_PROC_TOT}" != X ] ; then
45        NUM_PROC=${BATCH_NUM_PROC_TOT}
46    fi
47    echo BATCH_NUM_PROC_TOT=${BATCH_NUM_PROC_TOT}
48    echo NUM_PROC=${NUM_PROC}
49
50    if ( [ X${BATCH_NUM_PROC_TOT} != X ] && [ "${BATCH_NUM_PROC_TOT}" -gt 1 ] ) ; then
51        MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND}
52    fi
53
54    if [ ! -f ${SUBMIT_DIR}/PARAM/run.def ] ; then
55        echo "#orchidee add :" > ${SUBMIT_DIR}/PARAM/run.def
56    else
57        echo "#orchidee add :" >> ${SUBMIT_DIR}/PARAM/run.def
58    fi
59    echo "" >> ${SUBMIT_DIR}/PARAM/run.def
60
61     IGCM_debug_PopStack "SBG_Initialize"
62}
63
64#-----------------------------------------------------------------
65function SBG_PeriodStart
66{
67    IGCM_debug_PushStack "SBG_PeriodStart"
68
69    IGCM_debug_PopStack "SBG_PeriodStart"
70}
71
72#-----------------------------------------------------------------
73function SBG_Update
74{
75    IGCM_debug_PushStack "SBG_Update"
76
77    typeset STOMATE_WRITE_STEP
78
79    case ${config_SBG_WriteFrequency} in
80        *Y|*y) 
81            WriteInYears=$( echo ${config_SBG_WriteFrequency} | awk -F '[yY]' '{print $1}' )
82            PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
83            (( STOMATE_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears )) ;;
84        1M|1m) 
85            case ${config_UserChoices_PeriodLength} in
86            *Y|*y)
87                STOMATE_WRITE_STEP=-1.
88                ;;
89        *M|*m) 
90                STOMATE_WRITE_STEP=-1.
91                ;;
92            *)
93                (( STOMATE_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) )) ;;
94            esac
95            ;;
96        *M|*m) 
97            WriteInMonths=$( echo ${config_SBG_WriteFrequency} | awk -F '[mM]' '{print $1}' )
98            case ${config_UserChoices_PeriodLength} in
99            *Y|*y)
100                PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
101                (( STOMATE_WRITE_STEP = 30 )) ;;
102            *M|*m)
103                PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | awk -F '[mM]' '{print $1}' )
104                (( STOMATE_WRITE_STEP = PeriodLengthInDays * WriteInMonths / PeriodLengthInMonths )) ;;
105            *)
106                (( STOMATE_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) )) ;;
107            esac
108            ;;
109        5D|5d) 
110            (( STOMATE_WRITE_STEP = 5 )) ;;
111        1D|1d) 
112            (( STOMATE_WRITE_STEP = 1 )) ;;
113        *s)
114            WriteInSeconds=$( echo ${config_SBG_WriteFrequency} | awk -F '[s]' '{print $1}' )
115            (( STOMATE_WRITE_STEP = 1 )) ;;
116        *) 
117            IGCM_debug_Exit "SBG_Update " ${config_SBG_WriteFrequency} " invalid WriteFrequency : choose in 1Y, 1M, 5D, 1D." 
118            IGCM_debug_Verif_Exit ;;
119    esac
120
121    ORCHIDEE_def STOMATE_OK_STOMATE y
122    ORCHIDEE_def STOMATE_OK_CO2 y
123
124    ORCHIDEE_def STOMATE_HIST_DT ${STOMATE_WRITE_STEP}
125    ORCHIDEE_def STOMATE_HISTLEVEL ${stomate_UserChoices_stomate_LEVEL}
126    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SBG_Restart}" = "n" ] ) ; then
127        echo "Error in forcesoil !"
128        echo "You must use some old restarts with this job." 
129        echo "We will stop here."
130        IGCM_debug_Exit "YOU MUST USE SOME OLD RESTARTS WITH THE JOB FORCESOIL." 
131        IGCM_debug_Verif_Exit
132    else
133        ORCHIDEE_def STOMATE_RESTART_FILEIN stomate_rest_in.nc
134        ORCHIDEE_def STOMATE_CFORCING_NAME stomate_Cforcing.nc
135    fi
136
137    ORCHIDEE_def TIME_LENGTH ${PeriodLengthInYears}Y
138#    ORCHIDEE_def TIME_SKIP ${OldSimulationLengthInDays}D
139
140    IGCM_debug_PopStack "SBG_Update"
141}
142
143#-----------------------------------------------------------------
144function SBG_Finalize
145{
146    IGCM_debug_PushStack "SBG_Finalize"
147
148    echo FINALIZE SBG !!!
149
150    IGCM_debug_PopStack "SBG_Finalize"
151}
Note: See TracBrowser for help on using the repository browser.