source: CONFIG/UNIFORM/v6/IPSLCM6/GENERAL/DRIVER/stomate.driver @ 2343

Last change on this file since 2343 was 2343, checked in by aclsce, 10 years ago

Modifed to have same handling of XIOS xml files as in LMDZOR configuration.

File size: 7.3 KB
Line 
1#!/bin/ksh
2
3#D- Driver du script pour ORCHIDEE
4
5#-----------------------------------------------------------------
6function SBG_Initialize
7{
8    IGCM_debug_PushStack "SBG_Initialize"
9
10    RESOL_SBG=ALL
11   
12    IGCM_debug_PopStack "SBG_Initialize"
13}
14
15#-----------------------------------------------------------------
16function SBG_Update
17{
18    IGCM_debug_PushStack "SBG_Update"
19
20    typeset STOMATE_WRITE_STEP
21
22    if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
23        IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 enabled .FALSE.
24        IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 enabled .FALSE.
25    fi   
26    case ${config_SBG_WriteFrequency} in
27        *Y|*y) 
28            WriteInYears=$( echo ${config_SBG_WriteFrequency} | awk -F '[yY]' '{print $1}' )
29            PeriodLengthInYears=$( echo ${config_UserChoices_PeriodLength} | awk -F '[yY]' '{print $1}' )
30            (( STOMATE_WRITE_STEP = PeriodLengthInDays * WriteInYears / PeriodLengthInYears )) 
31            if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
32                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 enabled .TRUE.
33                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 output_freq ${WriteInYears}y
34                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 name stomate_history
35                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 enabled .TRUE.
36                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 output_freq ${WriteInYears}y
37                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 name stomate_ipcc_history
38
39            fi
40            ;;
41        1M|1m) 
42            if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
43                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 enabled .TRUE.
44                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 output_freq 1mo
45                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 name stomate_history
46                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 enabled .TRUE.
47                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 output_freq 1mo
48                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 name stomate_ipcc_history
49            fi
50            case ${config_UserChoices_PeriodLength} in
51            *Y|*y)
52                STOMATE_WRITE_STEP=-1.
53                ;;
54            *M|*m)
55                STOMATE_WRITE_STEP=-1.
56                ;;
57            *)
58                (( STOMATE_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) )) ;;
59            esac
60            ;;
61        *M|*m) 
62            WriteInMonths=$( echo ${config_SBG_WriteFrequency} | awk -F '[mM]' '{print $1}' )
63            if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
64                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 enabled .TRUE.
65                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 output_freq ${WriteInMonths}mo
66                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 name stomate_history
67                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 enabled .TRUE.
68                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 output_freq ${WriteInMonths}mo
69                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 name stomate_ipcc_history
70            fi
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                ;;
76            *M|*m)
77                PeriodLengthInMonths=$( echo ${config_UserChoices_PeriodLength} | awk -F '[mM]' '{print $1}' )
78                (( STOMATE_WRITE_STEP = PeriodLengthInDays * WriteInMonths / PeriodLengthInMonths ))
79                ;;
80            *)
81                (( STOMATE_WRITE_STEP = $( IGCM_date_DaysInMonth $year $month ) )) 
82                if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
83                    IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 enabled .TRUE.
84                    IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 output_freq ${STOMATE_WRITE_STEP}s
85                    IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 name stomate_history
86                    IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 enabled .TRUE.
87                    IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 output_freq ${STOMATE_WRITE_STEP}s
88                    IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 name stomate_ipcc_history
89                fi
90                ;;
91            esac
92            ;;
93        5D|5d) 
94            (( STOMATE_WRITE_STEP = 5 ))
95            if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
96                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 enabled .TRUE.
97                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 output_freq 5d
98                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 name stomate_history
99                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 enabled .TRUE.
100                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 output_freq 5d
101                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 name stomate_ipcc_history
102            fi
103            ;;
104        1D|1d) 
105            (( STOMATE_WRITE_STEP = 1 )) 
106            if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
107                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 enabled .TRUE.
108                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 output_freq 1d
109                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate1 name stomate_history
110                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 enabled .TRUE.
111                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 output_freq 1d
112                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 name stomate_ipcc_history
113            fi
114            ;;
115        *s)
116            WriteInSeconds=$( echo ${config_SBG_WriteFrequency} | awk -F '[s]' '{print $1}' )
117            if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
118                IGCM_comp_modifyXmlFile force file_def_orchidee.xml sechiba1 enabled .TRUE.
119                IGCM_comp_modifyXmlFile force file_def_orchidee.xml sechiba1 output_freq ${WriteInSeconds}s
120                IGCM_comp_modifyXmlFile force file_def_orchidee.xml sechiba1 name sechiba_history
121                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 enabled .TRUE.
122                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 output_freq ${WriteInSeconds}s
123                IGCM_comp_modifyXmlFile force file_def_orchidee.xml stomate2 name stomate_ipcc_history
124            fi
125            (( STOMATE_WRITE_STEP = 1 )) ;;
126        *) 
127            IGCM_debug_Exit "SBG_Update " ${config_SBG_WriteFrequency} " invalid WriteFrequency : choose in 1Y, 1M, 5D, 1D." 
128            IGCM_debug_Verif_Exit ;;
129    esac
130
131
132#Use of XIOS library only
133
134    if [ X${orchidee_UserChoices_XIOS} = Xy ] ; then
135        (( STOMATE_WRITE_STEP = 0 ))
136    fi
137
138    IGCM_comp_modifyDefFile nonblocker orchidee.def STOMATE_HIST_DT ${STOMATE_WRITE_STEP}
139    IGCM_comp_modifyDefFile nonblocker orchidee.def STOMATE_HISTLEVEL ${stomate_UserChoices_stomate_LEVEL}
140
141    if ( [ ${CumulPeriod} -eq 1 ] && [ "${config_SBG_Restart}" = "n" ] ) ; then
142        echo "STOMATE : without restart"
143        IGCM_comp_modifyDefFile blocker orchidee.def STOMATE_RESTART_FILEIN NONE
144    else
145        IGCM_comp_modifyDefFile blocker orchidee.def STOMATE_RESTART_FILEIN stomate_rest_in.nc
146    fi
147
148    IGCM_debug_PopStack "SBG_Update"
149}
150
151#-----------------------------------------------------------------
152function SBG_Finalize
153{
154#set -vx
155    IGCM_debug_PushStack "SBG_Finalize"
156
157    if [ $( IGCM_date_DaysBetweenGregorianDate ${PeriodDateEnd} ${year}1230 ) -ge 0 ] ; then
158        IGCM_sys_Put_Out stomate_Cforcing.nc ${R_OUT_SBG_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_stomate_Cforcing.nc
159        IGCM_sys_Put_Out stomate_forcing.nc  ${R_OUT_SBG_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_stomate_forcing.nc
160#       rm -f stomate_Cforcing.nc
161#       rm -f stomate_forcing.nc
162    fi
163
164    IGCM_debug_PopStack "SBG_Finalize"
165}
Note: See TracBrowser for help on using the repository browser.