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