source: CONFIG/UNIFORM/v6/LMDZORINCA_v6.1.10/GENERAL/DRIVER/inca.driver @ 4884

Last change on this file since 4884 was 4884, checked in by acosce, 4 years ago

standardization of inca.driver, inca.def in all default configuration using inca

File size: 14.9 KB
Line 
1#!/bin/ksh
2
3#D- Driver du script pour INCA
4#-----------------------------------------------------------------
5function INCA_sed_replace
6{
7    IGCM_debug_PushStack "INCA_sed_replace"
8
9    sed -e "s/${2}/${3}/" ${1} > ${1}.tmp
10    RET=$?
11    echo "INCA_sed : ${1} ${2} ${3}"
12    \mv ${1}.tmp ${1}
13
14    IGCM_debug_PopStack "INCA_sed_replace"
15    return $RET
16}
17#-----------------------------------------------------------------
18function CHM_Initialize
19{
20    IGCM_debug_PushStack "CHM_Initialize"
21
22    RESOL_CHM=$( echo $RESOL | awk "-Fx" '{print $2}' | awk "-FD" '{print $2}')
23
24    [ -f ${SUBMIT_DIR}/../.resol ] && eval $(grep RESOL_ATM_3D ${SUBMIT_DIR}/../.resol) || RESOL_ATM_3D=96x95x19
25    RESOL_CHM_Z=$( echo ${RESOL_ATM_3D} | awk "-Fx" '{print $3}' | awk "-F-" '{print $1}')
26    RESOL_CHM_XY=$( echo ${RESOL_CHM} | awk "-F-" '{print $1}' )
27    echo 'resol chimie : ' $RESOL_CHM', resol lonlat : ' ${RESOL_CHM_XY}
28
29
30    [ -f ${SUBMIT_DIR}/../.chimie ] && eval $(grep CHEM ${SUBMIT_DIR}/../.chimie) 
31    INCA_sed_replace ${SUBMIT_DIR}/config.card \${CHEM} ${CHEM}
32    echo "INCA Tag : LMDZ-INCA" ${config_UserChoices_TagName}
33
34    ##- LMDZ physics version
35    ##  Read LMDZ_Physics option in lmdz.card, if not present take default value AP (old physics)
36    if [ ! X${lmdz_UserChoices_LMDZ_Physics} = X ] ; then
37        LMDZ_Physics=${lmdz_UserChoices_LMDZ_Physics}
38    else
39        LMDZ_Physics=AP
40    fi
41    echo LMDZ physics version : ${LMDZ_Physics}
42
43    enable1=.FALSE.
44    enable2=.FALSE.
45    enable3=.FALSE.
46
47    for frequency in ${config_CHM_WriteFrequency} ; do
48        case ${frequency} in
49            1D|1d) enable1=.TRUE. ;;
50        esac
51        case ${frequency} in
52            1M|1m) enable2=.TRUE. ;;
53        esac
54        case ${frequency} in
55            1H|1h) enable3=.TRUE. ;;
56        esac
57    done
58
59
60
61    IGCM_debug_PopStack "CHM_Initialize"
62}
63
64#-----------------------------------------------------------------
65function CHM_Update
66{
67    IGCM_debug_PushStack "CHM_Update"
68
69
70
71    case ${CHEM} in
72        AER)
73            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   forcage1     enabled ${enable1}
74            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml forcage2     enabled ${enable2}
75            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   aero1        enabled ${enable1}
76            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml aero2        enabled ${enable2}
77            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   chemistry1   enabled ${enable1}
78            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml chemistry2   enabled ${enable2}
79            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   emissions1   enabled ${enable1}
80            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml emissions2   enabled ${enable2}
81            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   species1     enabled ${enable1}
82            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml species2     enabled ${enable2}
83            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   dvel1        enabled ${enable1}
84            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml dvel2        enabled ${enable2}
85            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   washout1     enabled ${enable1}
86            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml washout2     enabled ${enable2}
87            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   reacflux1    enabled ${enable1}
88            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml reacflux2    enabled ${enable2}
89            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml   invariants1  enabled ${enable1}
90            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml invariants2  enabled ${enable2}
91
92            if [ X${LMDZ_Physics} = X"AP" ] ; then
93                IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
94            else
95                IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
96            fi
97        ;;
98        DUSS)
99            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml forcage1     enabled ${enable1}
100            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml aero1        enabled ${enable1}
101            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml emissions1   enabled ${enable1}
102            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml species1     enabled ${enable1}
103            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml vegetation1  enabled ${enable1}
104
105            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml forcage2     enabled ${enable2}
106            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml aero2        enabled ${enable2}
107            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml emissions2   enabled ${enable2}
108            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml species2     enabled ${enable2}
109            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml vegetation2  enabled ${enable2}
110
111            if [ X${LMDZ_Physics} = X"AP" ] ; then
112                IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
113            else
114                IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
115            fi
116        ;;
117        NMHC) 
118            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml reacflux1    enabled ${enable1}
119            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml emissions1   enabled ${enable1}
120            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml species1     enabled ${enable1}
121            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml chemistry1   enabled ${enable1}
122            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml dvel1        enabled ${enable1}
123            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml washout1     enabled ${enable1}
124
125            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml reacflux2  enabled ${enable2} 
126            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml emissions2 enabled ${enable2} 
127            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml species2   enabled ${enable2} 
128            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml chemistry2 enabled ${enable2} 
129            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml dvel2      enabled ${enable2} 
130            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml washout2   enabled ${enable2} 
131
132            IGCM_comp_modifyDefFile nonblocker run.def config_inca chem
133            ;;
134        NMHC_AER)
135            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml forcage1     enabled ${enable1}
136            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml aero1        enabled ${enable1}
137            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml species1     enabled ${enable1}
138            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml chemistry1   enabled ${enable1}
139            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml emissions1   enabled ${enable1}
140            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml dvel1        enabled ${enable1}
141            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml phtrate1     enabled ${enable1}
142            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml washout1     enabled ${enable1}
143            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml reacflux1    enabled ${enable1}
144            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml vegetation1  enabled ${enable1}
145
146            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml forcage2    enabled ${enable2} 
147            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml aero2       enabled ${enable2} 
148            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml species2    enabled ${enable2} 
149            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml chemistry2  enabled ${enable2} 
150            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml emissions2  enabled ${enable2} 
151            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml dvel2       enabled ${enable2} 
152            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml phtrate2    enabled ${enable2} 
153            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml washout2    enabled ${enable2} 
154            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml reacflux2   enabled ${enable2} 
155            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml vegetation2 enabled ${enable2} 
156
157            if [ X${LMDZ_Physics} = X"AP" ] ; then
158                IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
159            else
160                IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
161            fi
162        ;;
163
164        NMHC_AER_S)
165            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml aero_chem1  enabled ${enable3}
166
167            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml forcage1     enabled ${enable1}
168            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml aero1        enabled ${enable1}
169            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml species1     enabled ${enable1}
170            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml chemistry1   enabled ${enable1}
171            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml emissions1   enabled ${enable1}
172            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml dvel1        enabled ${enable1}
173            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml phtrate1     enabled ${enable1}
174            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml washout1     enabled ${enable1}
175            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml reacflux1    enabled ${enable1}
176            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml vegetation1  enabled ${enable1}
177
178            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml forcage2    enabled ${enable2} 
179            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml aero2       enabled ${enable2} 
180            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml species2    enabled ${enable2} 
181            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml chemistry2  enabled ${enable2} 
182            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml emissions2  enabled ${enable2} 
183            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml phtrate2    enabled ${enable2} 
184            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml dvel2       enabled ${enable2} 
185            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml washout2    enabled ${enable2} 
186            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml reacflux2   enabled ${enable2} 
187            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml vegetation2 enabled ${enable2} 
188
189            if [ X${LMDZ_Physics} = X"AP" ] ; then
190                IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
191            else
192                IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
193            fi
194        ;;
195        GES)
196            IGCM_comp_modifyXmlFile nonblocker file_def_inca_daily.xml emissions1    enabled ${enable1}
197
198            IGCM_comp_modifyXmlFile nonblocker file_def_inca_monthly.xml emissions2    enabled ${enable2}
199
200            IGCM_comp_modifyDefFile nonblocker run.def config_inca chem
201        esac
202
203
204    # inca.def : Activate reading of 10m wind in files if LMDZ_10m_winds=n in inca.card
205    if [ ! X${inca_UserChoices_LMDZ_10m_winds} = X ] ; then
206        IGCM_comp_modifyDefFile nonblocker inca.def LMDZ_10m_winds  ${inca_UserChoices_LMDZ_10m_winds}
207    else
208        IGCM_comp_modifyDefFile nonblocker inca.def LMDZ_10m_winds  n
209    fi
210
211
212    if [ ! X${inca_UserChoices_wind_parameter} = X ] ; then
213        IGCM_comp_modifyDefFile nonblocker inca.def  tref ${inca_UserChoices_wind_parameter}
214    else
215        IGCM_comp_modifyDefFile nonblocker inca.def  tref DEFAULT
216    fi
217
218    if [  X${inca_UserChoices_seasalt_corr} = X ] ; then
219    IGCM_comp_modifyDefFile nonblocker inca.def  ss_corr  DEFAULT
220    else
221    IGCM_comp_modifyDefFile nonblocker inca.def  ss_corr ${inca_UserChoices_seasalt_corr}
222    fi
223
224
225
226    # inca.def : choose write frequency for inca_avgr in inca.card
227    if [ ! X${inca_UserChoices_freq_write_chem} = X ] ; then
228        IGCM_comp_modifyDefFile nonblocker inca.def freq_write_chem  ${inca_UserChoices_freq_write_chem}
229    else
230        IGCM_comp_modifyDefFile nonblocker inca.def  freq_write_chem  86400
231    fi
232
233    #inca.def : choose aerosol effect with feedback variable
234    if [ ! X${inca_UserChoices_feedb} = X ] ; then
235        IGCM_comp_modifyDefFile nonblocker inca.def  feedb  ${inca_UserChoices_feedb}
236    else
237        IGCM_comp_modifyDefFile nonblocker inca.def feedb  0
238    fi
239   
240    #inca.def : choose coupled model with orchidee 
241    if [ ! X${inca_UserChoices_CoupOrchInca} = X ]; then
242        IGCM_comp_modifyDefFile nonblocker inca.def CoupOrchInca ${inca_UserChoices_CoupOrchInca}
243    else
244        IGCM_comp_modifyDefFile nonblocker inca.def CoupOrchInca n
245    fi
246
247    #inca.def : choose sedimentation schema
248    if [ ! X${inca_UserChoices_multilayer_sedim} = X ]; then
249        IGCM_comp_modifyDefFile nonblocker inca.def multilayer_sediment ${inca_UserChoices_multilayer_sedim}
250    else
251        IGCM_comp_modifyDefFile nonblocker inca.def multilayer_sediment y
252    fi
253
254    #inca.def : choose calcul interactif des diagnostiques flux chimique ou non 
255    if [ ! X${inca_UserChoices_calcul_flux} = X ]; then
256        IGCM_comp_modifyDefFile nonblocker inca.def calcul_flux ${inca_UserChoices_calcul_flux}
257    else
258        IGCM_comp_modifyDefFile nonblocker inca.def calcul_flux n
259    fi
260
261    #inca.def : choose aircraft emission
262    if [ ! X${inca_UserChoices_flag_plane} = X ]; then
263        IGCM_comp_modifyDefFile nonblocker inca.def flag_plane ${inca_UserChoices_flag_plane}
264    else
265        IGCM_comp_modifyDefFile nonblocker inca.def flag_plane 0
266    fi
267   
268    #inca.def : choose time interpolation for sflx.nc
269    if [ ! X${inca_UserChoices_emi_interp_time} = X ]; then
270        IGCM_comp_modifyDefFile nonblocker inca.def emi_interp_time ${inca_UserChoices_emi_interp_time}
271    else
272        IGCM_comp_modifyDefFile nonblocker inca.def emi_interp_time 1
273    fi
274
275
276
277    #inca.def : choose which xml will be use (with group or no = cmip files)
278    if [ X${cmip_xml} = Xy ] ; then
279       
280        IGCM_comp_modifyDefFile nonblocker inca.def  cmip_xml  y
281    else
282        IGCM_comp_modifyDefFile nonblocker inca.def  cmip_xml  n
283    fi
284       
285
286
287    # Add include of INCA context in iodef.xml
288    # In iodef.xml add on next line after "COMPONENT CONTEXT"
289    #  <context id="inca" src="./context_inca.xml"/>
290    echo '<context id="inca" src="./context_inca.xml"/>' > add.tmp
291    cp iodef.xml iodef.xml.tmp
292    sed -e "/COMPONENT CONTEXT/r add.tmp" \
293        iodef.xml.tmp > iodef.xml
294    rm iodef.xml.tmp add.tmp
295
296
297    # Add LongName as global attribute in XIOS output files (if LongName is not empty)
298    if [ ! "X${config_UserChoices_LongName}" = "X" ] ; then
299        listfile=$(ls file_def*inca.xml)
300        echo "<variable id=\"LongName\" type=\"string\">${config_UserChoices_LongName}</variable>" > add.tmp
301        for file in ${listfile}
302        do
303            cp ${file} ${file}.tmp
304            sed -e "/<file id/r add.tmp" \
305                ${file}.tmp > ${file}
306            rm ${file}.tmp
307        done
308        rm add.tmp
309    fi
310
311    IGCM_debug_PopStack "CHM_Update"
312}
313
314#-----------------------------------------------------------------
315function CHM_Finalize
316{
317    IGCM_debug_PushStack "CHM_Finalize"
318
319    echo FINALIZE CHM !!!
320#
321#    IGCM_sys_Mkdir ${R_OUT_EXE}
322#    cd ${MODIPSL}
323#    tar cf src_${config_UserChoices_JobName}.tar  modeles
324#    IGCM_sys_Mv src_${config_UserChoices_JobName}.tar ${R_OUT_EXE}/.
325#    cd -
326#
327
328    IGCM_debug_PopStack "CHM_Finalize"
329}
Note: See TracBrowser for help on using the repository browser.