source: CONFIG/UNIFORM/v6/IPSLCM5A2CHT.2/GENERAL/DRIVER/inca.driver @ 6046

Last change on this file since 6046 was 6046, checked in by acosce, 2 years ago

modifications to run paleo simulation (mosaic) with IPSLCM5A2CHT configuration and v6.2 compilation

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