source: CONFIG/UNIFORM/v6/IPSLCM6/GENERAL/DRIVER/orchidee.driver @ 3571

Last change on this file since 3571 was 3565, checked in by jgipsl, 6 years ago

Changed strategy for settings for output files for ORCHIDEE. Activate files, output level and output frequency are now set from orchidee.card and stomate.card. WriteFrequancy in config.card is not used any more for ORCHIDEE (SRF and SBG).

Already done in LMDZOR_v6 in [3563] and [3564]

File size: 7.3 KB
Line 
1#!/bin/ksh
2## Driver for the component SRF corresponding to the sechiba part of ORCHIDEE
3#-----------------------------------------------------------------
4function SRF_Initialize
5{
6    IGCM_debug_PushStack "SRF_Initialize"
7
8    ##- Define variable DefSuffix set in orchidee.card
9    ##  This variable is used in orchidee.card to choose
10    ##  parameter file(orchidee.def_DefSuffix).
11    if [ ! X${orchidee_UserChoices_DefSuffix} = X ] ; then
12        DefSuffix=${orchidee_UserChoices_DefSuffix}
13    else
14        DefSuffix=Choi
15    fi
16
17    IGCM_debug_PopStack "SRF_Initialize"
18}
19
20#-----------------------------------------------------------------
21function SRF_Update
22{
23    IGCM_debug_PushStack "SRF_Update"
24
25    ## 1. Modifications in orchidee.def parameter file
26
27    # Activate STOMATE if the compontent SBG=stomate is set in config.card
28    if [ X${config_ListOfComponents_SBG} = Xstomate ] ; then
29        # Activate stomate in orchidee.def
30        IGCM_comp_modifyDefFile blocker orchidee.def STOMATE_OK_STOMATE y
31    else
32        # Deactivate stomate in orchidee.def
33        IGCM_comp_modifyDefFile blocker orchidee.def STOMATE_OK_STOMATE n
34        # Deactivate output files for stomate
35        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 enabled .FALSE.
36        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 output_level 0
37        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate1 output_freq 1mo
38        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 enabled .FALSE.
39        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_level 0
40        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml stomate2 output_freq 1mo
41    fi
42
43    # Define in orchidee.def if restart file should be used
44    if ( [ ${CumulPeriod} -ne 1 ] || [ "${config_SRF_Restart}" != "n" ] ) ; then
45        IGCM_comp_modifyDefFile blocker orchidee.def SECHIBA_restart_in sechiba_rest_in.nc
46    else
47        IGCM_comp_modifyDefFile blocker orchidee.def SECHIBA_restart_in NONE
48    fi
49
50    # Set VEGET_UPDATE=1Y in orchidee.def if VEGET_UPDATE_at_start=y in orchidee.card and if it is the first cumul periond (start of new simulation)
51    if [ X${orchidee_UserChoices_VEGET_UPDATE_at_start} = Xy ] && [ ${CumulPeriod} -eq 1 ] ; then
52        IGCM_comp_modifyDefFile nonblocker orchidee.def VEGET_UPDATE   1Y
53    fi
54
55    # Modify in orchidee.def VEGET_UPDATE if it is set in orchidee.card section UserChoices
56    # Note: if the variable has been set by VEGET_UPDATE_at_start, this section will not overwrite it.
57    if [ ! X${orchidee_UserChoices_VEGET_UPDATE} = X ] ; then
58        IGCM_comp_modifyDefFile nonblocker orchidee.def VEGET_UPDATE   ${orchidee_UserChoices_VEGET_UPDATE}
59    else
60        IGCM_comp_modifyDefFile nonblocker orchidee.def VEGET_UPDATE 0Y
61    fi
62
63    # Activate creation of river description file only for the first period
64    if [ ${CumulPeriod} -eq 1 ] ; then
65        IGCM_comp_modifyDefFile nonblocker orchidee.def RIVER_DESC y
66    else
67        IGCM_comp_modifyDefFile nonblocker orchidee.def RIVER_DESC n
68    fi
69
70
71    ## 2. Mangement of output and modifications of related xml files
72    # Modify file_def_orchidee.xml file using settings from orchidee.card
73    # We here suppose that for each file, in orchidee.card UserChoices section, if the parameter
74    # output_level_filename is set, then also output_freq_filename must be set. The existance of output_freq_filename will not be checked.
75    # If output_level_filename=NONE or if it is not set, the corresponding file will be deactivated.
76    # Settings in config.card WriteFrequency are not used any more.
77   
78    if [ X${orchidee_UserChoices_output_level_sechiba_history} = X ] || [ X${orchidee_UserChoices_output_level_sechiba_history} = XNONE ] ; then
79        # output_level_sechiba_history is not set in orchidee.card or it is set to NONE.
80        # Deactivate the file.
81        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 enabled .FALSE.
82        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_level 0
83        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_freq 1mo
84    else
85        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 enabled      .TRUE.
86        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_level ${orchidee_UserChoices_output_level_sechiba_history}
87        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba1 output_freq  ${orchidee_UserChoices_output_freq_sechiba_history}
88    fi
89   
90    if [ X${orchidee_UserChoices_output_level_sechiba_out_2} = X ] || [ X${orchidee_UserChoices_output_level_sechiba_out_2} = XNONE ] ; then
91        # output_level_sechiba_out_2 is not set in orchidee.card or it is set to NONE.
92        # Deactivate the file.
93        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 enabled .FALSE.
94        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_level 0
95        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_freq 1mo
96    else
97        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 enabled      .TRUE.
98        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_level ${orchidee_UserChoices_output_level_sechiba_out_2}
99        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba2 output_freq  ${orchidee_UserChoices_output_freq_sechiba_out_2}
100    fi
101   
102    if [ X${orchidee_UserChoices_output_level_sechiba_history_4dim} = X ] || [ X${orchidee_UserChoices_output_level_sechiba_history_4dim} = XNONE ] ; then
103        # output_level_sechiba_history_4dim is not set in orchidee.card or it is set to NONE.
104        # Deactivate the file.
105        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 enabled .FALSE.
106        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_level 0
107        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_freq 1mo
108    else
109        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 enabled      .TRUE.
110        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_level ${orchidee_UserChoices_output_level_sechiba_history_4dim}
111        IGCM_comp_modifyXmlFile nonblocker file_def_orchidee.xml sechiba3 output_freq  ${orchidee_UserChoices_output_freq_sechiba_history_4dim}
112    fi
113       
114
115    # Add include of orchidee context in iodef.xml
116    # In iodef.xml add on next line after "COMPONENT CONTEXT"
117    #  <context id="orchidee" src="./context_orchidee.xml"/>
118    echo '<context id="orchidee" src="./context_orchidee.xml"/>' > add.tmp
119    if [ X"$( echo ${config_UserChoices_ExpType} | grep CMIP6 )" != "X" ] ; then
120        echo '<context id="orchidee" src="./ping_orchidee.xml"/>' >> add.tmp
121        echo '<context id="orchidee" src="./dr2xml_orchidee.xml"/>' >> add.tmp
122    fi
123    cp iodef.xml iodef.xml.tmp
124    sed -e "/COMPONENT CONTEXT/r add.tmp" iodef.xml.tmp > iodef.xml
125    rm iodef.xml.tmp add.tmp
126
127    # Add LongName as global attribute in XIOS output files (if LongName is not empty)
128    if [ ! "X${config_UserChoices_LongName}" = "X" ] ; then
129        listfile=$(ls file_def*orchidee.xml)
130        echo "<variable id=\"LongName\" type=\"string\">${config_UserChoices_LongName}</variable>" > add.tmp
131        for file in ${listfile}
132        do
133            cp ${file} ${file}.tmp
134            sed -e "/<file id/r add.tmp" \
135                ${file}.tmp > ${file}
136            rm ${file}.tmp
137        done
138        rm add.tmp
139    fi
140
141
142    IGCM_debug_PopStack "SRF_Update"
143}
144
145#-----------------------------------------------------------------
146function SRF_Finalize
147{
148    IGCM_debug_PushStack "SRF_Finalize"
149
150    IGCM_debug_PopStack "SRF_Finalize"
151}
Note: See TracBrowser for help on using the repository browser.