SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
default_assim.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE default_assim(OASSIM,HASSIM,HASSIM_ISBA,KPRINTLEV, &
7  oarome,oecsst,oaesst,oaesnm, &
8  oaladsurf,oread_sst_from_file, &
9  hfile_format_sst,oextrap_sea, &
10  oextrap_water,oextrap_nature, &
11  owatertg2,kboutput,kechgu,prclimca, &
12  prclisst,psigh2mo,psigt2mo,psigwgo, &
13  psigwgb,psigw2b,oobswg,oobs2m,oimveg, &
14  psprecip2,prthr_qc,psigwgo_max, &
15  prscal_jac,oprt,osim,obev,obfixed, &
16  kobstype,oobsheader,hfile_format_obs,oobsnat,&
17  hfile_format_fg,hfile_format_lsm, &
18  hfile_format_clim,perrobs_m,pqcobs_m, &
19  knco,kivar,kvar,hvar_m,hprefix_m, &
20  psigma_m,ptprt_m,kncv,pscale_q, &
21  pscale_qlai,hbio,hprefix_bio,palph, &
22  kens,kie,pinfl_m,paddinfl_m, passim_winh, &
23  paddtimecorr_m,oens_gen,opb_correlations, &
24  operturbation_run,obias_correction, &
25  oenkf,odenkf,htest)
26 ! ########################################################################
27 !
28 !!**** *DEFAULT_ISBA* - routine to set default values for the configuration for ISBA assimilation scheme
29 !!
30 !! PURPOSE
31 !! -------
32 !!
33 !!** METHOD
34 !! ------
35 !!
36 !! EXTERNAL
37 !! --------
38 !!
39 !!
40 !! IMPLICIT ARGUMENTS
41 !! ------------------
42 !!
43 !! REFERENCE
44 !! ---------
45 !!
46 !!
47 !! AUTHOR
48 !! ------
49 !! L. Jarlan *Meteo France*
50 !!
51 !! MODIFICATIONS
52 !! -------------
53 !! Original 02/2005
54 !-------------------------------------------------------------------------------
55 !
56 !* 0. DECLARATIONS
57 ! ------------
58 !
59 !
60 USE yomhook ,ONLY : lhook, dr_hook
61 USE parkind1 ,ONLY : jprb
62 !
63 USE modd_assim, ONLY : nobsmax, nvarmax
64 !
65 IMPLICIT NONE
66 !
67 !* 0.1 Declarations of arguments
68 ! -------------------------
69 LOGICAL, INTENT(OUT) :: oassim ! assimilation or not
70  CHARACTER(LEN=5), INTENT(OUT) :: hassim ! type of corrections PLUS/2DVAR
71  CHARACTER(LEN=5), INTENT(OUT) :: hassim_isba
72 INTEGER, INTENT(OUT) :: kprintlev
73 LOGICAL, INTENT(OUT) :: oarome
74 LOGICAL, INTENT(OUT) :: oecsst
75 LOGICAL, INTENT(OUT) :: oaesst
76 LOGICAL, INTENT(OUT) :: oaesnm
77 LOGICAL, INTENT(OUT) :: oaladsurf
78 LOGICAL, INTENT(OUT) :: oread_sst_from_file
79  CHARACTER(LEN=6), INTENT(OUT) :: hfile_format_sst
80 LOGICAL, INTENT(OUT) :: oextrap_sea
81 LOGICAL, INTENT(OUT) :: oextrap_water
82 LOGICAL, INTENT(OUT) :: oextrap_nature
83 LOGICAL, INTENT(OUT) :: owatertg2
84 INTEGER, INTENT(OUT) :: kboutput
85 !
86 INTEGER, INTENT(OUT) :: kechgu
87 REAL, INTENT(OUT) :: prclimca
88 REAL, INTENT(OUT) :: prclisst
89 REAL, INTENT(OUT) :: psigh2mo
90 REAL, INTENT(OUT) :: psigt2mo
91 REAL, INTENT(OUT) :: psigwgo
92 REAL, INTENT(OUT) :: psigwgb
93 REAL, INTENT(OUT) :: psigw2b
94 LOGICAL, INTENT(OUT) :: oobswg
95 LOGICAL, INTENT(OUT) :: oobs2m
96 LOGICAL, INTENT(OUT) :: oimveg
97 REAL, INTENT(OUT) :: psprecip2
98 REAL, INTENT(OUT) :: prthr_qc
99 REAL, INTENT(OUT) :: psigwgo_max
100 REAL, INTENT(OUT) :: prscal_jac
101 !
102 LOGICAL, INTENT(OUT) :: oprt
103 LOGICAL, INTENT(OUT) :: osim
104 LOGICAL, INTENT(OUT) :: obev
105 LOGICAL, INTENT(OUT) :: obfixed
106 !
107 INTEGER, INTENT(OUT) :: kobstype
108 LOGICAL, INTENT(OUT) :: oobsheader
109  CHARACTER(LEN=6), INTENT(OUT) :: hfile_format_obs
110  CHARACTER(LEN=6), INTENT(OUT) :: hfile_format_fg
111  CHARACTER(LEN=6), INTENT(OUT) :: hfile_format_lsm
112  CHARACTER(LEN=6), INTENT(OUT) :: hfile_format_clim
113 REAL, DIMENSION(NOBSMAX), INTENT(OUT) :: perrobs_m
114 REAL, DIMENSION(NOBSMAX), INTENT(OUT) :: pqcobs_m
115 INTEGER, DIMENSION(NOBSMAX), INTENT(OUT) :: knco
116 LOGICAL, INTENT(OUT) :: oobsnat
117 !
118 INTEGER, INTENT(OUT) :: kivar
119 INTEGER, INTENT(OUT) :: kvar
120  CHARACTER(LEN=3), DIMENSION(NVARMAX), INTENT(OUT) :: hvar_m
121  CHARACTER(LEN=100), DIMENSION(NVARMAX), INTENT(OUT) :: hprefix_m
122 REAL, DIMENSION(NVARMAX), INTENT(OUT) :: psigma_m
123 REAL, DIMENSION(NVARMAX), INTENT(OUT) :: ptprt_m
124 INTEGER, DIMENSION(NVARMAX), INTENT(OUT) :: kncv
125 REAL, INTENT(OUT) :: pscale_q
126 REAL, INTENT(OUT) :: pscale_qlai
127  CHARACTER(LEN=12), INTENT(OUT) :: hbio
128  CHARACTER(LEN=100), INTENT(OUT) :: hprefix_bio
129 REAL, DIMENSION(12), INTENT(OUT) :: palph
130 !
131 INTEGER, INTENT(OUT) :: kens
132 INTEGER, INTENT(OUT) :: kie
133 REAL, INTENT(OUT) :: passim_winh
134 REAL, DIMENSION(NVARMAX),INTENT(OUT) :: pinfl_m
135 REAL, DIMENSION(NVARMAX),INTENT(OUT) :: paddinfl_m
136 REAL, DIMENSION(NVARMAX),INTENT(OUT) :: paddtimecorr_m
137 LOGICAL, INTENT(OUT) :: oenkf
138 LOGICAL, INTENT(OUT) :: odenkf
139 LOGICAL, INTENT(OUT) :: oens_gen
140 LOGICAL, INTENT(OUT) :: opb_correlations
141 LOGICAL, INTENT(OUT) :: operturbation_run
142 LOGICAL, INTENT(OUT) :: obias_correction
143  CHARACTER(LEN=2), INTENT(IN) :: htest
144 !
145 REAL(KIND=JPRB) :: zhook_handle
146 !
147 !-------------------------------------------------------------------------------
148 IF (lhook) CALL dr_hook('DEFAULT_ASSIM',0,zhook_handle)
149 
150 IF (htest/='OK') THEN
151  CALL abor1_sfx('default_assim: FATAL ERROR DURING ARGUMENT TRANSFER')
152 END IF
153 
154 !
155 oassim = .false.
156 hassim = "PLUS "
157 hassim_isba = "OI"
158 kprintlev = 0
159 oarome = .true.
160 oecsst = .false.
161 oaesst = .false.
162 oaesnm = .false.
163 oaladsurf = .true.
164 oread_sst_from_file=.false.
165 hfile_format_sst = "FA "
166 oextrap_sea = .true.
167 oextrap_water = .true.
168 oextrap_nature = .false.
169 owatertg2 = .false.
170 
171 kboutput = 1
172 !
173 kechgu = 6
174 ! RCLIMCA : coef. de rappel vers la climatologie des champs de surface
175 ! RCLISST : coef. de rappel vers la climatologie de SST
176 !PRCLIMCA=0.045
177 prclimca = 0. ! no climatology relaxation
178 !PRCLISST=0.05 ! as in the original cacsts
179 prclisst = 0.05
180 !*** SIGT2MO : ecart-type d'erreur "d'observation" sur T2m
181 !*** SIGH2MO : ecart-type d'erreur "d'observation" sur Hu2m
182 psigh2mo = 0.1 ! observation error for HU2m
183 psigt2mo = 1.0 ! observation error for T2m
184 psigwgo = 0.06 ! observation error for WG
185 psigwgb = 0.06 ! background error for WG
186 psigw2b = 0.03 ! background error for W2
187 oobswg = .true. ! assimilation of WG
188 oobs2m = .false. ! assimilation of T2M + RH2M (with WG)
189 ! LIMVEG : activation de la limitation a wp > veg*wwilt
190 !*** LIMVEG : si wp >= veg*wwilt
191 oimveg = .true.
192 psprecip2 = 4.0
193 prthr_qc = 3.0
194 psigwgo_max = 6.0 ! maximum acceptable WG obs error (%)
195 prscal_jac = 4.0 ! to modify the "effective" assimilation window
196 !
197 ! Initialization of EKF
198 oprt = .false.
199 osim = .false.
200 obev = .true.
201 obfixed = .false.
202 !
203 kobstype = 2
204 oobsheader = .false.
205 hfile_format_obs = "FA "
206 hfile_format_fg = "FA "
207 hfile_format_lsm = "FA "
208 hfile_format_clim = "FA "
209 perrobs_m = (/1.0,0.1,0.4,0.2,0.1/)
210 pqcobs_m = (/999.,999.,999.,999.,999./)
211 knco = (/1,1,0,0,0/)
212 oobsnat = .false.
213 !
214 kivar = 1
215 kvar = 4
216 hvar_m = (/"WG2","WG1","TG2","TG1","LAI"/)
217 hprefix_m = (/"","","","",""/)
218 psigma_m = (/0.15,0.1,2.0,2.0,0.2/)
219 ptprt_m = (/0.0001,0.0001,0.00001,0.00001,0.001/)
220 kncv = (/1,1,1,1,1/)
221 pscale_q = 0.125
222 pscale_qlai = 0.5
223 hbio = "BIOMA1"
224 hprefix_bio = ""
225 palph = (/0., 0., 0., 0.08203445, 0.07496252, 0.06846970, 0.06771856, 0.09744689, &
226  0.09744689, 0.07164350, 0.17686594, 0.07164350/)
227 !
228 kens = 1
229 kie = 0
230 passim_winh = 24
231 pinfl_m = (/0.,0.,0.,0.,0./)
232 paddinfl_m = (/0.,0.,0.,0.,0./)
233 paddtimecorr_m = (/0.,0.,0.,0.,0./)
234 oenkf = .false.
235 odenkf = .false.
236 oens_gen = .true.
237 opb_correlations = .false.
238 operturbation_run = .false.
239 obias_correction = .false.
240 !
241 IF (lhook) CALL dr_hook('DEFAULT_ASSIM',1,zhook_handle)
242 !
243 END SUBROUTINE default_assim
subroutine default_assim(OASSIM, HASSIM, HASSIM_ISBA, KPRINTLEV, OAROME, OECSST, OAESST, OAESNM, OALADSURF, OREAD_SST_FROM_FILE, HFILE_FORMAT_SST, OEXTRAP_SEA, OEXTRAP_WATER, OEXTRAP_NATURE, OWATERTG2, KBOUTPUT, KECHGU, PRCLIMCA, PRCLISST, PSIGH2MO, PSIGT2MO, PSIGWGO, PSIGWGB, PSIGW2B, OOBSWG, OOBS2M, OIMVEG, PSPRECIP2, PRTHR_QC, PSIGWGO_MAX, PRSCAL_JAC, OPRT, OSIM, OBEV, OBFIXED, KOBSTYPE, OOBSHEADER, HFILE_FORMAT_OBS, OOBSNAT, HFILE_FORMAT_FG, HFILE_FORMAT_LSM, HFILE_FORMAT_CLIM, PERROBS_M, PQCOBS_M, KNCO, KIVAR, KVAR, HVAR_M, HPREFIX_M, PSIGMA_M, PTPRT_M, KNCV, PSCALE_Q, PSCALE_QLAI, HBIO, HPREFIX_BIO, PALPH, KENS, KIE, PINFL_M, PADDINFL_M, PASSIM_WINH, PADDTIMECORR_M, OENS_GEN, OPB_CORRELATIONS, OPERTURBATION_RUN, OBIAS_CORRECTION, OENKF, ODENKF, HTEST)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6