source: CONFIG/UNIFORM/v6/IPSLCM6.2/GENERAL/DRIVER/inca.driver @ 4918

Last change on this file since 4918 was 4636, checked in by acosce, 5 years ago

Add files required by configuration IPSLESM/AER

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