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

Last change on this file since 3159 was 3159, checked in by acosce, 7 years ago

remove inca_common.nc file in output - Add the possibility to manage the writefrequency for inca from config.card

File size: 7.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    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    echo 'resol chimie', $RESOL_CHM
27
28    [ -f ${SUBMIT_DIR}/../.chimie ] && eval $(grep CHEM ${SUBMIT_DIR}/../.chimie) 
29    INCA_sed_replace ${SUBMIT_DIR}/config.card \${CHEM} ${CHEM}
30    echo "INCA Tag : LMDZ-INCA" ${config_UserChoices_TagName}
31
32    ##- LMDZ physics version
33    ##  Read LMDZ_Physics option in lmdz.card, if not present take default value AP (old physics)
34    if [ ! X${lmdz_UserChoices_LMDZ_Physics} = X ] ; then
35        LMDZ_Physics=${lmdz_UserChoices_LMDZ_Physics}
36    else
37        LMDZ_Physics=AP
38    fi
39    echo LMDZ physics version : ${LMDZ_Physics}
40
41
42    for frequency in ${config_CHM_WriteFrequency} ; do
43        case ${frequency} in
44            1M|1m) freq_output=1mo ;;
45        esac
46        case ${frequency} in
47            1D|1d) freq_output=1d ;;
48        esac
49    done
50
51
52
53    IGCM_debug_PopStack "CHM_Initialize"
54}
55
56#-----------------------------------------------------------------
57function CHM_Update
58{
59    IGCM_debug_PushStack "CHM_Update"
60
61    case ${CHEM} in
62        AER)
63            if [ X${LMDZ_Physics} = X"AP" ] ; then
64                IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
65            else
66                IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
67            fi
68        ;;
69        DUSS)
70            if [ X${LMDZ_Physics} = X"AP" ] ; then
71                IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
72            else
73                IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
74            fi
75        ;;
76        NMHC) 
77        IGCM_comp_modifyDefFile nonblocker run.def config_inca chem
78        ;;
79        NMHC_AER)
80            if [ X${LMDZ_Physics} = X"AP" ] ; then
81                IGCM_comp_modifyDefFile nonblocker run.def config_inca aero
82            else
83                IGCM_comp_modifyDefFile nonblocker run.def config_inca aeNP
84            fi
85        ;;
86        GES)
87        IGCM_comp_modifyDefFile nonblocker run.def config_inca chem
88        esac
89
90
91    # choose if we want daily or monthly output in inca
92    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml forcage     output_freq ${freq_output}
93    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml aero        output_freq ${freq_output}
94    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml chemistry   output_freq ${freq_output}
95    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml emissions   output_freq ${freq_output}
96    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml species     output_freq ${freq_output}
97    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml dvel        output_freq ${freq_output}
98    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml washout     output_freq ${freq_output}
99    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml reacflux    output_freq ${freq_output}
100    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml invariants  output_freq ${freq_output}
101    IGCM_comp_modifyXmlFile nonblocker file_def_inca.xml vegetation  output_freq ${freq_output}
102
103
104    # inca.def : Activate reading of 10m wind in files if LMDZ_10m_winds=n in inca.card
105    if [ ! X${inca_UserChoices_LMDZ_10m_winds} = X ] ; then
106        IGCM_comp_modifyDefFile nonblocker inca.def LMDZ_10m_winds  ${inca_UserChoices_LMDZ_10m_winds}
107    else
108        IGCM_comp_modifyDefFile nonblocker inca.def LMDZ_10m_winds  n
109    fi
110
111    # inca.def : choose write frequency for inca_avgr in inca.card
112    if [ ! X${inca_UserChoices_freq_write_chem} = X ] ; then
113        IGCM_comp_modifyDefFile nonblocker inca.def freq_write_chem  ${inca_UserChoices_freq_write_chem}
114    else
115        IGCM_comp_modifyDefFile nonblocker inca.def  freq_write_chem  86400
116    fi
117
118    #inca.def : choose aerosol effect with feedback variable
119    if [ ! X${inca_UserChoices_feedb} = X ] ; then
120        IGCM_comp_modifyDefFile nonblocker inca.def  feedb  ${inca_UserChoices_feedb}
121    else
122        IGCM_comp_modifyDefFile nonblocker inca.def feedb  0
123    fi
124   
125    #inca.def : choose coupled model with orchidee 
126    if [ ! X${inca_UserChoices_CoupOrchInca} = X ]; then
127        IGCM_comp_modifyDefFile nonblocker inca.def CoupOrchInca ${inca_UserChoices_CoupOrchInca}
128    else
129        IGCM_comp_modifyDefFile nonblocker inca.def CoupOrchInca n
130    fi
131
132    #inca.def : choose sedimentation schema
133    if [ ! X${inca_UserChoices_multilayer_sedim} = X ]; then
134        IGCM_comp_modifyDefFile nonblocker inca.def multilayer_sediment ${inca_UserChoices_multilayer_sedim}
135    else
136        IGCM_comp_modifyDefFile nonblocker inca.def multilayer_sediment y
137    fi
138
139    #inca.def : choose calcul interactif des diagnostiques flux chimique ou non 
140    if [ ! X${inca_UserChoices_calcul_flux} = X ]; then
141        IGCM_comp_modifyDefFile nonblocker inca.def calcul_flux ${inca_UserChoices_calcul_flux}
142    else
143        IGCM_comp_modifyDefFile nonblocker inca.def calcul_flux n
144    fi
145
146    #inca.def : choose output library
147    if [  X${inca_UserChoices_XIOS} = Xy ] ; then
148        IGCM_comp_modifyDefFile nonblocker inca.def  XIOS_INCA_OK  y
149    else
150        IGCM_comp_modifyDefFile nonblocker inca.def  XIOS_INCA_OK n
151    fi
152
153    if [  X${inca_UserChoices_IOIPSL} = Xy ] ; then
154        IGCM_comp_modifyDefFile nonblocker inca.def  IOIPSL_INCA_OK  y
155    else
156        IGCM_comp_modifyDefFile nonblocker inca.def  IOIPSL_INCA_OK n
157    fi
158
159
160    if [  X${inca_UserChoices_10m_winds_method} = X ] ; then
161    IGCM_comp_modifyDefFile nonblocker inca.def  10m_winds_method  threshold
162    else
163    IGCM_comp_modifyDefFile nonblocker inca.def  10m_winds_method ${inca_UserChoices_10m_winds_method}
164    fi
165
166
167
168    if [ X${inca_UserChoices_XIOS}  = Xy ] ; then
169    # Add include of INCA context in iodef.xml
170    # In iodef.xml add on next line after "COMPONENT CONTEXT"
171    #  <context id="inca" src="./context_inca.xml"/>
172        echo '<context id="inca" src="./context_inca.xml"/>' > add.tmp
173        cp iodef.xml iodef.xml.tmp
174        sed -e "/COMPONENT CONTEXT/r add.tmp" \
175            iodef.xml.tmp > iodef.xml
176        rm iodef.xml.tmp add.tmp
177    fi
178
179    # Add LongName as global attribute in XIOS output files (if LongName is not empty)
180    if [ ! "X${config_UserChoices_LongName}" = "X" ] ; then
181        listfile=$(ls file_def*inca.xml)
182        echo "<variable id=\"LongName\" type=\"string\">${config_UserChoices_LongName}</variable>" > add.tmp
183        for file in ${listfile}
184        do
185            cp ${file} ${file}.tmp
186            sed -e "/<file id/r add.tmp" \
187                ${file}.tmp > ${file}
188            rm ${file}.tmp
189        done
190        rm add.tmp
191    fi
192
193    IGCM_debug_PopStack "CHM_Update"
194}
195
196#-----------------------------------------------------------------
197function CHM_Finalize
198{
199    IGCM_debug_PushStack "CHM_Finalize"
200
201    echo FINALIZE CHM !!!
202#
203#    IGCM_sys_Mkdir ${R_OUT_EXE}
204#    cd ${MODIPSL}
205#    tar cf src_${config_UserChoices_JobName}.tar  modeles
206#    IGCM_sys_Mv src_${config_UserChoices_JobName}.tar ${R_OUT_EXE}/.
207#    cd -
208#
209
210    IGCM_debug_PopStack "CHM_Finalize"
211}
Note: See TracBrowser for help on using the repository browser.