From d38c92739b4def65524207cf5dfd83205482ad67 Mon Sep 17 00:00:00 2001 From: Andrew Collard Date: Tue, 22 Jul 2025 22:08:38 +0000 Subject: [PATCH 1/8] Fix ATMS timing and obs errors for windborne and saildrone --- doc/EnKF_user_guide/.gitignore | 10 - doc/EnKF_user_guide/README | 24 - doc/EnKF_user_guide/ack.tex | 19 - doc/EnKF_user_guide/dtcdoc.sty | 155 -- doc/EnKF_user_guide/enkf_appendix_A.tex | 175 -- doc/EnKF_user_guide/enkf_ch1.tex | 141 - doc/EnKF_user_guide/enkf_ch2.tex | 152 -- doc/EnKF_user_guide/enkf_ch3.tex | 782 ------ doc/EnKF_user_guide/enkf_ch4.tex | 803 ------ doc/EnKF_user_guide/enkf_ch5.tex | 1689 ------------ doc/EnKF_user_guide/enkf_ch6.tex | 369 --- doc/EnKF_user_guide/forward.tex | 47 - doc/EnKF_user_guide/images/DTClogo.png | Bin 25953 -> 0 bytes doc/EnKF_user_guide/images/ch5_figure1.jpg | Bin 126784 -> 0 bytes doc/EnKF_user_guide/images/enkfbanner.jpg | Bin 21558 -> 0 bytes doc/EnKF_user_guide/images/enkfbanner.pdf | Bin 13235 -> 0 bytes doc/EnKF_user_guide/images/enkfbanner.tiff | Bin 16352 -> 0 bytes doc/EnKF_user_guide/main.tex | 46 - doc/EnKF_user_guide/preface.tex | 28 - doc/EnKF_user_guide/references.bib | 137 - doc/EnKF_user_guide/title.tex | 38 - doc/GSI_user_guide/.gitignore | 10 - doc/GSI_user_guide/README | 24 - doc/GSI_user_guide/ack.tex | 30 - doc/GSI_user_guide/dtcdoc.sty | 155 -- doc/GSI_user_guide/forward.tex | 66 - doc/GSI_user_guide/gsi_appendixA.tex | 382 --- doc/GSI_user_guide/gsi_appendixB.tex | 93 - doc/GSI_user_guide/gsi_appendixC.tex | 1059 -------- doc/GSI_user_guide/gsi_ch1.tex | 184 -- doc/GSI_user_guide/gsi_ch2.tex | 593 ----- doc/GSI_user_guide/gsi_ch3.tex | 1578 ------------ doc/GSI_user_guide/gsi_ch4.tex | 2281 ----------------- doc/GSI_user_guide/gsi_ch5.tex | 1168 --------- doc/GSI_user_guide/gsi_ch6.tex | 616 ----- doc/GSI_user_guide/images/CostGrad.png | Bin 46085 -> 0 bytes doc/GSI_user_guide/images/CostGrad_Ch5.png | Bin 57026 -> 0 bytes doc/GSI_user_guide/images/DTClogo.png | Bin 25953 -> 0 bytes doc/GSI_user_guide/images/GSIbanner.png | Bin 22520 -> 0 bytes doc/GSI_user_guide/images/SingleObs.png | Bin 112686 -> 0 bytes doc/GSI_user_guide/images/ch4_fig1.pdf | Bin 87045 -> 0 bytes doc/GSI_user_guide/images/ch4_fig2.pdf | Bin 29618 -> 0 bytes doc/GSI_user_guide/images/ch5_fig1.pdf | Bin 44499 -> 0 bytes .../images/ch5_fig_analysisincrement.pdf | Bin 144701 -> 0 bytes .../ch5_fig_analysisincrement_prepbufr.pdf | Bin 202878 -> 0 bytes .../ch5_fig_analysisincrement_prepbufr2.pdf | Bin 161238 -> 0 bytes ...5_fig_analysisincrement_prepbufr_lvl48.pdf | Bin 125663 -> 0 bytes .../images/ch5_fig_costfunct.pdf | Bin 59591 -> 0 bytes .../images/ch6_chem_inc_seas1_bc1.png | Bin 442005 -> 0 bytes doc/GSI_user_guide/images/gsibanner.pdf | Bin 19494 -> 0 bytes doc/GSI_user_guide/images/increments.png | Bin 175987 -> 0 bytes doc/GSI_user_guide/images/increments_bufr.png | Bin 156715 -> 0 bytes doc/GSI_user_guide/images/increments_rad.png | Bin 240155 -> 0 bytes doc/GSI_user_guide/images/increments_rad2.png | Bin 192261 -> 0 bytes doc/GSI_user_guide/images/landmask.png | Bin 6612 -> 0 bytes doc/GSI_user_guide/images/terrain.png | Bin 37393 -> 0 bytes doc/GSI_user_guide/main.tex | 73 - doc/GSI_user_guide/references.bib | 137 - doc/GSI_user_guide/title.tex | 37 - doc/README.discover | 36 - doc/Release_Notes.fv3gfs_da.v15.0.0.txt | 303 --- doc/Release_Notes.gfsda.v16.0.0.txt | 378 --- regression/.gitignore | 1 - regression/CMakeLists.txt | 84 - regression/global_4denvar.sh | 329 --- regression/global_enkf.sh | 184 -- regression/hafs_3denvar_hybens.sh | 451 ---- regression/hafs_4denvar_glbens.sh | 451 ---- regression/multi_regression.sh | 29 - regression/regression_driver.sh | 76 - regression/regression_namelists.sh | 1099 -------- regression/regression_namelists_db.sh | 819 ------ regression/regression_nl_update.sh | 22 - regression/regression_param.sh | 365 --- regression/regression_test.sh | 564 ---- regression/regression_test_enkf.sh | 461 ---- regression/regression_var.sh | 270 -- regression/regression_wait.sh | 32 - regression/rrfs_3denvar_rdasens.sh | 418 --- regression/rrfs_enkf_conv.sh | 223 -- regression/rtma.sh | 420 --- src/GSD/CMakeLists.txt | 2 - src/GSD/gsdcloud/ARPS_cldLib.f90 | 1405 ---------- src/GSD/gsdcloud/BackgroundCld.f90 | 315 --- src/GSD/gsdcloud/BckgrndCC.f90 | 158 -- src/GSD/gsdcloud/CMakeLists.txt | 108 - src/GSD/gsdcloud/PrecipMxr_radar.f90 | 213 -- src/GSD/gsdcloud/PrecipType.f90 | 118 - src/GSD/gsdcloud/TempAdjust.f90 | 199 -- src/GSD/gsdcloud/adaslib.f90 | 474 ---- src/GSD/gsdcloud/build_missing_REFcone.f90 | 245 -- src/GSD/gsdcloud/cloudCover_NESDIS.f90 | 713 ------ src/GSD/gsdcloud/cloudCover_Surface.f90 | 425 --- src/GSD/gsdcloud/cloudCover_radar.f90 | 131 - src/GSD/gsdcloud/cloudLWC.f90 | 419 --- src/GSD/gsdcloud/cloudLayers.f90 | 167 -- src/GSD/gsdcloud/cloudType.f90 | 147 -- src/GSD/gsdcloud/cloud_saturation.f90 | 335 --- src/GSD/gsdcloud/cmake/PackageConfig.cmake.in | 19 - src/GSD/gsdcloud/configure | 93 - src/GSD/gsdcloud/constants.f90 | 324 --- src/GSD/gsdcloud/convert_lghtn2ref.f90 | 197 -- src/GSD/gsdcloud/get_sfm_1d_gnl.f90 | 384 --- src/GSD/gsdcloud/hydro_mxr_thompson.f90 | 196 -- src/GSD/gsdcloud/kinds.f90 | 105 - src/GSD/gsdcloud/make.dependencies | 33 - src/GSD/gsdcloud/make.filelist | 35 - src/GSD/gsdcloud/map_ctp.f90 | 291 --- src/GSD/gsdcloud/map_ctp_lar.f90 | 258 -- src/GSD/gsdcloud/mthermo.f90 | 229 -- src/GSD/gsdcloud/pbl_height.f90 | 103 - src/GSD/gsdcloud/pcp_mxr_ARPSlib.f90 | 509 ---- src/GSD/gsdcloud/radar_ref2tten.f90 | 334 --- src/GSD/gsdcloud/read_Lightning_cld.f90 | 93 - src/GSD/gsdcloud/read_NESDIS.f90 | 124 - src/GSD/gsdcloud/read_Surface.f90 | 240 -- src/GSD/gsdcloud/read_nasalarc_cld.f90 | 301 --- src/GSD/gsdcloud/read_radar_ref.f90 | 106 - src/GSD/gsdcloud/smooth.f90 | 98 - src/GSD/gsdcloud/vinterp_radar_ref.f90 | 142 - src/GSD/gsdcloud4nmmb/ARPS_cldLib.f90 | 1405 ---------- src/GSD/gsdcloud4nmmb/BackgroundCld.f90 | 193 -- src/GSD/gsdcloud4nmmb/BckgrndCC.f90 | 159 -- src/GSD/gsdcloud4nmmb/CheckCld.f90 | 292 --- src/GSD/gsdcloud4nmmb/PrecipMxr_radar.f90 | 167 -- src/GSD/gsdcloud4nmmb/PrecipType.f90 | 118 - src/GSD/gsdcloud4nmmb/TempAdjust.f90 | 199 -- src/GSD/gsdcloud4nmmb/adaslib.f90 | 474 ---- .../gsdcloud4nmmb/build_missing_REFcone.f90 | 245 -- src/GSD/gsdcloud4nmmb/cloudCover_NESDIS.f90 | 697 ----- src/GSD/gsdcloud4nmmb/cloudCover_Surface.f90 | 411 --- src/GSD/gsdcloud4nmmb/cloudCover_radar.f90 | 137 - src/GSD/gsdcloud4nmmb/cloudLWC.f90 | 418 --- src/GSD/gsdcloud4nmmb/cloudLayers.f90 | 167 -- src/GSD/gsdcloud4nmmb/cloudType.f90 | 147 -- src/GSD/gsdcloud4nmmb/cloud_saturation.f90 | 315 --- src/GSD/gsdcloud4nmmb/constants.f90 | 324 --- src/GSD/gsdcloud4nmmb/convert_lghtn2ref.f90 | 245 -- .../gsdcloud4nmmb/convert_lghtn2ref_nmmb.f90 | 211 -- src/GSD/gsdcloud4nmmb/diff.sh | 11 - src/GSD/gsdcloud4nmmb/get_sfm_1d_gnl.f90 | 384 --- src/GSD/gsdcloud4nmmb/hydro_mxr_thompson.f90 | 198 -- src/GSD/gsdcloud4nmmb/make.dependencies | 35 - src/GSD/gsdcloud4nmmb/make.filelist | 36 - src/GSD/gsdcloud4nmmb/makefile | 36 - src/GSD/gsdcloud4nmmb/map_ctp.f90 | 291 --- src/GSD/gsdcloud4nmmb/map_ctp_lar.f90 | 256 -- src/GSD/gsdcloud4nmmb/mthermo.f90 | 229 -- src/GSD/gsdcloud4nmmb/pbl_height.f90 | 103 - src/GSD/gsdcloud4nmmb/pcp_mxr_ARPSlib.f90 | 757 ------ src/GSD/gsdcloud4nmmb/radar_ref2tten.f90 | 631 ----- src/GSD/gsdcloud4nmmb/read_Lightning_cld.f90 | 95 - .../gsdcloud4nmmb/read_Lightningbufr_cld.f90 | 109 - src/GSD/gsdcloud4nmmb/read_NESDIS.f90 | 125 - src/GSD/gsdcloud4nmmb/read_Surface.f90 | 251 -- src/GSD/gsdcloud4nmmb/read_nasalarc_cld.f90 | 167 -- src/GSD/gsdcloud4nmmb/read_radar_ref.f90 | 107 - src/GSD/gsdcloud4nmmb/smooth.f90 | 98 - src/GSD/gsdcloud4nmmb/vinterp_radar_ref.f90 | 143 -- src/gsi/read_atms.f90 | 5 + src/gsi/read_gsb.f90 | 14 +- src/gsi/read_saildrone.f90 | 14 +- unit-tests/CMakeLists.txt | 54 - unit-tests/PFUNIT/bin/pFUnitParser.py | 888 ------- unit-tests/PFUNIT/bin/parseDirectiveArgs.py | 77 - unit-tests/PFUNIT/include/GNU.mk | 21 - unit-tests/PFUNIT/include/IBM.mk | 25 - unit-tests/PFUNIT/include/INTEL.mk | 64 - unit-tests/PFUNIT/include/NAG.mk | 31 - unit-tests/PFUNIT/include/PGI.mk | 27 - unit-tests/PFUNIT/include/TestUtil.F90 | 23 - unit-tests/PFUNIT/include/base.mk | 69 - unit-tests/PFUNIT/include/configuration.mk | 6 - unit-tests/PFUNIT/include/driver.F90 | 337 --- unit-tests/PFUNIT/include/extensions.mk | 28 - unit-tests/PFUNIT/pFUnitConfig.cmake | 153 -- unit-tests/PFUNIT/pFUnitConfigVersion.cmake | 11 - unit-tests/data/test_adjoint/anavinfo | 79 - unit-tests/data/test_adjoint/fort.208 | 3 - unit-tests/data/test_adjoint/gsiparm.anl | 141 - unit-tests/data/test_adjoint/pcpinfo | 4 - unit-tests/test_adjoint.pf | 174 -- unit-tests/test_adjoint.pf.old | 318 --- unit-tests/test_read_wrf_mass.pf | 60 - unit-tests/test_read_wrf_nmm.pf | 60 - 185 files changed, 19 insertions(+), 42957 deletions(-) delete mode 100644 doc/EnKF_user_guide/.gitignore delete mode 100644 doc/EnKF_user_guide/README delete mode 100644 doc/EnKF_user_guide/ack.tex delete mode 100644 doc/EnKF_user_guide/dtcdoc.sty delete mode 100644 doc/EnKF_user_guide/enkf_appendix_A.tex delete mode 100644 doc/EnKF_user_guide/enkf_ch1.tex delete mode 100644 doc/EnKF_user_guide/enkf_ch2.tex delete mode 100644 doc/EnKF_user_guide/enkf_ch3.tex delete mode 100644 doc/EnKF_user_guide/enkf_ch4.tex delete mode 100644 doc/EnKF_user_guide/enkf_ch5.tex delete mode 100644 doc/EnKF_user_guide/enkf_ch6.tex delete mode 100644 doc/EnKF_user_guide/forward.tex delete mode 100644 doc/EnKF_user_guide/images/DTClogo.png delete mode 100644 doc/EnKF_user_guide/images/ch5_figure1.jpg delete mode 100644 doc/EnKF_user_guide/images/enkfbanner.jpg delete mode 100644 doc/EnKF_user_guide/images/enkfbanner.pdf delete mode 100644 doc/EnKF_user_guide/images/enkfbanner.tiff delete mode 100644 doc/EnKF_user_guide/main.tex delete mode 100644 doc/EnKF_user_guide/preface.tex delete mode 100644 doc/EnKF_user_guide/references.bib delete mode 100644 doc/EnKF_user_guide/title.tex delete mode 100644 doc/GSI_user_guide/.gitignore delete mode 100644 doc/GSI_user_guide/README delete mode 100644 doc/GSI_user_guide/ack.tex delete mode 100644 doc/GSI_user_guide/dtcdoc.sty delete mode 100644 doc/GSI_user_guide/forward.tex delete mode 100644 doc/GSI_user_guide/gsi_appendixA.tex delete mode 100644 doc/GSI_user_guide/gsi_appendixB.tex delete mode 100644 doc/GSI_user_guide/gsi_appendixC.tex delete mode 100644 doc/GSI_user_guide/gsi_ch1.tex delete mode 100644 doc/GSI_user_guide/gsi_ch2.tex delete mode 100644 doc/GSI_user_guide/gsi_ch3.tex delete mode 100644 doc/GSI_user_guide/gsi_ch4.tex delete mode 100644 doc/GSI_user_guide/gsi_ch5.tex delete mode 100644 doc/GSI_user_guide/gsi_ch6.tex delete mode 100644 doc/GSI_user_guide/images/CostGrad.png delete mode 100644 doc/GSI_user_guide/images/CostGrad_Ch5.png delete mode 100644 doc/GSI_user_guide/images/DTClogo.png delete mode 100644 doc/GSI_user_guide/images/GSIbanner.png delete mode 100644 doc/GSI_user_guide/images/SingleObs.png delete mode 100644 doc/GSI_user_guide/images/ch4_fig1.pdf delete mode 100644 doc/GSI_user_guide/images/ch4_fig2.pdf delete mode 100644 doc/GSI_user_guide/images/ch5_fig1.pdf delete mode 100644 doc/GSI_user_guide/images/ch5_fig_analysisincrement.pdf delete mode 100644 doc/GSI_user_guide/images/ch5_fig_analysisincrement_prepbufr.pdf delete mode 100644 doc/GSI_user_guide/images/ch5_fig_analysisincrement_prepbufr2.pdf delete mode 100644 doc/GSI_user_guide/images/ch5_fig_analysisincrement_prepbufr_lvl48.pdf delete mode 100644 doc/GSI_user_guide/images/ch5_fig_costfunct.pdf delete mode 100644 doc/GSI_user_guide/images/ch6_chem_inc_seas1_bc1.png delete mode 100644 doc/GSI_user_guide/images/gsibanner.pdf delete mode 100644 doc/GSI_user_guide/images/increments.png delete mode 100644 doc/GSI_user_guide/images/increments_bufr.png delete mode 100644 doc/GSI_user_guide/images/increments_rad.png delete mode 100644 doc/GSI_user_guide/images/increments_rad2.png delete mode 100644 doc/GSI_user_guide/images/landmask.png delete mode 100644 doc/GSI_user_guide/images/terrain.png delete mode 100644 doc/GSI_user_guide/main.tex delete mode 100644 doc/GSI_user_guide/references.bib delete mode 100644 doc/GSI_user_guide/title.tex delete mode 100644 doc/README.discover delete mode 100644 doc/Release_Notes.fv3gfs_da.v15.0.0.txt delete mode 100644 doc/Release_Notes.gfsda.v16.0.0.txt delete mode 100644 regression/.gitignore delete mode 100644 regression/CMakeLists.txt delete mode 100755 regression/global_4denvar.sh delete mode 100755 regression/global_enkf.sh delete mode 100755 regression/hafs_3denvar_hybens.sh delete mode 100755 regression/hafs_4denvar_glbens.sh delete mode 100755 regression/multi_regression.sh delete mode 100755 regression/regression_driver.sh delete mode 100755 regression/regression_namelists.sh delete mode 100755 regression/regression_namelists_db.sh delete mode 100755 regression/regression_nl_update.sh delete mode 100755 regression/regression_param.sh delete mode 100755 regression/regression_test.sh delete mode 100755 regression/regression_test_enkf.sh delete mode 100755 regression/regression_var.sh delete mode 100755 regression/regression_wait.sh delete mode 100755 regression/rrfs_3denvar_rdasens.sh delete mode 100755 regression/rrfs_enkf_conv.sh delete mode 100755 regression/rtma.sh delete mode 100644 src/GSD/CMakeLists.txt delete mode 100644 src/GSD/gsdcloud/ARPS_cldLib.f90 delete mode 100644 src/GSD/gsdcloud/BackgroundCld.f90 delete mode 100644 src/GSD/gsdcloud/BckgrndCC.f90 delete mode 100644 src/GSD/gsdcloud/CMakeLists.txt delete mode 100644 src/GSD/gsdcloud/PrecipMxr_radar.f90 delete mode 100644 src/GSD/gsdcloud/PrecipType.f90 delete mode 100644 src/GSD/gsdcloud/TempAdjust.f90 delete mode 100644 src/GSD/gsdcloud/adaslib.f90 delete mode 100644 src/GSD/gsdcloud/build_missing_REFcone.f90 delete mode 100644 src/GSD/gsdcloud/cloudCover_NESDIS.f90 delete mode 100644 src/GSD/gsdcloud/cloudCover_Surface.f90 delete mode 100644 src/GSD/gsdcloud/cloudCover_radar.f90 delete mode 100644 src/GSD/gsdcloud/cloudLWC.f90 delete mode 100644 src/GSD/gsdcloud/cloudLayers.f90 delete mode 100644 src/GSD/gsdcloud/cloudType.f90 delete mode 100644 src/GSD/gsdcloud/cloud_saturation.f90 delete mode 100644 src/GSD/gsdcloud/cmake/PackageConfig.cmake.in delete mode 100755 src/GSD/gsdcloud/configure delete mode 100755 src/GSD/gsdcloud/constants.f90 delete mode 100644 src/GSD/gsdcloud/convert_lghtn2ref.f90 delete mode 100644 src/GSD/gsdcloud/get_sfm_1d_gnl.f90 delete mode 100644 src/GSD/gsdcloud/hydro_mxr_thompson.f90 delete mode 100755 src/GSD/gsdcloud/kinds.f90 delete mode 100644 src/GSD/gsdcloud/make.dependencies delete mode 100644 src/GSD/gsdcloud/make.filelist delete mode 100644 src/GSD/gsdcloud/map_ctp.f90 delete mode 100644 src/GSD/gsdcloud/map_ctp_lar.f90 delete mode 100644 src/GSD/gsdcloud/mthermo.f90 delete mode 100644 src/GSD/gsdcloud/pbl_height.f90 delete mode 100644 src/GSD/gsdcloud/pcp_mxr_ARPSlib.f90 delete mode 100644 src/GSD/gsdcloud/radar_ref2tten.f90 delete mode 100644 src/GSD/gsdcloud/read_Lightning_cld.f90 delete mode 100644 src/GSD/gsdcloud/read_NESDIS.f90 delete mode 100644 src/GSD/gsdcloud/read_Surface.f90 delete mode 100644 src/GSD/gsdcloud/read_nasalarc_cld.f90 delete mode 100644 src/GSD/gsdcloud/read_radar_ref.f90 delete mode 100644 src/GSD/gsdcloud/smooth.f90 delete mode 100644 src/GSD/gsdcloud/vinterp_radar_ref.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/ARPS_cldLib.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/BackgroundCld.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/BckgrndCC.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/CheckCld.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/PrecipMxr_radar.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/PrecipType.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/TempAdjust.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/adaslib.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/build_missing_REFcone.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/cloudCover_NESDIS.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/cloudCover_Surface.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/cloudCover_radar.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/cloudLWC.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/cloudLayers.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/cloudType.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/cloud_saturation.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/constants.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/convert_lghtn2ref.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/convert_lghtn2ref_nmmb.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/diff.sh delete mode 100755 src/GSD/gsdcloud4nmmb/get_sfm_1d_gnl.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/hydro_mxr_thompson.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/make.dependencies delete mode 100755 src/GSD/gsdcloud4nmmb/make.filelist delete mode 100755 src/GSD/gsdcloud4nmmb/makefile delete mode 100755 src/GSD/gsdcloud4nmmb/map_ctp.f90 delete mode 100644 src/GSD/gsdcloud4nmmb/map_ctp_lar.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/mthermo.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/pbl_height.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/pcp_mxr_ARPSlib.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/radar_ref2tten.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/read_Lightning_cld.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/read_Lightningbufr_cld.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/read_NESDIS.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/read_Surface.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/read_nasalarc_cld.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/read_radar_ref.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/smooth.f90 delete mode 100755 src/GSD/gsdcloud4nmmb/vinterp_radar_ref.f90 delete mode 100644 unit-tests/CMakeLists.txt delete mode 100755 unit-tests/PFUNIT/bin/pFUnitParser.py delete mode 100755 unit-tests/PFUNIT/bin/parseDirectiveArgs.py delete mode 100644 unit-tests/PFUNIT/include/GNU.mk delete mode 100644 unit-tests/PFUNIT/include/IBM.mk delete mode 100644 unit-tests/PFUNIT/include/INTEL.mk delete mode 100644 unit-tests/PFUNIT/include/NAG.mk delete mode 100644 unit-tests/PFUNIT/include/PGI.mk delete mode 100644 unit-tests/PFUNIT/include/TestUtil.F90 delete mode 100644 unit-tests/PFUNIT/include/base.mk delete mode 100644 unit-tests/PFUNIT/include/configuration.mk delete mode 100644 unit-tests/PFUNIT/include/driver.F90 delete mode 100644 unit-tests/PFUNIT/include/extensions.mk delete mode 100644 unit-tests/PFUNIT/pFUnitConfig.cmake delete mode 100644 unit-tests/PFUNIT/pFUnitConfigVersion.cmake delete mode 100644 unit-tests/data/test_adjoint/anavinfo delete mode 100644 unit-tests/data/test_adjoint/fort.208 delete mode 100644 unit-tests/data/test_adjoint/gsiparm.anl delete mode 100755 unit-tests/data/test_adjoint/pcpinfo delete mode 100644 unit-tests/test_adjoint.pf delete mode 100644 unit-tests/test_adjoint.pf.old delete mode 100644 unit-tests/test_read_wrf_mass.pf delete mode 100644 unit-tests/test_read_wrf_nmm.pf diff --git a/doc/EnKF_user_guide/.gitignore b/doc/EnKF_user_guide/.gitignore deleted file mode 100644 index 3b4dab087..000000000 --- a/doc/EnKF_user_guide/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -main.aux -main.bbl -main.blg -main.idx -main.log -main.out -main.pdf -main.synctex.gz -main.toc -*.pdf diff --git a/doc/EnKF_user_guide/README b/doc/EnKF_user_guide/README deleted file mode 100644 index 549499b80..000000000 --- a/doc/EnKF_user_guide/README +++ /dev/null @@ -1,24 +0,0 @@ -This directory contains the latex source for creating the enkf user's guide. This document requires -an instillation of latex that supports the CTAN extensions. - -1. Required flavor of LaTex. -Options for the three main platforms. - -Windows: -The most popular choice here is the MiKTEX (http://www.miktex.org) distribution, which lets you easily -manage TEX packages. Many people advise beginners to get the proTEXt bundling of MiKTEX, which lets you -install by using a .pdf file with links so you can read about your options and then click on the right -one. And it includes other components that help you work with your TEX system. - -Unix-type systems, including GNU/Linux: -The best choice here is TEX Live (http://tug.org/texlive/), which contains many packages and programs. -It is freely available over the Internet or on disc; see the web page for details. Note that most Unix -systems have TEX as an installation option so you might already have it or be able to easily get it using -your system administration package management tool: RPM, or DEB, or whatever. - -Mac­in­tosh: -Get the MacTEX (http://tug.org/mactex/) distribution, which is TEX Live with some Mac specific goodies. - -2. Building the user's guide document. -Run LaTex on the file main.tex. It imports organizes each of the individual chapter files. This creates -the document main.pdf. diff --git a/doc/EnKF_user_guide/ack.tex b/doc/EnKF_user_guide/ack.tex deleted file mode 100644 index 7fea57260..000000000 --- a/doc/EnKF_user_guide/ack.tex +++ /dev/null @@ -1,19 +0,0 @@ -\begin{titlepage} -%\BgThispage -%\newgeometry{left=1cm,right=4cm} -\vspace*{0.5cm} -\noindent - -\begin{flushleft} -\textcolor{darkgray}{\LARGE Acknowledgement} -\vspace*{1cm}\par - -We thank the National Oceanic and Atmospheric Administration (NOAA) Office of Oceanic and Atmospheric Research (OAR) for their support of this work. This work is also facilitated by the National Center for Atmospheric Research (NCAR). NCAR is supported by the National Science Foundation (NSF). - -\end{flushleft} -\end{titlepage} -\pagebreak{} - - - - diff --git a/doc/EnKF_user_guide/dtcdoc.sty b/doc/EnKF_user_guide/dtcdoc.sty deleted file mode 100644 index 3e9f2ad25..000000000 --- a/doc/EnKF_user_guide/dtcdoc.sty +++ /dev/null @@ -1,155 +0,0 @@ -\ProvidesPackage{dtcdoc} - -\usepackage[english]{babel} -\usepackage[T1]{fontenc} -\usepackage{textcomp} -\usepackage{color} -\usepackage[automark,nouppercase]{scrpage2} -%\usepackage{bera} -\usepackage{baskervald} -%\usepackage{helvet} -%\usepackage{avant} -%\usepackage{lmodern} -\usepackage{comment} -\usepackage{vwcol} -\usepackage{multicol} -\usepackage{makeidx} -\usepackage{listings} -\usepackage{longtable} -\usepackage{enumerate} -\usepackage{caption} -\usepackage{array} -\usepackage{float} -\usepackage{chngcntr} -\usepackage[a4paper,margin=1.0in,footskip=0.25in]{geometry} -\usepackage{graphicx} -\usepackage{enumitem} -\usepackage{epigraph} -\usepackage{fix-cm} -\usepackage[explicit]{titlesec} -\usepackage[some]{background} -\usepackage{dirtree} -\usepackage{etoolbox} -\usepackage{tikz} -\usetikzlibrary{calc} -\usepackage{hyperref} -\usepackage{amsmath} - -% Colours -\definecolor{white}{rgb}{1.0,1.0,1.0} -\definecolor{lightgray}{rgb}{0.8,0.8,0.8} -\definecolor{gray}{rgb}{0.5,0.5,0.5} -\definecolor{darkgray}{rgb}{0.2,0.2,0.2} -\definecolor{black}{rgb}{0.0,0.0,0.0} -\definecolor{blue}{rgb}{0.2,0.0,1.0} -\definecolor{tpblue}{cmyk}{1,.60,0,.40} - -\hypersetup{ - pdfauthor={}, - pdftitle={Users Guide}, - pdfsubject={}, - pdfkeywords={}, - bookmarksnumbered=true, - % Either of these.. I prefer the 2nd as this means - % the colour of the text in the document overrides - % whatever has been defined as urlcolor. - %colorlinks=true, - %urlcolor=black, - colorlinks=false, - pdfborder={0 0 0} -} - -\KOMAoptions{parskip=full} -%\KOMAoptions{pagestyle=plain} - -% Define a font for the title -\DeclareFixedFont{\bigsf}{T1}{phv}{b}{n}{1.25cm} -% Define a background stripe for the title page -%\backgroundsetup{ -% scale=1, -% angle=0, -% opacity=1, -% contents={\begin{tikzpicture}[remember picture,overlay] -% \path [fill=tpblue] (-0.5\paperwidth,5) rectangle -% (0.5\paperwidth,10); -% \end{tikzpicture}} -%} - -%\titleformat{hcommand}[hshape]{hformat}{hlabel}{hsep}{hbefore}[hafter] -% -% Create chapter marks -\titleformat{\chapter}[display] - {\large\bfseries} - {\hfill - \tikz[remember picture] \node[] (nr) { - \fontsize{120}{70}\selectfont\color{lightgray}\textbf{\thechapter} - }; - \begin{tikzpicture}[overlay,remember picture] - \coordinate (leftborder) at ($(nr)-(100,0)$); - \coordinate (left) at ($(nr.west)-(1.5,0)$); - \draw[line width=0.3em] ($(nr.north east)+(0,1)$) -- - ($(nr.north west)+(0,1)$) -- - (left) -- (leftborder); - \end{tikzpicture} - } - {-2ex} - {\filleft\fontsize{30}{70}\selectfont\textsc{{#1}}} - [\vspace{0ex}] - -\titleformat{\section}[hang] - {\Large\sffamily} - {\thesection} - {0.5em} - {#1} - {\phantomsection} - -\titleformat{\subsection}[hang] - {\Large\sffamily} - {\thesubsection} - {0.5em} - {#1} - {\phantomsection} - -\titleformat{\subsubsection}[hang] - {\Large\sffamily} - {\thesubsection.\alph{subsubsection}} - {0.5em} - {#1} - {\phantomsection} - -\counterwithin{figure}{chapter} -\renewcommand{\figureformat}{\figurename~\thefigure} -\renewcommand{\tableformat}{\tablename~\thetable} -%\renewcommand{\subsubsection}{\thesubsubsection.\alph{subsubsection}} - -%\pagestyle{plain} - -% Commands for writing code -\newcommand{\exec}[1]{% What to type and execute -{\small\fontfamily{qcr}\fontshape{n}\fontseries{bx}\selectfont{#1}}} - -\newcommand{\execout}[1]{% Output on a terminal -{\small\fontfamily{qcr}\fontshape{n}\fontseries{l}\selectfont{#1}}} - -\newcommand{\execsub}[1]{% Variable that needs subsituting -{\small\fontfamily{qcr}\fontshape{sl}\fontseries{m}\selectfont{#1}}} - -\newcommand{\vf}[1]{% Variable in a file -{\fontfamily{cmss}\fontshape{sl}\fontseries{m}\selectfont{#1}}} - -% Create macro's for table font/style -\newcolumntype{+}{>{\global\let\currentrowstyle\relax}} -\newcolumntype{^}{>{\currentrowstyle}} -\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}% - #1\ignorespaces -} - -% Squeeze all the space out of lists -\setlist{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt} - - -% Shorthand degree symbol -\newcommand{\dgr}{$^{\circ}$} -% Change the default font to be Sans Serif -%\renewcommand{\familydefault}{\sfdefault} -\sloppy diff --git a/doc/EnKF_user_guide/enkf_appendix_A.tex b/doc/EnKF_user_guide/enkf_appendix_A.tex deleted file mode 100644 index cf645f166..000000000 --- a/doc/EnKF_user_guide/enkf_appendix_A.tex +++ /dev/null @@ -1,175 +0,0 @@ -\chapter{Content of Namelist}\label{nameless} - -The following are lists and explanations of the EnKF namelist variables. Users can also check file \textit{params.f90} for the details. \\ - -Section \textbf{nam\_enkf} -\begin{table}[htbp] -\centering -\begin{tabular}{p{3cm}p{7cm}p{2.5cm}p{1.5cm}} -\hline -Variable Name&Description&Data Type&Default\\ -\hline -datein&Analysis date in YYYYMMDDHH&integer&0\\ -datapath&path to data directory (include trailing slash)&Character (len=500) &""\\ -iassim\_order&= 0 for the order they are read in,\newline -=1 for random order\newline -= 2 for order of predicted posterior variance reduction (based on prior) &integer&0\\ -covinflatemax&maximum inflation&real(r\_single)&1.e30\\ -covinflatemin&minimum inflation&real(r\_single)&1.0\\ -deterministic&if true, use EnSRF w/o perturbed obs.\newline - if false, use perturbed obs EnKF. & logical & true\\ -sortinc&if false, re-order obs to minimize regression - errors as described in Anderson (2003). &logical &true\\ -corrlengthnh&length for horizontal localization (in km) in north hemisphere&real(r\_single)&2800\\ -corrlengthtr&length for horizontal localization (in km) in tropic&real(r\_single)&2800\\ -corrlengthsh&length for horizontal localization (in km) in south hemisphere&real(r\_single)&2800\\ -\hline -\end{tabular} -\end{table} - - -\begin{table}[htbp] -\centering -\begin{tabular}{p{3cm}p{7cm}p{2.5cm}p{1.5cm}} -\hline -Variable Name&Description&Data Type&Default\\ -\hline -varqc&Turn on varqc & logical & false \\ -huber&use huber norm instead of "flat-tail" &logical & fales\\ -nlons&number of lons &integer&0\\ -nlats&Number of lats & integer & 0\\ - smoothparm&smoothing parameter for inflation (-1 for no smoothing) & real(r\_single) & -1\\ -readin\_localization&If true, read in localization length scales from an external file & logical & false\\ -zhuberleft&Parameter for "huber norm" QC & real(r\_single) & 1.e30\\ - zhuberright&Parameter for "huber norm" QC & real(r\_single) &1.e30\\ - obtimelnh&observation time localization in hours over north hemisphere & real(r\_single) &25.925\\ -obtimeltr&observation time localization in hours over tropic & real(r\_single) & 25.925\\ - obtimelsh& observation time localization in hours over south hemisphere & real(r\_single) &25.925\\ - - reducedgrid & Do smooth in a reduced grid with a variable number -on longitudes per latitude. The number of longitudes is chosen so that the zonal grid -spacing is approximately the same as at the equator & logical & false \\ -lnsigcutoffnh & length for vertical localization in ln(p) over north hemisphere for conventional observation&real(r\_single)& 2.0\\ -lnsigcutofftr &length for vertical localization in ln(p) over tropic conventional observation&real(r\_single)&2.0\\ -lnsigcutoffsh &length for vertical localization in ln(p) over south hemisphere for conventional observation&real(r\_single) &2.0\\ -lnsigcutoffsatnh &length for vertical localization in ln(p) over north hemisphere for satellite radiance observation&real(r\_single)& -999.0\\ - lnsigcutoffsattr &length for vertical localization in ln(p) over tropic satellite radiance observation&real(r\_single)& -999.0\\ - lnsigcutoffsatsh &length for vertical localization in ln(p)over south hemisphere for satellite radiance observation&real(r\_single) &-999.0\\ - lnsigcutoffpsnh&length for vertical localization in ln(p) over north hemisphere for surface pressure observation&real(r\_single) &-999.0\\ - lnsigcutoffpstr &length for vertical localization in ln(p) over tropic surface pressure observation&real(r\_single)& -999.0\\ - lnsigcutoffpssh &length for vertical localization in ln(p) over south hemisphere for surface pressure observation&real(r\_single) &-999.0\\ -\hline -\end{tabular} -\end{table} - - - - - - -\begin{table}[htbp] -\centering -\begin{tabular}{p{3cm}p{7cm}p{2.5cm}p{1.5cm}} -\hline -Variable Name&Description&Data Type&Default\\ -\hline - analpertwtnh&adaptive posterior inflation parameter over north hemisphere:\newline - 1 means inflate all the way back to prior spread&real(r\_single)& 0.0\\ - analpertwtsh & adaptive posterior inflation parameter over tropic:\newline -1 means inflate all the way back to prior spread&real(r\_single) &0.0\\ - analpertwttr&adaptive posterior inflation parameter over south hemisphere:\newline -1 means inflate all the way back to prior spread&real(r\_single) &0.0\\ -sprd\_tol&tolerance for background check: -observations are not used if they are more than sqrt(S+R) from mean, - where S is ensemble variance and R is observation error variance. &real(r\_single) &9.9e31\\ -nlevs &total number of levels&integer &0\\ - nanals&number of ensemble members&integer & 0\\ - nvars&number of 3d variables to update. For hydrostatic models, typically 5 (u,v,T,q,ozone).&integer &5\\ -saterrfact &factor to multiply sat radiance errors&real(r\_single) &1.0\\ - univaroz &If true, ozone observations only affect ozone &logical &true\\ - regional &If true, analysis is for regional&logical &false\\ - use\_gfs\_nemsio&If true, GFS background is in NEMS format&logical& false\\ - paoverpb\_thresh &if observation space posterior variance divided by prior variance less than this value, -observation is skipped during serial processing. \newline -1.0 = don't skip any obs &(r\_single) &1.0\\ -latbound &definition of tropics and mid-latitudes (for inflation). &real(r\_single) &25.0\\ -delat &width of transition zone &real(r\_single)& 10.0\\ -pseudo\_rh &use 'pseudo-rh' analysis variable, as in GSI &logical & false\\ -numiter&number of times to iterate state/bias correction update. (only relevant when satellite radiances assimilated, i.e. nobs\_sat>0)&integer &1.0\\ -\hline -\end{tabular} -\end{table} - - - -\begin{table}[htbp] -\centering -\begin{tabular}{p{3cm}p{7cm}p{2.5cm}p{1.5cm}} -\hline -Variable Name&Description&Data Type&Default\\ -\hline -biasvar&background error variance for rad bias coeffs (used in radbias.f90). Default is (old) GSI value.\newline -if negative, bias coeff error variace is set to - biasvar/N, where N is number of obs per instrument/channel.\newline -if newpc4pred is .true., biasvar is not used - the estimated analysis error variance from the previous cycle is -used instead (same as in the GSI). &real(r\_single) &0.1\\ -lupd\_satbiasc&if performing satellite bias correction update&logical &true\\ - cliptracers&if true, tracers are clipped to zero when read in, and just before they are written out.&logical& true\\ -simple\_partition &partition obs for enkf using Graham's rule&logical &true\\ - adp\_anglebc&turn off or on the variational radiance angle bias correction&logical& false\\ -angord &order of polynomial for angle bias correction&Integer& 0\\ - newpc4pred&controls preconditioning due to sat-bias correction term&logical&\\ -nmmb&If true, ensemble forecast is NMMB&logical &false\\ -iau&&logical &false\\ -nhr\_anal&background forecast time for analysis&integer &6\\ - letkf\_flag&If true, do LETKF&logical& false\\ - boxsize &Observation box size for LETKF (deg)&real(r\_single) &90.0\\ - massbal\_adjust&mass balance adjustment for GFS&logical &false\\ - use\_edges&logical to use data on scan edges (.true.=to use)&logical &true\\ - emiss\_bc&If true, turn on emissivity bias correction&logical& false\\ -\hline -\end{tabular} -\end{table} - -\pagebreak[0] - -\begin{table}[htbp] -\centering -\begin{tabular}{p{3cm}p{7cm}p{2.5cm}p{1.5cm}} -&Section \textbf{nam\_wrf} &&\\ -\hline -Variable Name&Description&Data Type&Default\\ -\hline -arw ®ional dynamical core ARW&logical &false\\ -nmm®ional dynamical core NMM&logical& true\\ -doubly\_periodic&&logical&true\\ -\hline -\end{tabular} -\end{table} - -\begin{table}[htbp] -\centering -\begin{tabular}{p{3cm}p{6cm}p{3cm}p{1.5cm}} -& Section \textbf{satobs\_enkf}&&\\ -\hline -Variable Name&Description&Data Type&Default\\ -\hline -sattypes\_rad&strings describing the satellite data type (which form part of the diag* filename).& -character(len=20) array (nsatmax\_rad) & '"" \\ -dsis&strings corresponding to sattypes\_rad which correspond to the names in the NCEP global\_satinfo file.& -character(len=20) array (nsatmax\_rad)&""\\ -\hline -\end{tabular} -\end{table} - -\begin{table}[htbp] -\centering -\begin{tabular}{p{3cm}p{6cm}p{3cm}p{1.5cm}} -&Section \textbf{ozobs\_enkf}&&\\ -\hline -Variable Name&Description&Data Type&Default\\ -\hline -sattypes\_oz&strings describing the ozone satellite data type (which form part of the diag* filename)& -character(len=20) array (nsatmax\_oz)&""\\ -\hline -\end{tabular} -\end{table} diff --git a/doc/EnKF_user_guide/enkf_ch1.tex b/doc/EnKF_user_guide/enkf_ch1.tex deleted file mode 100644 index d6ddc017a..000000000 --- a/doc/EnKF_user_guide/enkf_ch1.tex +++ /dev/null @@ -1,141 +0,0 @@ -\chapter{Overview}\label{overview} - -%---------------------------------------------- -\section{EnKF History and Background} -%---------------------------------------------- - -The ensemble Kalman filter (EnKF) is a Monte-Carlo algorithm for data assimilation that uses an ensemble of short-term forecasts to estimate the background-error covariance in the Kalman filter. Each ensemble member is cycled through the data assimilation system and updated by EnKF. The EnKF code was developed by the National Oceanic and Atmospheric Administration (NOAA) Earth System Research Lab (ESRL) in collaboration with the research community. It contains two separate algorithms for calculating an analysis increment, a serial Ensemble Square Root Filter (EnSRF) algorithm described by \cite{Whitaker2002} and a Local Ensemble Kalman Filter (LETKF) algorithm described by \cite{Hunt2007}. The parallelization scheme used by the EnSRF algorithm is based on that used in the Data Assimilation Research Testbed (DART) toolkit developed at the National Center for Atmospheric Research (NCAR) and described by \cite{Anderson2007}. The LETKF code was contributed by Yoichiro Ota of the Japanese Meteorological Agency (JMA) while he was a visitor at the National Centers for Environmental Prediction (NCEP). - -The EnKF code became an operational data assimilation system at NCEP in May 2012, providing ensemble update to the Global Forecast System (GFS) hybrid Ensemble-Variational (EnVar) data assimilation system. It can work with both global forecast models (e.g., GFS) and regional forecast models (e.g., the Hurricane Weather Research and Forecasting (WRF) (HWRF) model, the North American Mesoscale (NAM) system, the Advanced Research WRF (ARW) system). - -%---------------------------------------------- -\section{EnKF Becomes Community Code} -%---------------------------------------------- - -The Developmental Testbed Center (DTC), in collaboration with major development groups, began transforming the EnKF operational system into a community system in 2014, following the same protocol as the GSI community effort (\cite{Shao2016}, \url{http://www.dtcenter.org/com-GSI/users/}). Consequently, the EnKF code and its user support are managed by the DTC, along with the GSI community system. - -The DTC complements the development groups in providing EnKF documentation, porting EnKF to multiple platforms, and testing EnKF in an independent and objective environment, while still maintaining functionally equivalent to operational centers. Working with code developers, the DTC is maintaining a community GSI/EnKF repository, which is equivalent to the operational developmental repository, and facilitates community users to develop EnKF. Based on the repository, the DTC releases EnKF code annually with GSI. The first community version of the EnKF system was released on July 31, 2015. This user\textquotesingle s guide describes the second release of EnKF (v1.1) in July 2016. The DTC provides user support through the EnKF Helpdesk (enkf-help@ucar.edu), tutorials, and workshops. More information about the EnKF community services can be found at the DTC EnKF webpage (\url{http://www.dtcenter.org/EnKF/users/}). - -%---------------------------------------------- -\subsection{EnKF Code Management and Review Committee} -%---------------------------------------------- - -The EnKF code development and maintenance are administrated by the Data Assimilation Review Committee (DARC). DARC was originally formed as the GSI Review Committee in 2010. The committee was reformed in 2014 to include members representing the EnKF development and applications. Such a combination enhanced collaboration of development groups in both variational and ensemble data assimilation communities. -Currently, DARC contains members from NCEP's Environmental Modeling Center (EMC), the National Aeronautics and Space Administration (NASA) Goddard Global Modeling and Assimilation Office (GMAO), NOAA/ESRL, the National Center for Atmospheric Research (NCAR) Mesoscale \& Microscale Meteorology Laboratory (MMM), the National Environmental Satellite, Data, and Information Service (NESDIS), the Unite States Air Force (USAF), the University of Maryland, and the DTC (chair). - -DARC primarily steers distributed GSI/EnKF development and community code management and support. The responsibilities of the committee are divided into two major aspects: coordination and code review. The purpose and guiding principles of the review committee are as follows: - -\begin{description} -\item[Coordination and Advisory]- -\begin{itemize} -\item Propose and shepherd new development -\item Coordinate on-going and new development -\item Establish and manage a code review and transition process -\item Community support recommendation -\end{itemize} -\item[Code Review]- -\begin{itemize} -\item Establish and manage a unified coding standard followed by all GSI/EnKF developers -\item Review proposed modifications to the code trunk -\item Make decisions on whether code change proposals are accepted or denied for -inclusion in the repository and manage the repository -\item Oversee the timely testing and inclusion of code into the repository -\end{itemize} -\end{description} - -%---------------------------------------------- -\subsection{Community Code Contributions} -%---------------------------------------------- - -EnKF is a community data assimilation system, open to contributions from scientists and software engineers from both the operational and research communities. DARC oversees the code transition from prospective contributors. This committee reviews proposals for code commits to the GSI/EnKF repository and monitors that coding standards and tests are being fulfilled. Once the committee reaches approval, the contributed code will be committed to the GSI/EnKF code repository and available for operational implementation and public release. - -To facilitate this process, the DTC is providing code transition assistance to the general research community. Prospective contributors of code to the EnKF system should contact the DTC EnKF helpdesk (enkf-help@ucar.edu) for the preparation and integration of their code. It is the contributor's responsibility to ensure that a proposed code change is correct, meets the EnKF coding standards, and its expected impact is documented. The DTC will help the contributors run the regression tests and merge the code with the top of the repository trunk. Prospective contributors can also apply to the DTC visitor program for their EnKF research and code transition. The visitor program is open to applications year-round. Please check the visitor program webpage (\url{www.dtcenter.org/visitors/}) for the latest announcement of opportunity and application procedures. - -%---------------------------------------------- -\section{About This EnKF Release} -%---------------------------------------------- - -This user\textquotesingle s guide was composed for the EnKF community release version(v) 1.2. This version of EnKF is compatible with the GSI community release v3.6. Please note the major focuses of the DTC are currently on testing and evaluation of EnKF for regional numerical weather prediction (NWP) applications though the instructions and cases for EnKF global applications are available with this release. - - -Running this EnKF system requires running GSI a prior for its observation operators. Therefore, the GSI -User\textquotesingle s Guide is referred throughout this documentation. This GSI user's guide can be obtained at the GSI user's webpage ( \url{http://www.dtcenter.org/com-GSI/users/docs/index.php}). - -\subsection{What Is New in This Release Version} - -Major updates to this version of EnKF are code optimization, including bug fixes and code cleanup. Added features include a new namelist to speed up the reading of GSI diagnostic files and added ensemble spread calculation utility for GFS sigma files . The observation types assimilated by EnKF were also updated as part of the GSI v3.6 updates. - -\subsection{Observations Used by This Version } -EnKF is using the GSI system as the observation operator to generate observation innovations. Therefore, the observation types assimilated by EnKF are the same as GSI. This version of EnKF has been tested to work with the community GSI release v3.6. It can assimilate, but is not limited to, the following types of observations: - -\textbf{Conventional observations (including satellite retrievals):} -\begin{itemize} -\item Radiosondes -\item Pilot ballon (PIBAL) winds -\item Synthetic tropical cyclone winds -\item Wind profilers: USA, Jan Meteorological Agency (JMA) -\item Conventional aircraft reports -\item Aircraft to Satellite Data Relay (ASDAR) aircraft reports -\item Meteorological Data Collection and Reporting System (MDCRS) aircraft reports -\item Dropsondes -\item Moderate Resolution Imaging Spectroradiometer (MODIS) IR and water vapor winds -\item Geostationary Meteorological Satellite (GMS), JMA, and Meteosat cloud drift IR and visible winds -\item European Organization for the Exploitation of Meteorological Satellites (EUMETSAT) and GOES water vapor cloud top winds -\item GEOS hourly IR and cloud top wind -\item Surface land observations -\item Surface ship and buoy observation -\item Special Sensor Microwave Imager (SSMI) wind speeds -\item Quick Scatterometer (QuikSCAT), the Advanced Scatterometer (ASCAT) and Oceansat-2 Scatterometer (OSCAT) wind speed and direction -\item RapidScat observations -\item SSM/I and Tropical Rainfall Measuring Mission (TRMM) Microwave Imager (TMI) precipitation estimates -\item Velocity-Azimuth Display (VAD) Next Generation Weather Radar ((NEXRAD) winds -\item Global Positioning System (GPS) precipitable water estimates -\item Sea surface temperature (SST) -\item Doppler wind Lidar -\item Aviation routine weather report (METAR) cloud coverage -\item Flight level and Stepped Frequency Microwave Radiometer (SFMR) High Density -Observation (HDOB) from reconnaissance aircraft -\item Tall tower wind -\end{itemize} - - -\textbf{Satellite radiance/brightness temperature observations (instrument/satellite ID):} -\begin{itemize} -\item SBUV: \textit {NOAA-17, NOAA-18, NOAA-19} -\item High Resolution Infrared Radiation Sounder (HIRS): \textit {Meteorological Operational-A (MetOp-A), MetOp-B, NOAA-17, NOAA-19} -\item GOES imager: \textit {GOES-11, GOES-12} -\item Atmospheric IR Sounder (AIRS): \textit {aqua} -\item AMSU-A: \textit {MetOp-A, MetOp-B, NOAA-15, NOAA-18, NOAA-19, aqua} -\item AMSU-B: \textit {MetOp-B, NOAA-17} -\item Microwave Humidity Sounder (MHS): \textit {MetOp-A, MetOp-B, NOAA-18, NOAA-19} -\item SSMI: \textit {DMSP F14, F15, F19} -\item SSMI/S: \textit {DMSP F16} -\item Advanced Microwave Scanning Radiometer for Earth Observing System (AMSR-E): \textit {aqua} -\item GOES Sounder (SNDR): \textit {GOES-11, GOES-12, GOES-13} -\item Infrared Atmospheric Sounding Interferometer (IASI): \textit {MetOp-A, MetOp-B} -\item Global Ozone Monitoring Experiment (GOME): \textit {MetOp-A, MetOp-B} -\item Ozone Monitoring Instrument (OMI): \textit {aura} -\item Spinning Enhanced Visible and Infrared Imager (SEVIRI): \textit {Meteosat-8, Meteosat-9, Meteosat-10} -\item Advanced Technology Microwave Sounder (ATMS): \textit {Suomi NPP} -\item Cross-track Infrared Sounder (CrIS): \textit {Suomi NPP} -\item GCOM-W1 AMSR2 -\item GPM GMI -\item Megha-Tropiques SAPHIR -\item Himawari AHI -\end{itemize} - -\textbf{Others:} -\begin{itemize} -\item GPS Radio occultation (RO) refractivity and bending angle profiles -\item Solar Backscatter Ultraviolet (SBUV) ozone profiles, Microwave Limb Sounder (MLS) (including NRT) ozone, and Ozone Monitoring Instrument (OMI) total ozone -\item Doppler radar radial velocities -\item Radar reflectivity Mosaic -\item Tail Doppler Radar (TDR) radial velocity and super-observation -\item Tropical Cyclone Vitals Database (TCVital) -\item Particulate matter (PM) of 10-um diameter, 2.5-um diameter or less -\item MODIS AOD (when using GSI-chem package) -\end{itemize}\setlength{\parskip}{12pt} - - -Please note some of these above mentioned data are not yet fully tested and/or implemented for operations. Therefore, the current GSI code might not have the optimal setup for these data. - diff --git a/doc/EnKF_user_guide/enkf_ch2.tex b/doc/EnKF_user_guide/enkf_ch2.tex deleted file mode 100644 index 7f6ade215..000000000 --- a/doc/EnKF_user_guide/enkf_ch2.tex +++ /dev/null @@ -1,152 +0,0 @@ -\chapter{Software Installation}\label{enkf_install} -\setlength{\parskip}{12pt} - -%---------------------------------------------- -\section{Introduction} -%---------------------------------------------- - -The DTC community EnKF is a community distribution of NOAA\textquotesingle s operational ensemble Kalman filter. The community EnKF expands the portability of the operational code by adding a flexible build system and providing example run scripts that allow the system to run on many common platforms. The current version of the community EnKF builds and runs on most standard Linux platforms using the Intel, PGI, and GNU compilers. - -This chapter describes how to build and install the DTC community EnKF on your computing resources. These instructions apply only to the DTC community EnKF. The source code for the community EnKF release is identical to the particular revision of NCEP\textquotesingle s trunk code frozen for community release. The only difference from the NCEP trunk code, is the addition of the more general community build system in order to support a wider variety of computing platforms. - -The EnKF build process consists of the four general steps necessary to build GSI. -\begin{itemize} -\item Obtain the source code: combined GSI/EnKF, and WRF. -\item Build the WRF model (see the WRF users guide). -\item Set the EnKF code defaults (see the EnKF users guide) -\item Build the GSI and EnKF model (see the GSI users guide). -\end{itemize} - -Section \ref{ch2_obtain_code} describes how to obtain the source code. Section \ref{ch2_compiling} presents an outline of the build process. Sections \ref{ch2_system_requirements} and \ref{ch2_compilers_tested} cover the system requirements (tools, libraries, and environment variable settings) and currently supported platforms in detail. Section \ref{ch2_getting_help} discusses what to do if you have problems with the build and where to get help. - -%---------------------------------------------- -\section{Obtaining the Source Code} \label{ch2_obtain_code} -%---------------------------------------------- - -The community EnKF code and the GSI code are released as a combined source code package. The current -EnKF release is v1.2 and is paired with the community GSI release version 3.6. -The community EnKF release is available from the DTC community EnKF users website; - -\url{http://www.dtcenter.org/EnKF/users/index.php} - -The community GSI/EnKF release includes the source code for both the EnKF v1.2 and the GSI v3.6 models, as -well as an integrated build system, utilities, and documentation necessary to build and run the EnKF. - -To download the source code from the either the GSI or the EnKF website, select the \underline{Download} tab -along with the \underline{GSI/EnKF} System subtab on the vertical menu located on the left side of -the main page. New users must first register before downloading the source code. Returning users only need -to enter their registration email address to log in. After accessing the download page, select the link to the -\verb|comGSIv3.6_EnKFv1.2| tarball. Please only use the source code provided with the -\verb|comGSIv3.6_EnKFv1.2| tarball. Do not mix and match this tarball with other versions of the community -GSI code or supplemental libraries, as this will lead to unpredictable results. - -The community EnKF version 1.2 comes in a tar file named \verb|comGSIv3.6_EnKFv1.2.tar|. The tar file may -be unpacked by using the standard UNIX commands: -\begin{verbatim} - gunzip comGSIv3.6_EnKFv1.2.tar.gz - tar -xvf comGSIv3.6-EnKFv1.2.tar -\end{verbatim} -This creates the top level GSI directory \verb|comGSIv3.6_EnKFv1.2/|. -After downloading the source code, and prior to building, the user should check the known issues link on the -download page of DTC website to determine if any bug fixes or platform specific customizations are needed. - -%---------------------------------------------- -\section{Compiling EnKF} \label{ch2_compiling} -%---------------------------------------------- - -The EnKF code is built automatically when GSI is built (details in the GSI User\textquotesingle s Guide Chapter 2). It makes use of the \verb|configure.gsi| file produced -for the GSI build. Therefore to build EnKF, simply build GSI. The default EnKF build settings produce a regional -version of EnKF, called wrf\_enkf. This version of EnKF assumes that a WRF style I/O is being used. - -This section provides a quick outline of the steps necessary to build the EnKF code from the release distribution. -Typically, EnKF will build \textit{straight out of the box} on any system that successfully builds GSI. Should the user experience any difficulties with the default build, check the build environment against the requirements described at the end of section \ref{ch2_system_requirements}. -\begin{enumerate} -\item Set the environment for the compiler: If not already done so, set the necessary paths for using your selected compiler, such as loading the appropriate modules or modifying the path. -\item If not already done, build and install a recent version of the WRF model. The WRF build is currently needed for the WRF I/O libraries and should use the same compiler as used for the EnKF and GSI builds. -\item Build GSI (see chapter 2 of the GSI users guide for more details) -\begin{description} -\item[ ]a. Set the environment variables (see chapter 2 of the GSI users guide) -\item[ ]b. Run the configure script located at in the \verb|dtc/| directory. -\item[ ]c. Select the EnKF configuration (the default is regional, see section \ref{ch2_versions_enkf}) -\item[ ]d. Run the compile script -\item[ ]e. Confirm that GSI has successfully built. -\item[ ]f. Change into the directory \verb|src/main/enkf| -\item[ ]g. Confirm that the EnKF executable resides in the directory (default executable is \verb|wrf_enkf|). -\end{description} -\end{enumerate} - -Other I/O configurations for EnKF are available, and must be selected at build time. The current choices are regional, global or NMMB. The choice of I/O configuration is specified in the file \verb|src/main/enkf/Makefile.conf|. Section \ref{ch2_versions_enkf} provides a full explanation on specifying the I/O configuration. - -%---------------------------------------------- -\subsection{Versions of EnKF} \label{ch2_versions_enkf} -%---------------------------------------------- - -The EnKF code has three build time configurations for the I/O; regional, global, and NMMB. The EnKF analysis is identical in each case, only the capability to digest model input differs. The regional version can only digest WRF formatted I/O files. The global version can only digest spectral input from the NCEP global model. Lastly, the NMMB version can only digest NMMB files. - -Before initiating the compile command, the user must select which EnKF configuration is to be built by manually editing the file src/main/enkf/Makefile.conf. Examining lines 45 to 50 of Makefile.conf shows three pairs of build flags. -\begin{verbatim} -45 # FFLAGS_F90 = -DGFS -46 # EXE_FILE = global_enkf i -47 FFLAGS_F90 = -DWRF -48 EXE_FILE = wrf_enkf -49 # FFLAGS_F90 = -DNMMB -50 # EXE_FILE = nmmb_enkf -\end{verbatim} - -By default the build system is set to build the regional configuration. This sets the Fortran preprocessor flag to \textit{-DWRF}, and the executable name to \textit{wrf\_enkf}. Other EnKF configurations are selected by commenting out lines by adding \# symbols and activating lines by removing \# symbols. Once the desired configuration is selected by editing the file \textit{Makefile.conf}, the executable may be built by running the the top level GSI configure/compile commands. - -%---------------------------------------------- -\section{System Requirements and External Libraries} \label{ch2_system_requirements} -%---------------------------------------------- - -The EnKF source code is written in FORTRAN 90 and requires some flavor of MPI and OpenMP for the distributed memory parallelism. Lastly the I/O relies on the NetCDF I/O libraries. The build system relies on standard make. - -The basic requirements for building are: -\begin{itemize} -\item FORTRAN 2003+ compiler -\item MPI v1.2+ -\item OpenMP -\item NetCDF V3.6.3 or V4.2+ -\item LAPACK and BLAS mathematics libraries, or equivalent -\item WRF V3.6+ -\end{itemize} - -Because all but the last of these tools and libraries are typically the purview of system administrators to install and maintain, they are lumped together here as part of the basic system requirements. - -%---------------------------------------------- -\section{Compilers Tested for Release} \label{ch2_compilers_tested} -%---------------------------------------------- - -Version 1.1 of the DTC community EnKF system has been successfully tested on a variety of Linux platforms with many versions of the Intel, PGI, Gnu Fortran compilers. - -The following Linux compiler combinations have been fully tested: -\begin{table}[htbp] -\centering -\begin{tabular}{| l | l | l |} -\hline - & Fortran compiler version & C compiler version \\ -\hline -\hline -Intel only & ifort 17.0.1, 16.0.3, 15.0.3, 14.0.2 & icc \\ -\hline -PGI only & pgf90 17.5, 16.5, 15.7 & pgcc \\ -\hline -GNU only & gfortran 5.4.0 with netcdf 4.4.0 & gcc 5.4.0 \\ -\hline -\end{tabular} -\label{ch2_tble1} -\end{table} - -Unforeseen build issues may occur when using older compiler and library versions. As always, the best results come from using the most recent version of compilers. - -%---------------------------------------------- -\section{Getting Help and Reporting Problems} \label{ch2_getting_help} -%---------------------------------------------- - -Should the user experience any difficulty building EnKF on their system, please first confirm that both the WRF model and the GSI have successfully built. Should the EnKF build fail, but the other two succeed, feel free to contact the community EnKF support at -\begin{center} -\textit{enkf-help@ucar.edu} -\end{center} - for assistance. - -At a minimum, when reporting issues building the code, please include a copy of the EnKF build log. diff --git a/doc/EnKF_user_guide/enkf_ch3.tex b/doc/EnKF_user_guide/enkf_ch3.tex deleted file mode 100644 index 6c42c331a..000000000 --- a/doc/EnKF_user_guide/enkf_ch3.tex +++ /dev/null @@ -1,782 +0,0 @@ -\chapter{Running EnKF}\label{enkf_run} -\setlength{\parskip}{12pt} - -%---------------------------------------------- -\section{Input Data Required to Run EnKF} -%---------------------------------------------- - -This chapter discusses the process of running EnKF cases. It includes: -\begin{enumerate} -\item Discussions of the input data required to run EnKF. -\item A detailed explanation of how to run both a regional and global EnKF with the released run scripts. -\item Introduction to the files in a successful regional and global EnKF run directory -\end{enumerate} - -%---------------------------------------------- -\subsection{Input Data Required to Run EnKF} -%---------------------------------------------- - -In most cases, three types of input data, ensemble mean and members, observations, -and fixed files, must be available before running EnKF.\\ - -\textbf{1. Ensemble mean and members} \\ -The ensemble members and ensemble mean of certain regional and global ensemble -forecast systems are used as the background for the EnKF analysis. When this EnKF -system is used for regional analysis with WRF ensembles, the ensemble members -and ensemble mean follow the naming convention: -\begin{verbatim} -firstguess.mem001 -firstguess.mem002 -... ... -firstguess.ensmean -\end{verbatim} - -Please note that the number of allocated computer cores to run EnKF must be larger than the ensemble size. -The ensemble members can be generated using various methods, such as: -\begin{itemize} -\item Using global/regional ensemble forecasts. -\item Ensemble forecasts generated using multi-physics, multi-models, or adding -random perturbations drawn from climatology. -\item In cycling assimilation, using ensemble forecasts initialized from previous ensemble analyses generated by EnKF. -\end{itemize} - -This version EnKF can use any of the following ensemble files as the background: -\begin{itemize} -\item ARW NetCDF forecast -\item NMM NetCDF forecast -\item GFS forecast files -\end{itemize} - -\textbf{2. Prepare observation ensemble priors (observation innovation)} \\ -In addition to the ensemble backgrounds on model grids, the ensemble priors of all observations -(observation innovation for all ensemble members) are also needed to run EnKF. The observation -ensemble priors are generated by running GSI observation forward operators with the ensemble -members as backgrounds (without doing actual GSI analyses). In this release, the GSI v3.5 run -script includes options for generating the observation ensemble priors (details in section 3.2). -The observation ensemble priors files should follow the following naming conventions: -\begin{itemize} -\item For conventional observations: -\begin{verbatim} -diag_conv_ges.mem001 -diag_conv_ges.mem002 -... ... -diag_conv_ges.ensmean -\end{verbatim} -\item For radiance observations: -\begin{verbatim} -diag_instrument_Satellite.mem001 (e.g. diag_hirs4_n19.mem001) -diag_ instrument_Satellite.mem002 (e.g. diag_hirs4_n19.mem002) -... ... -diag_ instrument_Satellite.ensmean (e.g. diag_hirs4_n19.ensmean) -\end{verbatim} -\end{itemize} - -These diag files contain a lot of information about each observation. For more details on the -content of diag files, please refer to the GSI User\textquotesingle s Guide Appendix A.2. -The preparation of observations for EnKF assimilation is done within GSI, including quality control -of observations, selection of observation types for assimilation, and observation error tuning. In -the default namelist situation, NO additional online quality control of observations is performed in -the EnKF analysis step (although there is an option to do the similar quality control of observations -as the GSI variational scheme.) - -\textbf{3. Fixed files} \\ -EnKF uses the the same fixed files as GSI to setup the analysis configurations. Detailed explanation -of all fixed files provided in the community GSI system is in the GSI user\textquotesingle s Guide, Chapter 3. -The following is a list of fixed files needed for EnKF analyses: -\begin{itemize} -\item for observation control: -\begin{verbatim} -convinfo - conventional data (prepufr) info file -ozinfo - ozone retrieval info file -satinfo - satellite channel info file -\end{verbatim} -\item when satellite radiance data are assimilated, the following files are needed to do the adaptive radiance bias correction: -\begin{small} -\begin{verbatim} -satbias_in - satellite bias correction coefficient file -satbias_pc - satellite bias correction coefficient file for passive channels -\end{verbatim} -\end{small} -\end{itemize} - -Note that this version EnKF uses adaptive bias correction. The bias correction coefficients are in a single file that combined satellite angle dependent and mass bias correction coefficients. See GSI User\textquotesingle s Guide for -more detail. When the namelist parameter \textit{readin\_localization} is set to true, file \textit{hybens\_locinfo} is -needed, in which customized localization values varying by model level are contained. - -%---------------------------------------------- -\section{EnKF and GSI Observer Run Scripts} -%---------------------------------------------- - -In this release version, four sample run scripts for EnKF applications are under directory -\verb|comGSIv3.5_EnKFv1.1/run|: -\begin{itemize} -\item \textit{run\_gsi\_regional.ksh} for running regional GSI to generate the observation ensemble priors. Referred to as the GSI observer run scripts. -\item \textit{run\_gsi\_global.ksh} is GSI observer run script for global applications (to generate the observation ensemble priors). -\item \textit{run\_enkf\_wrf.ksh} for running regional EnKF -\item \textit{run\_enkf\_global.ksh} for running global EnKF -\end{itemize} - -These run scripts are introduced in detail in the following sections. Also provided are two scripts for generating the GSI and EnKF namelist: -\begin{itemize} -\item \textit{comgsi\_namelist.sh} generates GSI namelist on the fly (called by GSI observer run scripts). -\item \textit{comgsi\_namelist\_gfs.sh} generates GSI namelist on the fly (called by GSI observer run scripts) for global GSI applications. -\item \textit{enkf\_wrf\_namelist.sh} generates EnKF namelist on the fly (called by EnKF run script) for regional EnKF applications. -\end{itemize} - -%---------------------------------------------- - \subsection{General Introduction to the Run Scripts} -%---------------------------------------------- - -These run scripts provide the run time environment necessary for running the GSI and EnKF executables. They all have similar steps, as follows: -\begin{enumerate} -\item Request computer resources to run GSI/EnKF. -\item Set environmental variables for the machine architecture. -\item Set experimental variables (such as experiment name, analysis time, background, and observation). -\item Check the definitions of required variables. -Generate a run directory for GSI/EnKF -\item Copy the GSI/EnKF executable to the run directory. -\item Copy/Link the background file/ensemble files to the run directory. -\item Link observations to the run directory. -\item Link fixed files (statistic, control, and coefficient files) to the run directory. -\item Generate namelist for GSI/EnKF. -\item Run the GSI/EnKF executable. -\item Post-process: save analysis results, generate diagnostic files, clean run directory. -\end{enumerate} - -In the GSI User\textquotesingle s Guide, three sections explain the first three steps in detail: -\begin{itemize} -\item Section 3.2.2.1: Setting up the machine environment (step 1) -\item Section 3.2.2.2: Setting up the running environment (step 2) -\item Section 3.2.2.3: Setting up an analysis case (step 3) -\end{itemize} - -For this documentation, the first 2 steps will be skipped and the 3rd step in the GSI observer -and EnKF run scripts will be discussed. The community GSI analysis run script and the GSI -observer run script are the same, with the GSI observer capability controlled by flags -that turn off the minimization, select appropriate namelist options and enable looping through -all the ensemble members to generate the ensemble observation priors for each member, -including the ensemble mean. - -%---------------------------------------------- -\subsection{GSI Observer Run Scripts} -%---------------------------------------------- - - \subsubsection{Setting up a case} - This section discusses variables specific to the user\textquotesingle s case, such as analysis time, working directory, background and observation files, location of fixed files and CRTM coefficients, and the GSI executable file. The script looks like: -\begin{scriptsize} - \begin{verbatim} -##################################################### -# case set up (users should change this part) -##################################################### -# -# ANAL_TIME= analysis time (YYYYMMDDHH) -# WORK_ROOT= working directory, where GSI runs -# PREPBURF = path of PreBUFR conventional obs -# BK_FILE = path and name of background file -# OBS_ROOT = path of observations files -# FIX_ROOT = path of fix files -# GSI_EXE = path and name of the gsi executable - ANAL_TIME=2014061700 - HH=`echo $ANAL_TIME | cut -c9-10` - WORK_ROOT=run/testarw - OBS_ROOT=data/20140617/obs - PREPBUFR=${OBS_ROOT}/nam.t${HH}z.prepbufr.tm00.nr - BK_ROOT=data/20140617/2014061700/arw - BK_FILE=${BK_ROOT}/wrfinput_d01.${ANAL_TIME} - CRTM_ROOT=data/CRTM_2.2.3 - GSI_ROOT=code/comGSIv3.5_EnKFv1.1 - FIX_ROOT=${GSI_ROOT}/fix - GSI_EXE=${GSI_ROOT}/run/gsi.exe - GSI_NAMELIST=${GSI_ROOT}/run/comgsi_namelist.sh -\end{verbatim} -\end{scriptsize} - -The options ANAL\_TIME, WORK\_ROOT, PREPBURF, BK\_FILE, OBS\_ROOT, FIX\_ROOT, GSI\_EXE are all the same settings as the GSI analysis configuration. Two options: BK\_ROOT , GSI\_ROOT, are the root directories for ensemble members and the GSI system. These exist to make links to the background and GSI system easy and shorter. The new option: GSI\_NAMELIST is needed because the namelist section was taken out of the run scripts in this release as a separate file to improve the structure and readability of the run scripts. Users can find the namelist files for both GSI and EnKF in the same directory as the run scripts. Please note the option BK\_FILE is pointing to the ensemble mean. -The next part of this block has additional options to specify other important aspects of the GSI observer. -\begin{scriptsize} - \begin{verbatim} - #--------------------- -# bk_core= which WRF core is used as background (NMM or ARW or NMMB) -# bkcv_option= which background error covariance and parameter will be used -# (GLOBAL or NAM) -# if_clean = clean : delete temperal files in working directory (default) -# no : leave running directory as is (this is for debug only) - bk_core=ARW - bkcv_option=NAM - if_clean=clean -# if_observer = Yes : only used as observation operater for enkf -# no_member number of ensemble members -# BK_FILE_mem path and base for ensemble members - if_observer=No # Yes, or, No -- case sensitive ! - no_member=20 - BK_FILE_mem=${BK_ROOT}/wrfarw.mem -\end{verbatim} -\end{scriptsize} - - The options \textit{bk\_core}, \textit{bkcv\_option}, and, \textit{if\_clean} are the same as in the GSI analysis run scripts. The new option if\_observer indicates if this GSI run is for the generation of the observation ensemble priors or for a regular GSI run. The new option \textit{no\_member} specifies the number of ensemble members that are need to be calculated for the observation ensemble priors. This should also be the ensemble number in the EnKF analysis. Option \textit{BK\_FILE\_mem} is the path and the name of the ensembles without the ensemble member ID appended. The scripts will add the ensemble member ID as a three digital number, such as 000, 001,\ldots . - -\subsubsection{Loop through ensemble members} - As mentioned previously, the GSI ensemble observer run scripts are the same as the GSI analysis run scripts released with the community GSI. Since the observer only generates diag files, which includes useful information on the observation innovation, the GSI outer loop number for the observer should be set to 0 to skip all minimization iterations. - - The contents of the run scripts can be divided into two parts, those before the following comments and those after: - \begin{scriptsize} - \begin{verbatim} -################################################# -# start to calculate diag files for each member -################################################# - \end{verbatim} - \end{scriptsize} - -Before this comment, the scripts have the same functionality as when running a GSI analysis, except that the background options in the scripts for the observer funcationality are set for the ensemble mean. Additionally, the namelist is built with the two following options set, which skips the minimization and saves all observation processing from the ensemble mean: -\begin{scriptsize} -\begin{verbatim} -if [ ${if_observer} = Yes ] ; then - nummiter=0 - if_read_obs_save='.true.' - if_read_obs_skip='.false.' -else -\end{verbatim} -\end{scriptsize} - -Please refer to the GSI user\textquotesingle s guide for detailed explanation of the remainder of this portion of the run scripts. The second portion of the script loops through each member to calculate the observation ensemble priors based on the GSI run environments setup by the first portion. - -Listed below is an annotated version of the 2nd part of the GSI observer run script with explanations on each function block. -\begin{scriptsize} -\begin{verbatim} -if [ ${if_observer} = Yes ] ; then -\end{verbatim} -\end{scriptsize} - -This 2nd part of the script only runs if option \textit{if\_observer} is set to "Yes". The diag files from the ensemble mean need to be saved first with the following commands: -\begin{scriptsize} -\begin{verbatim} - string=ges - for type in $listall; do - count=0 - if [[ -f diag_${type}_${string}.${ANAL_TIME} ]]; then - mv diag_${type}_${string}.${ANAL_TIME} diag_${type}_${string}.ensmean - fi - done - mv wrf_inout wrf_inout_ensmean -\end{verbatim} -\end{scriptsize} - -The following section builds the namelist for ensemble members. Please note two options need to be set different between mean and members: -\begin{scriptsize} -\begin{verbatim} -# Build the GSI namelist on-the-fly for each member - nummiter=0 - if_read_obs_save='.false.' - if_read_obs_skip='.true.' -. $GSI_NAMELIST -cat << EOF > gsiparm.anl - - $comgsi_namelist - -EOF -\end{verbatim} -\end{scriptsize} - -The option \textit{if\_read\_obs\_save} and \textit{if\_read\_obs\_skip} switch from "True" and "False", respectively for the mean to "False" and "True", respectively for the ensemble members. - -This saves all observation processing information (including bias correction, thinning, etc) from the ensemble mean and save the same information for the ensemble members to keep observations constant. - -The script loops through each ensemble member (from member 001 to \textit{no\_member}) to create the diag files for each member: - -\begin{scriptsize} -\begin{verbatim} -# Loop through each member - loop="01" - ensmem=1 - while [[ $ensmem -le $no_member ]];do - - rm pe0* - - print "\$ensmem is $ensmem" - ensmemid=`printf %3.3i $ensmem` -\end{verbatim} -\end{scriptsize} - -After a member is processed, the script removes the old ensemble member and links to the new member before rerunning the calculation: -\begin{scriptsize} -\begin{verbatim} -# get new background for each member - if [[ -f wrf_inout ]]; then - rm wrf_inout - fi - - BK_FILE=${BK_FILE_mem}${ensmemid} - echo $BK_FILE - ln -s $BK_FILE wrf_inout -\end{verbatim} -\end{scriptsize} - -Run the GSI observer for this member: -\begin{scriptsize} -\begin{verbatim} -# run GSI - echo ' Run GSI with' ${bk_core} 'for member ', ${ensmemid} - - case $ARCH in - 'IBM_LSF') - ${RUN_COMMAND} ./gsi.exe < gsiparm.anl > stdout_mem${ensmemid} 2>&1 ;; - - * ) - ${RUN_COMMAND} ./gsi.exe > stdout_mem${ensmemid} 2>&1 ;; - esac - -# run time error check and save run time file status - error=$? - - if [ ${error} -ne 0 ]; then - echo "ERROR: ${GSI} crashed for member ${ensmemid} Exit status=${error}" - exit ${error} - fi - - ls -l * > list_run_directory_mem${ensmemid} -\end{verbatim} -\end{scriptsize} - -Generate diag files for this member: -\begin{scriptsize} -\begin{verbatim} -# generate diag files - - for type in $listall; do - count=`ls pe*${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat pe*${type}_${loop}* > diag_${type}_${string}.mem${ensmemid} - fi - done - -# next member - (( ensmem += 1 )) - - done - -fi -\end{verbatim} -\end{scriptsize} - -Since all members are using the same run directory, the run status of each member is overwriten by the following member. The stdout file and the file list in run directory are preserved with the ensemble member ID for debug. - -%---------------------------------------------- -\subsection{Sample Regional EnKF Run Scripts} -%---------------------------------------------- - -As described in section 3.2.1, the regional EnKF run scripts have been designed to have a similar structure to the GSI analysis and observer run scripts. Again, please refer to the GSI User\textquotesingle s Guide section 3.2.2.1 and 3.2.2.2 for the first two steps. - -The 3rd step is to setup the variables specific to the user\textquotesingle s case, such as analysis time, working directory, background and observation files, location of fixed files and CRTM coefficients, and the EnKF executable. Most of the options in this portion are the same as the 3rd step in the GSI observer run scripts, which is discussed in section 3.2.2 of this User\textquotesingle s Guide. Users should setup most of the variables in this portion based on the options in the GSI observer run scripts as they are the variables to setup the same things for the GSI and EnKF. The following is a sample script with explanations: -\begin{scriptsize} -\begin{verbatim} -# -##################################################### -# case set up (users should change this part) -##################################################### -# -# ANAL_TIME= analysis time (YYYYMMDDHH) -# WORK_ROOT= working directory, where GSI runs -# PREPBURF = path of PreBUFR conventional obs -# BK_FILE = path and name of background file -# OBS_ROOT = path of observations files -# FIX_ROOT = path of fix files -# GSI_EXE = path and name of the gsi executable - - ANAL_TIME=2012102506 - WORK_ROOT=enkf/regional/enkf_arw - diag_ROOT=enkf/regional/gsidiag_arw - BK_ROOT=enkf/enkfdata/arw/bk - BK_FILE=${BK_ROOT}/wrfarw.ensmean - GSI_ROOT=/enkf/code/comGSIv3.4_EnKFv1.0 - FIX_ROOT=${GSI_ROOT}/fix - ENKF_EXE=${GSI_ROOT}/src/main/enkf/wrf_enkf - CRTM_ROOT=CRTM_REL-2.2.3 - ENKF_NAMELIST=${GSI_ROOT}/run/enkf_wrf_namelist.sh -\end{verbatim} -\end{scriptsize} - -Options \textit{ANAL\_TIME}, \textit{BK\_ROOT}, \textit{BK\_FILE}, \textit{GSI\_ROOT}, \textit{FIX\_ROOT}, \textit{CRTM\_ROOT} have -the same meanings as the ensemble GSI observer run scripts and should be set to the -same values as the ensemble GSI observer run scripts. The option \textit{WORK\_ROOT} is -the working directory which should have enough space to hold the ensemble members -and EnKF analysis results. The option \textit{diag\_ROOT} is pointing to the run directory of the -GSI observer, where the diag files are generated as data input for the EnKF. The option -\textit{ENKF\_EXE} points to the EnKF executable, which is under the GSI source code directory -in this release. The option \textit{ENKF\_NAMELIST} is the path and the EnKF namelist file, which -sits outside of the run script as a separate file like the GSI namelist. Users can find the -namelist files for both GSI and the EnKF in the same directory as the run scripts. - -The next part of this block includes several additional options that specify several aspects of the ensemble members. - -\begin{scriptsize} -\begin{verbatim} -# ensemble parameters -# - NMEM_ENKF=20 - BK_FILE_mem=${BK_ROOT}/wrfarw - NLONS=111 - NLATS=111 - NLEVS=56 - IF_ARW=.true. - IF_NMM=.false. - list="conv amsua_n18 hirs4_n19" -\end{verbatim} -\end{scriptsize} - -Options \textit{NMEM\_ENKF}, \textit{BK\_FILE\_mem} are also in the GSI observer run script and -should be set to the same values as the GSI observer run script. Options \textit{NLONS}, \textit{NLATS}, -and \textit{NLEVS} specify 3 dimensions (XYZ ) of the ensemble grid. Options \textit{IF\_ARW} and -\textit{IF\_NMM} indicates which background, ARW NetCDF ensemble or the NMM NetCDF -ensemble, is used in this EnKF run. Option \textit{list} is a list of the observation types that the -EnKF will use in the analysis. This list should be based on the diag files generated by -the ensemble GSI observer. - -At this point, users should be able to run the EnKF for simple cases without changing the rest of the script. However, some advanced users may need to change some of the following blocks for special applications. -\begin{scriptsize} -\begin{verbatim} -##################################################### -# Users should NOT change script after this point -##################################################### -\end{verbatim} -\end{scriptsize} - -The next block sets the run command to run EnKF on multiple platforms. The \textit{ARCH} is set at the beginning of the script. - -\begin{scriptsize} -\begin{verbatim} -case $ARCH in - 'IBM_LSF') - ###### IBM LSF (Load Sharing Facility) - RUN_COMMAND="mpirun.lsf " ;; - - 'LINUX') - if [ $GSIPROC = 1 ]; then - #### Linux workstation - single processor - RUN_COMMAND="" - else - ###### Linux workstation - mpi run - RUN_COMMAND="mpirun -np ${GSIPROC} -machinefile ~/mach " - fi ;; - - 'LINUX_LSF') - ###### LINUX LSF (Load Sharing Facility) - RUN_COMMAND="mpirun.lsf " ;; - - 'LINUX_PBS') - #### Linux cluster PBS (Portable Batch System) -# RUN_COMMAND="mpirun -np ${GSIPROC} " ;; - RUN_COMMAND="mpiexec_mpt -n ${GSIPROC} " ;; - - 'DARWIN_PGI') - ### Mac - mpi run - if [ $GSIPROC = 1 ]; then - #### Mac workstation - single processor - RUN_COMMAND="" - else - ###### Mac workstation - mpi run - RUN_COMMAND="mpirun -np ${GSIPROC} -machinefile ~/mach " - fi ;; - - * ) - print "error: $ARCH is not a supported platform configuration." - exit 1 ;; -esac -\end{verbatim} -\end{scriptsize} - - -The following block sets up fixed files and some analysis-time related values: -\begin{scriptsize} -\begin{verbatim} -# Given the analysis date, compute the date from which the -# first guess comes. Extract cycle and set prefix and suffix -# for guess and observation data files -# gdate=`$ndate -06 $adate` -gdate=$ANAL_TIME -YYYYMMDD=`echo $adate | cut -c1-8` -HH=`echo $adate | cut -c9-10` - -# Fixed files -# CONVINFO=${FIX_ROOT}/global_convinfo.txt -# SATINFO=${FIX_ROOT}/global_satinfo.txt -# SCANINFO=${FIX_ROOT}/global_scaninfo.txt -# OZINFO=${FIX_ROOT}/global_ozinfo.txt -CONVINFO=${diag_ROOT}/convinfo -SATINFO=${diag_ROOT}/satinfo -SCANINFO=${diag_ROOT}/scaninfo -OZINFO=${diag_ROOT}/ozinfo -# LOCINFO=${FIX_ROOT}/global_hybens_locinfo.l64.txt -\end{verbatim} -\end{scriptsize} - -The next block creates a working directory (\verb|workdir|) in which EnKF will run. The directory should have enough disk space to hold all the files needed for this run. This directory is cleaned before each run, therefore, save all the files needed from the previous run before rerunning EnKF. -\begin{scriptsize} -\begin{verbatim} -# Set up workdir -rm -rf $WORK_ROOT -mkdir -p $WORK_ROOT -cd $WORK_ROOT -\end{verbatim} -\end{scriptsize} - -After creating a working directory, copy or link the EnKF executable, ensembles, diag files (observations), bias correction coefficients, and fixed files into the working directory. -\begin{scriptsize} -\begin{verbatim} -cp $ENKF_EXE ./enkf.x - -cp $CONVINFO ./convinfo -cp $SATINFO ./satinfo -cp $SCANINFO ./scaninfo -cp $OZINFO ./ozinfo -# cp $LOCINFO ./hybens_locinfo - -cp $diag_ROOT/satbias_in ./satbias_in -cp $diag_ROOT/satbias_pc ./satbias_pc - -# get mean -ln -s ${BK_FILE_mem}.ensmean ./firstguess.ensmean -for type in $list; do - ln -s $diag_ROOT/diag_${type}_ges.ensmean . -done - -# get each member -imem=1 -while [[ $imem -le $NMEM_ENKF ]]; do - member="mem"`printf %03i $imem` - ln -s ${BK_FILE_mem}.${member} ./firstguess.${member} - for type in $list; do - ln -s $diag_ROOT/diag_${type}_ges.${member} . - done - (( imem = $imem + 1 )) -done -\end{verbatim} -\end{scriptsize} - -The following script is used to generate the EnKF namelist called enkf.nml in the working directory. Some namelist variables are explained in detail in Section 4.3. Appendix A gives a full list of namelist options. -\begin{scriptsize} -\begin{verbatim} -# Build the GSI namelist on-the-fly -. $ENKF_NAMELIST -cat << EOF > enkf.nml - - $enkf_namelist - -EOF -\end{verbatim} -\end{scriptsize} - -Copy the ensemble background files to the working directory and rename them as \verb| "analysis.${member}" |. The EnKF will update those files as the analysis results. - -\begin{scriptsize} -\begin{verbatim} -# make analysis files -cp firstguess.ensmean analysis.ensmean -# get each member -imem=1 -while [[ $imem -le $NMEM_ENKF ]]; do - member="mem"`printf %03i $imem` - cp firstguess.${member} analysis.${member} - (( imem = $imem + 1 )) -done -\end{verbatim} -\end{scriptsize} - -The following block runs EnKF and checks if the EnKF has successfully completed. -\begin{scriptsize} -\begin{verbatim} -################################################### -# run EnKF -################################################### -echo ' Run EnKF' - -${RUN_COMMAND} ./enkf.x < enkf.nml > stdout 2>&1 - -################################################################## -# run time error check -################################################################## -error=$? - -if [ ${error} -ne 0 ]; then - echo "ERROR: ${ENKF_EXE} crashed Exit status=${error}" - exit ${error} -fi -\end{verbatim} -\end{scriptsize} - -If this point is reached, the EnKF successfully finishes and exits with 0: -\begin{scriptsize} -\begin{verbatim} -exit -\end{verbatim} -\end{scriptsize} - - -%---------------------------------------------- -\section{Understanding Resulting Files in GSI Observer and EnKF Run Directory} -%---------------------------------------------- - -To check if the GSI observer and EnKF runs have been successfully finished, it is important to understand the meaning of each file in the run directory. - -%---------------------------------------------- -\subsection{The GSI Observer Run Directory} -%---------------------------------------------- - -After customizing the GSI observer run script to your personal environment, it may be submitted to the batch system just as any other job. -Following a successful run, the majority of the files in the GSI observer run directory will be the same as those in a sucessful GSI analysis run directory. The difference for the observer run is that the GSI observer generates more diag and stdout files related to each ensemble member. Below is an example of the files generated in the run directory from a GSI observer run: -\begin{scriptsize} -\begin{verbatim} -amsuabufr diag_amsua_n18_ges.mem010 fit_t1.2014021300 mhsbufr -amsubbufr diag_amsua_n18_ges.mem011 fit_w1.2014021300 obs_input.0001 -anavinfo diag_amsua_n18_ges.mem012 fort.201 obs_input.0002 -berror_stats diag_amsua_n18_ges.mem013 fort.202 obs_input.0003 -convinfo diag_amsua_n18_ges.mem014 fort.203 obs_input.0004 -diag_amsua_metop-a_ges.ensmean diag_amsua_n18_ges.mem015 fort.204 obs_input.0006 -diag_amsua_metop-a_ges.mem001 diag_amsua_n18_ges.mem016 fort.205 obs_input.0010 -diag_amsua_metop-a_ges.mem002 diag_amsua_n18_ges.mem017 fort.206 obs_input.0019 -diag_amsua_metop-a_ges.mem003 diag_amsua_n18_ges.mem018 fort.207 obs_input.0021 -diag_amsua_metop-a_ges.mem004 diag_amsua_n18_ges.mem019 fort.208 obs_input.0022 -diag_amsua_metop-a_ges.mem005 diag_amsua_n18_ges.mem020 fort.209 obs_input.0026 -diag_amsua_metop-a_ges.mem006 diag_conv_ges.ensmean fort.210 obs_input.0027 -diag_amsua_metop-a_ges.mem007 diag_conv_ges.mem001 fort.211 obs_input.0028 -diag_amsua_metop-a_ges.mem008 diag_conv_ges.mem002 fort.212 obs_input.0029 -diag_amsua_metop-a_ges.mem009 diag_conv_ges.mem003 fort.213 obs_input.0030 -diag_amsua_metop-a_ges.mem010 diag_conv_ges.mem004 fort.214 obs_input.common -diag_amsua_metop-a_ges.mem011 diag_conv_ges.mem005 fort.215 ozinfo -diag_amsua_metop-a_ges.mem012 diag_conv_ges.mem006 fort.217 pcpbias_out -diag_amsua_metop-a_ges.mem013 diag_conv_ges.mem007 fort.218 pcpinfo -diag_amsua_metop-a_ges.mem014 diag_conv_ges.mem008 fort.219 prepbufr -diag_amsua_metop-a_ges.mem015 diag_conv_ges.mem009 fort.220 prepobs_prep.bufrtable -diag_amsua_metop-a_ges.mem016 diag_conv_ges.mem010 fort.221 satbias_ang.out -diag_amsua_metop-a_ges.mem017 diag_conv_ges.mem011 fort.223 satbias_in -diag_amsua_metop-a_ges.mem018 diag_conv_ges.mem012 fort.224 satbias_out -diag_amsua_metop-a_ges.mem019 diag_conv_ges.mem013 fort.225 satbias_out.int -diag_amsua_metop-a_ges.mem020 diag_conv_ges.mem014 fort.226 satbias_pc -diag_amsua_n15_ges.ensmean diag_conv_ges.mem015 fort.227 satbias_pc.out -diag_amsua_n15_ges.mem001 diag_conv_ges.mem016 fort.228 satinfo -diag_amsua_n15_ges.mem002 diag_conv_ges.mem017 fort.229 sigf03 -diag_amsua_n15_ges.mem003 diag_conv_ges.mem018 fort.230 stdout -diag_amsua_n15_ges.mem004 diag_conv_ges.mem019 gpsrobufr stdout.anl.2014021300 -diag_amsua_n15_ges.mem005 diag_conv_ges.mem020 gsi.exe stdout_mem001 -diag_amsua_n15_ges.mem006 diag_hirs4_metop-a_ges.ensmean gsiparm.anl stdout_mem002 -diag_amsua_n15_ges.mem007 diag_hirs4_metop-a_ges.mem001 hirs3bufr stdout_mem003 -diag_amsua_n15_ges.mem008 diag_hirs4_metop-a_ges.mem002 hirs4bufr stdout_mem004 -diag_amsua_n15_ges.mem009 diag_hirs4_metop-a_ges.mem003 l2rwbufr stdout_mem005 -diag_amsua_n15_ges.mem010 diag_hirs4_metop-a_ges.mem004 list_run_directory stdout_mem006 -diag_amsua_n15_ges.mem011 diag_hirs4_metop-a_ges.mem005 list_run_directory_mem001 stdout_mem007 -diag_amsua_n15_ges.mem012 diag_hirs4_metop-a_ges.mem006 list_run_directory_mem002 stdout_mem008 -diag_amsua_n15_ges.mem013 diag_hirs4_metop-a_ges.mem007 list_run_directory_mem003 stdout_mem009 -diag_amsua_n15_ges.mem014 diag_hirs4_metop-a_ges.mem008 list_run_directory_mem004 stdout_mem010 -diag_amsua_n15_ges.mem015 diag_hirs4_metop-a_ges.mem009 list_run_directory_mem005 stdout_mem011 -diag_amsua_n15_ges.mem016 diag_hirs4_metop-a_ges.mem010 list_run_directory_mem006 stdout_mem012 -diag_amsua_n15_ges.mem017 diag_hirs4_metop-a_ges.mem011 list_run_directory_mem007 stdout_mem013 -diag_amsua_n15_ges.mem018 diag_hirs4_metop-a_ges.mem012 list_run_directory_mem008 stdout_mem014 -diag_amsua_n15_ges.mem019 diag_hirs4_metop-a_ges.mem013 list_run_directory_mem009 stdout_mem015 -diag_amsua_n15_ges.mem020 diag_hirs4_metop-a_ges.mem014 list_run_directory_mem010 stdout_mem016 -diag_amsua_n18_ges.ensmean diag_hirs4_metop-a_ges.mem015 list_run_directory_mem011 stdout_mem017 -diag_amsua_n18_ges.mem001 diag_hirs4_metop-a_ges.mem016 list_run_directory_mem012 stdout_mem018 -diag_amsua_n18_ges.mem002 diag_hirs4_metop-a_ges.mem017 list_run_directory_mem013 stdout_mem019 -diag_amsua_n18_ges.mem003 diag_hirs4_metop-a_ges.mem018 list_run_directory_mem014 stdout_mem020 -diag_amsua_n18_ges.mem004 diag_hirs4_metop-a_ges.mem019 list_run_directory_mem015 wrfanl.2014021300 -diag_amsua_n18_ges.mem005 diag_hirs4_metop-a_ges.mem020 list_run_directory_mem016 wrf_inout -diag_amsua_n18_ges.mem006 errtable list_run_directory_mem017 wrf_inout_ensmean -diag_amsua_n18_ges.mem007 fit_p1.2014021300 list_run_directory_mem018 -diag_amsua_n18_ges.mem008 fit_q1.2014021300 list_run_directory_mem019 -diag_amsua_n18_ges.mem009 fit_rad1.2014021300 list_run_directory_mem020 -\end{verbatim} -\end{scriptsize} - -This case was a regional analysis with WRF/ARW NetCDF backgrounds. In this case, 20 ensemble members are used to generate the diag files. A brief introduction of the additional files in the GSI observer runs is given below: - - -\begin{itemize}[itemindent=-15pt] -\item \textit{diag\_conv\_ges.mem???} - Diag files of conventional observations for ensemble member ???. -\item \textit{diag\_conv\_ges.ensmean} - Diag files of satellite radiance observation for ensemble mean. -\item \textit{stdout\_mem???} - Standard output from GSI observer run for ensemble member ???. -\item \textit{list\_run\_directory\_mem???} - The list of the files in the run directory after the GSI observer is finished for ensemble member ???. -\end{itemize} - - - -%---------------------------------------------- -\subsection{Files in the EnKF Run Directory} -%---------------------------------------------- - - After customizing the EnKF run script to your personal environment, it may be submitted to the batch system just as any other job. Upon successful assimilation, the ensemble analyses (both members and ensemble mean), covariance inflation factor to the ensemble analyses, and updated satellite bias correction coefficients (if requested) are output in the run directory. Below is an example of the files generated in the run directory from one of the EnKF regional test cases: -\begin{scriptsize} -\begin{verbatim} -analysis.ensmean diag_amsua_n18_ges.mem003 diag_conv_ges.mem008 firstguess.mem002 -analysis.mem001 diag_amsua_n18_ges.mem004 diag_conv_ges.mem009 firstguess.mem003 -analysis.mem002 diag_amsua_n18_ges.mem005 diag_conv_ges.mem010 firstguess.mem004 -analysis.mem003 diag_amsua_n18_ges.mem006 diag_conv_ges.mem011 firstguess.mem005 -analysis.mem004 diag_amsua_n18_ges.mem007 diag_conv_ges.mem012 firstguess.mem006 -analysis.mem005 diag_amsua_n18_ges.mem008 diag_conv_ges.mem013 firstguess.mem007 -analysis.mem006 diag_amsua_n18_ges.mem009 diag_conv_ges.mem014 firstguess.mem008 -analysis.mem007 diag_amsua_n18_ges.mem010 diag_conv_ges.mem015 firstguess.mem009 -analysis.mem008 diag_amsua_n18_ges.mem011 diag_conv_ges.mem016 firstguess.mem010 -analysis.mem009 diag_amsua_n18_ges.mem012 diag_conv_ges.mem017 firstguess.mem011 -analysis.mem010 diag_amsua_n18_ges.mem013 diag_conv_ges.mem018 firstguess.mem012 -analysis.mem011 diag_amsua_n18_ges.mem014 diag_conv_ges.mem019 firstguess.mem013 -analysis.mem012 diag_amsua_n18_ges.mem015 diag_conv_ges.mem020 firstguess.mem014 -analysis.mem013 diag_amsua_n18_ges.mem016 diag_gome_metop-a_ges.ensmean firstguess.mem015 -analysis.mem014 diag_amsua_n18_ges.mem017 diag_gome_metop-b_ges.ensmean firstguess.mem016 -analysis.mem015 diag_amsua_n18_ges.mem018 diag_omi_aura_ges.ensmean firstguess.mem017 -analysis.mem016 diag_amsua_n18_ges.mem019 diag_sbuv2_n16_ges.ensmean firstguess.mem018 -analysis.mem017 diag_amsua_n18_ges.mem020 diag_sbuv2_n17_ges.ensmean firstguess.mem019 -analysis.mem018 diag_conv_ges.ensmean diag_sbuv2_n18_ges.ensmean firstguess.mem020 -analysis.mem019 diag_conv_ges.mem001 diag_sbuv2_n19_ges.ensmean ozinfo -analysis.mem020 diag_conv_ges.mem002 diff.nc satbias_ang.out -anavinfo diag_conv_ges.mem003 enkf.log satbias_in -convinfo diag_conv_ges.mem004 enkf.nml satbias_out.int -diag_amsua_n18_ges.ensmean diag_conv_ges.mem005 enkf.x satbias_pc -diag_amsua_n18_ges.mem001 diag_conv_ges.mem006 firstguess.ensmean satinfo -diag_amsua_n18_ges.mem002 diag_conv_ges.mem007 firstguess.mem001 stdout -\end{verbatim} -\end{scriptsize} - -This case was a regional analysis with WRF/ARW NetCDF backgrounds. In this case, 20 ensemble members are used to estimate ensemble covariance, and both conventional observations (prepbufr) and radiance observations (AMSU-A) are assimilated. - -A brief introduction of the files is given in the table below: - -\begin{table}[htbp] -\centering -\begin{tabular}{| l | l |} -\hline -stdout & A text output file. This is the most commonly used file to \\ - & check the analysis processes as well as basic and important \\ - & information about the analyses. The contents of stdout are \\ - & explained in detail in Chapter 4 and users are encouraged to \\ - & read this file to become familiar with the order of EnKF \\ - & analysis processing. \\ - \hline -firstguess. mem001-0?? & ensemble members of WRF background, in NetCDF format. This \\ - & is in the same format as the WRF forecast. The ensemble \\ - & background of the analysis variables are extracted from the files. \\ - \hline -firstguess.ensmean & ensemble mean of WRF background, in NetCDF format. \\ -\hline - analysis. mem001-0??: & ensemble analysis if EnKF completes successfully. \\ - & The format is the same as the background file. \\ - \hline - analysis.ensmean & ensemble mean of analyses, in NetCDF format. \\ - \hline - diag\_conv\_ges. mem001-0??: & diag files in binary for conventional and GPS RO \\ - & observations, which contain the observations and their priors. \\ - \hline - covinflate.dat & Three-dimensional multiplicative inflation factor fields \\ - & (from function inflate\_ens in module inflation). These \\ - & inflation fields can be visualized using plotting software. \\ - \hline - *info (convinfo, satinfo,\ldots): & info files that control data usage. Please \\ - & see GSI User guide Chapter 4 for details.\\ - \hline - satbias\_in & the input coefficients of bias correction \\ - & for satellite radiance observations.\\ - \hline - satbias\_pc & the input coefficients of satellite radiance bias \\ - & correction for passive channels.\\ - \hline -\end{tabular} -\end{table} - - - diff --git a/doc/EnKF_user_guide/enkf_ch4.tex b/doc/EnKF_user_guide/enkf_ch4.tex deleted file mode 100644 index 2d0820222..000000000 --- a/doc/EnKF_user_guide/enkf_ch4.tex +++ /dev/null @@ -1,803 +0,0 @@ -\chapter{EnKF Diagnostics and Tuning}\label{enkf_diag} -\setlength{\parskip}{12pt} -This chapter will discuss how to assess whether an EnKF was successful based on the contents of the standard output (stdout). Properly checking the EnKF output will also provide useful information to diagnose potential errors in the system. The chapter begins with an introduction to the content and structure of the EnKF stdout, followed by detailed discussion of tuning options in the namelist. -This chapter follows the online exercise for a case at 00z on February 13th, 2014 (case 2014021300). This case uses WRF-ARW NetCDF ensemble files as the background and analyzes several observations typical for operations, including most conventional observation data and select radiance data (AMSU-A , HIRS4). The case was run on a Linux cluster supercomputer, using 32 cores. Users can follow this test to reproduce the following results by visiting: - -\url{http://www.dtcenter.org/EnKF/users/tutorial/index.php} - -%---------------------------------------------- -\section{Understanding the Standard Output from EnKF (stdout)} -%---------------------------------------------- - -Upon completion of an EnKF run, it is always useful to do a quick check of the standard output (stdout), to assess the performance of the EnKF. The stdout file has information about whether the EnKF analysis has successfully completed, if the ensemble spread inflation looks good, and if the background and analysis fields are reasonable. Understanding the contents of this file can also be very helpful for users to find clues in the event of a crash. - -The EnKF stdout has following information: -\begin{description} -\item[ ] a. namelist configuration -\item[ ] b. background ensemble members of observations and analysis variables -\item[ ] c. statistics of the ensemble prior -\item[ ] d. domain and observation partition -\item[ ] e. statistics of the ensemble analysis -\item[ ] f. spread inflation of the analysis ensemble -\end{description} - -The following section contains a detailed description of the content of stdout, explained using the WRF-ARW case: 2014021300. The analysis domain consists of 129 x 70 x 50 grid points. To keep the output concise and make it more readable, redundant content are omitted. - -The following indicates the start of the EnKF analysis. It shows how many processors are used to run the analysis and the beginning time of this run: -\begin{scriptsize} -\begin{verbatim} -Execute poe command line: poe ./enkf.x - running on 32 processors ... - - -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . - PROGRAM ENKF_ANL HAS BEGUN. COMPILED 2011319.55 ORG: NP25 - STARTING DATE-TIME JUL 14,2016 00:01:03.956 196 THU 2457584 -\end{verbatim} -\end{scriptsize} - -The following lines show how many satellite observation types are set to be read in and if the radiance bias correction is updated before the analysis process: -\begin{scriptsize} -\begin{verbatim} - number of satellite radiance files used 59 - number of satellite ozone files used 7 -\end{verbatim} -\end{scriptsize} - -The following lines show the namelist used in the analysis: -\begin{scriptsize} -\begin{verbatim} - namelist parameters: - -------------------- - &NAM_ENKF - DATEIN = 2014021300, - DATAPATH = ./ , - IASSIM_ORDER = 0, - COVINFLATEMAX = 100.0000 , - COVINFLATEMIN = 1.000000 , - DETERMINISTIC = T, SORTINC = T, - CORRLENGTHNH = 500.0000 , - CORRLENGTHTR = 500.0000 , - CORRLENGTHSH = 500.0000 , -... ... - SAVE_INFLATION = F, - LETKF_FLAG = F, - MASSBAL_ADJUST = F, - USE_EDGES = F, - EMISS_BC = T, - ISEED_PERTURBED_OBS = 0 - / - -------------------- -\end{verbatim} -\end{scriptsize} - -The following lines show ensemble size, background information, the number of 3D analysis variables, and total number of 2D fields of the 3D variables, plus surface pressure (Ps). -\begin{scriptsize} -\begin{verbatim} - 20 members - number of background forecast times to be updated = 1 - first-guess forecast hours for analysis = 06 - 5 3d vars to update - total of 251 2d grids will be updated (including ps) -\end{verbatim} -\end{scriptsize} - -The actual analysis variables and the background type are printed, as well as the maximum and minimum of the surface pressure as a sanity check: -\begin{scriptsize} -\begin{verbatim} - Updating U, V, T, QVAPOR, PH, and MU for WRF-ARW... - Surface pressure (spressmn) min/max range: 678.673339843750 - 1032.22473144531 -\end{verbatim} -\end{scriptsize} - -Next, the contents of convinfo are displayed: -\begin{tiny} -\begin{verbatim} -READ_CONVINFO: tcp 112 0 1 3.000 0 0 0 75.00 5.000 1.000 75.00 0.000 0 0.000 0.000 0 0.000 0.000 2 -READ_CONVINFO: ps 120 0 1 3.000 0 0 0 4.000 3.000 1.000 4.000 0.3000E-03 0 0.000 0.000 0 0.000 0.000 2 - line ignored in convinfo due to use flag ps 132 0 - -1 -...... - - line ignored in convinfo due to use flag gps 44 0 - -1 -\end{verbatim} -\end{tiny} - -The next 272 lines show the content of ozinfo: -\begin{scriptsize} -\begin{verbatim} -OZINFO_READ: jpch_oz= 272 - 1 sbuv6_n14 lev = 1 use = -1 pob = 0.240 gross = 1.000 error = 1.000 b_oz = 10.000 pg_oz = 0.000 - 2 sbuv6_n14 lev = 2 use = -1 pob = 0.490 gross = 1.000 error = 1.000 b_oz = 10.000 pg_oz = 0.000 - 3 sbuv6_n14 lev = 3 use = -1 pob = 0.980 gross = 1.000 error = 1.000 b_oz = 10.000 pg_oz = 0.000 -... ... -271 mls30_aura lev = 54 use = -1 pob = 999.999 gross = 9.999 error = 9.999 b_oz = 10.000 pg_oz = 0.000 -272 mls30_aura lev = 55 use = -1 pob = 999.999 gross = 9.999 error = 9.999 b_oz = 10.000 pg_oz = 0.000 -\end{verbatim} -\end{scriptsize} - -The next 2680 lines show the content of satinfo and starts reading in the radiance bias correction coefficients: -\begin{scriptsize} -\begin{verbatim} -RADINFO_READ: jpch_rad= 2723 - 1 amsua_n15 chan= 1 var= 3.000 varch_cld= 20.000 use= 1 ermax= 4.500 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 - 2 amsua_n15 chan= 2 var= 2.200 varch_cld= 18.000 use= 1 ermax= 4.500 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 - 3 amsua_n15 chan= 3 var= 2.000 varch_cld= 12.000 use= 1 ermax= 4.500 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 - 4 amsua_n15 chan= 4 var= 0.600 varch_cld= 3.000 use= 1 ermax= 2.500 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 -... ... - -2722 ahi_himawari8 chan=15 var= 2.200 varch_cld= 0.000 use= -1 ermax= 2.000 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 -2723 ahi_himawari8 chan=16 var= 2.200 varch_cld= 0.000 use= -1 ermax= 2.000 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 -\end{verbatim} -\end{scriptsize} - -The majority of next near 3000 lines show the content of radiance bias correction coefficients: -\begin{tiny} -\begin{verbatim} - RADINFO_READ: guess air mass bias correction coefficients below - 1 amsua_n15 -1.96518 0.00000 39.06817 -0.92319 0.40846 0.00000 0.00000 0.00173 3.68970 2.36747 8.86294 -1.84829 - 2 amsua_n15 -7.41540 0.00000 80.13801 -0.81847 -1.01321 0.00000 0.00000 0.01427 2.63880 8.31509 22.04145 -1.56477 - ... ... -2679 avhrr3_metop-b 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -2680 avhrr3_metop-b 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -\end{verbatim} -\end{tiny} - -Among the lines describing the radiance bias correction coefficients, the EnKF also starts to inventory the observation number and types for both conventional and radiance data. Observations of various types are read in (from the \verb|diag**| files) and the number of the observations and time spent reading in the observations are shown: - -Start to check the radiance and ozone observations: -\begin{scriptsize} -\begin{verbatim} - 1 sbuv2_n16 nread= 0 nkeep= 0 num_obs_tot= 0 - 1 amsua_n15 nkeep= 0 num_obs_tot= 0 - 2 sbuv2_n17 nread= 0 nkeep= 0 num_obs_tot= 0 - 3 sbuv2_n18 nread= 0 nkeep= 0 num_obs_tot= 0 - 4 sbuv2_n19 nread= 0 nkeep= 0 num_obs_tot= 0 - 5 omi_aura nread= 0 nkeep= 0 num_obs_tot= 0 - 6 gome_metop-a nread= 0 nkeep= 0 num_obs_tot= 0 - 7 gome_metop-b nread= 0 nkeep= 0 num_obs_tot= 0 - 0 ozone obs - 2 amsua_n18 nkeep= 6284 num_obs_tot= 6284 - 3 amsua_n19 nkeep= 0 num_obs_tot= 6284 - 6 amsua_aqua nkeep= 0 num_obs_tot= 6284 - 7 amsua_metop-a nkeep= 0 num_obs_tot= 6284 - 8 airs_aqua nkeep= 0 num_obs_tot= 6284 - 11 hirs4_metop-a nkeep= 154 num_obs_tot= 6438 - 12 mhs_n18 nkeep= 0 num_obs_tot= 6438 - 13 mhs_n19 nkeep= 0 num_obs_tot= 6438 - 14 mhs_metop-a nkeep= 0 num_obs_tot= 6438 - 15 goes_img_g11 nkeep= 0 num_obs_tot= 6438 - 25 ssmis_f17 nkeep= 0 num_obs_tot= 6438 - 45 sndrd1_g15 nkeep= 0 num_obs_tot= 6438 - 46 sndrd2_g15 nkeep= 0 num_obs_tot= 6438 - 47 sndrd3_g15 nkeep= 0 num_obs_tot= 6438 - 48 sndrd4_g15 nkeep= 0 num_obs_tot= 6438 - 49 iasi_metop-a nkeep= 0 num_obs_tot= 6438 - 52 seviri_m10 nkeep= 0 num_obs_tot= 6438 - 53 amsua_metop-b nkeep= 0 num_obs_tot= 6438 -\end{verbatim} -\end{scriptsize} - -Start to check the conventional observations: -\begin{scriptsize} -\begin{verbatim} - columns below obtype,nread, nkeep - t 8043 7904 - q 2625 2621 - ps 14133 14133 - uv 21982 21982 - sst 0 0 - gps 0 0 - pw 0 0 - dw 0 0 - srw 0 0 - rw 0 0 - tcp 0 0 -\end{verbatim} -\end{scriptsize} - -A summary of the total number of conventional ($1^{st}$ number 46640), ozone ($2^{nd}$ number 0), and -radiance observations ($3^{rd}$ number 6438) in diag files is given: -\begin{scriptsize} -\begin{verbatim} - nobs_conv, nobs_oz, nobs_sat = 46640 0 6438 -\end{verbatim} -\end{scriptsize} - -Also, the following normalization factors for the radiance bias predictors could be inside the bias correction coefficient lines: -\begin{scriptsize} -\begin{verbatim} - npred = 12 - 1 biasprednorm = 1.000000 - 2 biasprednorm = 1.000000 -... ... - 11 biasprednorm = 1.000000 - 12 biasprednorm = 1.000000 -\end{verbatim} -\end{scriptsize} - -Then, the time spent reading in the observations and the total number of observations kept and rejected are shown: -\begin{scriptsize} -\begin{verbatim} - max time in mpireadobs = 0.6105460 - total number of obs 53078 - 53078 obs kept - 0 total obs rejected - time in read_obs = 1.25072427513078 on proc 0 -\end{verbatim} -\end{scriptsize} - -In the stdout, regional averaged (northern hemisphere - NH, southern hemisphere - SH, and tropics - TR) statistics of the ensemble `priors` fit to all observations are provided, partly for checking if the inflation is appropriate. The details of this part are discussed in next Section \ref{ch4_tuningandinflat}. -\begin{scriptsize} -\begin{verbatim} - innovation statistics for prior: - conventional obs - region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): -NH all ps 14083 -0.591E-02 0.860E+00 0.814E+00 0.601E+00 0.550E+00 -TR all ps 50 -0.629E-01 0.422E+00 0.661E+00 0.367E+00 0.550E+00 -NH all t 7766 -0.228E+00 0.163E+01 0.128E+01 0.480E+00 0.119E+01 -TR all t 138 -0.130E+00 0.118E+01 0.119E+01 0.234E+00 0.117E+01 -NH all uv 21680 0.136E-01 0.295E+01 0.276E+01 0.140E+01 0.237E+01 -TR all uv 302 -0.379E+00 0.251E+01 0.268E+01 0.124E+01 0.238E+01 -NH all q 2553 -0.323E-01 0.146E+00 0.157E+00 0.868E-01 0.131E+00 -TR all q 68 -0.721E-01 0.202E+00 0.164E+00 0.582E-01 0.154E+00 - satellite brightness temp - instrument, channel #, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): - amsua_n18 1 241 -0.199E+00 0.194E+01 0.306E+01 0.176E+01 0.250E+01 - amsua_n18 2 248 -0.194E+00 0.145E+01 0.234E+01 0.806E+00 0.220E+01 - amsua_n18 3 248 -0.620E+00 0.119E+01 0.206E+01 0.497E+00 0.200E+01 - amsua_n18 4 248 -0.189E+00 0.398E+00 0.568E+00 0.140E+00 0.550E+00 - amsua_n18 5 248 0.188E-01 0.337E+00 0.315E+00 0.966E-01 0.300E+00 - amsua_n18 6 1203 -0.396E-01 0.198E+00 0.238E+00 0.610E-01 0.230E+00 - amsua_n18 7 1225 -0.215E+00 0.324E+00 0.235E+00 0.480E-01 0.230E+00 - amsua_n18 8 1155 -0.235E+00 0.369E+00 0.259E+00 0.675E-01 0.250E+00 - amsua_n18 10 1211 0.408E+00 0.491E+00 0.353E+00 0.429E-01 0.350E+00 - amsua_n18 11 12 0.720E+00 0.723E+00 0.404E+00 0.567E-01 0.400E+00 - amsua_n18 15 245 -0.311E+00 0.198E+01 0.380E+01 0.148E+01 0.350E+01 - hirs4_metop-a 3 1 0.115E+01 0.115E+01 0.534E+00 0.631E-01 0.530E+00 - hirs4_metop-a 4 42 0.260E+00 0.521E+00 0.403E+00 0.488E-01 0.400E+00 - hirs4_metop-a 5 7 -0.534E+00 0.558E+00 0.367E+00 0.696E-01 0.360E+00 - hirs4_metop-a 6 7 -0.748E+00 0.782E+00 0.473E+00 0.109E+00 0.460E+00 - hirs4_metop-a 7 9 -0.557E+00 0.815E+00 0.580E+00 0.108E+00 0.570E+00 - hirs4_metop-a 8 9 0.374E+00 0.675E+00 0.100E+01 0.208E-01 0.100E+01 - hirs4_metop-a 10 9 0.199E+00 0.581E+00 0.612E+00 0.120E+00 0.600E+00 - hirs4_metop-a 11 9 -0.380E-01 0.718E+00 0.143E+01 0.770E+00 0.120E+01 - hirs4_metop-a 12 34 -0.988E+00 0.179E+01 0.213E+01 0.141E+01 0.160E+01 - hirs4_metop-a 13 9 0.694E-01 0.330E+00 0.382E+00 0.116E+00 0.364E+00 - hirs4_metop-a 14 9 -0.369E-01 0.257E+00 0.294E+00 0.137E+00 0.260E+00 - hirs4_metop-a 15 9 0.352E-01 0.289E+00 0.281E+00 0.107E+00 0.260E+00 - time in estimate_work_enkf1 = 5.723375361412764E-002 secs -\end{verbatim} -\end{scriptsize} - - -Next, the analysis variable fields and the observations are distributed to the different processors. The following lines show the maximum and minimum number of observations and grid on subdomain and the time used to setup those decompositions: -\begin{scriptsize} -\begin{verbatim} - time in estimate_work_enkf1 = 5.723375361412764E-002 secs - min/max numobs 32 7663 - min/max estimated work 637809 638478 - npts = 9030 - min/max number of points per proc = 243 317 - time to do model space decomp = 1.529277069494128E-003 - nobstot = 53078 - min/max number of obs per proc = 1658 1659 - time to do ob space decomp = 3.935033455491066E-004 - sending out observation prior ensemble perts from root ... - nobstot*nanals 1061560 - npts*ndim 2266530 - ... took 1.730861375108361E-002 secs - time in load_balance = 7.929413160309196E-002 on proc 0 -\end{verbatim} -\end{scriptsize} - -Then, the ensemble background members of the analysis variables are read in and the maximum and minimum values of the fields at each vertical level are displayed. The maximum and minimum values are useful for a quick confirmation that the background fields have been read successfully. The size of the real array of ensemble perturbations updated on each processor and the time spent to read in and distribute the background ensemble are also shown: -\begin{scriptsize} -\begin{verbatim} - anal_chunk size = 1591340 - READGRIDDATA_ARW: U 1 -20.55222 20.72632 - ... - READGRIDDATA_ARW: U 50 -12.60845 52.03727 - READGRIDDATA_ARW: V 51 -11.67894 21.03603 - ... - READGRIDDATA_ARW: V - ... - READGRIDDATA_ARW: V 100 -17.20951 21.87867 - READGRIDDATA_ARW: T 101 -62.00526 13.33912 - ... - READGRIDDATA_ARW: T 150 469.5381 509.8757 - READGRIDDATA_ARW: QVAPOR 151 8.4173851E-05 1.7215064E-02 - ... - READGRIDDATA_ARW: QVAPOR 200 1.5460877E-06 1.0506745E-05 - READGRIDDATA_ARW: PH 201 -14.64355 4.688477 - ... - READGRIDDATA_ARW: PH 250 7195.078 14206.67 - READGRIDDATA_ARW: MU 251 -1326.610 3290.569 - time in readgridata on root 0.326851664343849 secs - time to scatter state on root 0.163762195268646 secs - time in read_ensemble = 0.494254242163152 on proc 0 -\end{verbatim} -\end{scriptsize} - -In EnSRF, observations can be skipped/not assimilated due to the adaptive observation thinning. The following lines show how many observations are skipped or not assimilated by this thinning. In this case, paoverpb\_thresh = 0.99, which lead to 423 of the observations being skipped. -\begin{scriptsize} -\begin{verbatim} - assimilate obs in order they were read in - 1 timing on proc 0 = 0.51 0.24 0.01 0.10 0.00 0.15 0 - 22152 out of 53078 obs skipped, 30926 used - 22736 out of 30926 same lat/long - time to broadcast obfit_post = 5.432746838778257E-004 secs, niter = - 1 -\end{verbatim} -\end{scriptsize} - -Next, the update to the analysis variables is performed and the time for the updating is shown: -\begin{scriptsize} -\begin{verbatim} -time in enkf_update = 4.79503449611366 on proc 0 -\end{verbatim} -\end{scriptsize} - -The regional averaged statistics of the inflation values are shown for surface pressure: -\begin{scriptsize} -\begin{verbatim} - global ps prior std. dev min/max = 21.52301 172.3270 - NH mean ps prior standard deviation = 57.82042 - NH mean ps posterior standard deviation (before inflation)= 29.20955 - NH mean ps posterior standard deviation (after inflation) = 54.58403 - NH mean ps inflation = 2.421974 - TR mean ps prior standard deviation = 31.09247 - TR mean ps posterior standard deviation (before inflation)= 28.31872 - TR mean ps posterior standard deviation (after inflation) = 30.79383 - TR mean ps inflation = 1.106122 - time in inflate_ens = 1.366839744150639E-002 on proc 0 -\end{verbatim} -\end{scriptsize} - -After the EnKF analysis, innovation statistics of the ensemble analyses are shown, similar to the ensemble priors\textquotesingle fit to all observations: -\begin{scriptsize} -\begin{verbatim} - innovation statistics for posterior: - conventional obs - region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): -NH all ps 14083 0.503E-03 0.757E+00 0.569E+00 0.146E+00 0.550E+00 -TR all ps 50 -0.562E-01 0.398E+00 0.585E+00 0.198E+00 0.550E+00 -NH all t 7766 -0.780E-01 0.145E+01 0.122E+01 0.263E+00 0.119E+01 -TR all t 138 -0.107E+00 0.115E+01 0.118E+01 0.199E+00 0.117E+01 -NH all uv 21680 0.406E-01 0.267E+01 0.246E+01 0.655E+00 0.237E+01 -TR all uv 302 -0.259E+00 0.236E+01 0.246E+01 0.636E+00 0.238E+01 -NH all q 2553 -0.174E-01 0.114E+00 0.138E+00 0.444E-01 0.131E+00 -TR all q 68 -0.279E-01 0.168E+00 0.159E+00 0.413E-01 0.154E+00 - satellite brightness temp - instrument, channel #, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): - amsua_n18 1 241 0.614E+02 0.915E+02 0.263E+01 0.823E+00 0.250E+01 - amsua_n18 2 248 -0.132E+03 0.171E+03 0.223E+01 0.376E+00 0.220E+01 - amsua_n18 3 248 -0.303E+02 0.398E+02 0.201E+01 0.244E+00 0.200E+01 - amsua_n18 4 248 -0.231E+00 0.580E+01 0.555E+00 0.776E-01 0.550E+00 - amsua_n18 5 248 -0.788E+00 0.199E+01 0.305E+00 0.575E-01 0.300E+00 - amsua_n18 6 1203 -0.138E+01 0.158E+01 0.234E+00 0.423E-01 0.230E+00 - amsua_n18 7 1225 -0.273E+01 0.287E+01 0.232E+00 0.322E-01 0.230E+00 - amsua_n18 8 1155 -0.131E+01 0.186E+01 0.254E+00 0.437E-01 0.250E+00 - amsua_n18 10 1211 -0.179E+01 0.196E+01 0.352E+00 0.374E-01 0.350E+00 - amsua_n18 11 12 -0.130E+01 0.133E+01 0.404E+00 0.537E-01 0.400E+00 - amsua_n18 15 245 -0.163E+03 0.198E+03 0.357E+01 0.693E+00 0.350E+01 - hirs4_metop-a 3 1 0.118E+01 0.118E+01 0.533E+00 0.558E-01 0.530E+00 - hirs4_metop-a 4 42 0.286E+00 0.542E+00 0.403E+00 0.455E-01 0.400E+00 - hirs4_metop-a 5 7 -0.451E+00 0.487E+00 0.364E+00 0.562E-01 0.360E+00 - hirs4_metop-a 6 7 -0.724E+00 0.755E+00 0.468E+00 0.852E-01 0.460E+00 - hirs4_metop-a 7 9 -0.572E+00 0.817E+00 0.577E+00 0.871E-01 0.570E+00 - hirs4_metop-a 8 9 0.122E+01 0.136E+01 0.100E+01 0.205E-01 0.100E+01 - hirs4_metop-a 10 9 0.855E+00 0.100E+01 0.609E+00 0.104E+00 0.600E+00 - hirs4_metop-a 11 9 -0.236E-01 0.543E+00 0.130E+01 0.507E+00 0.120E+01 - hirs4_metop-a 12 34 -0.738E+00 0.153E+01 0.178E+01 0.790E+00 0.160E+01 - hirs4_metop-a 13 9 0.121E+01 0.128E+01 0.375E+00 0.905E-01 0.364E+00 - hirs4_metop-a 14 9 0.776E-01 0.256E+00 0.281E+00 0.106E+00 0.260E+00 - hirs4_metop-a 15 9 0.281E+00 0.384E+00 0.273E+00 0.838E-01 0.260E+00 -\end{verbatim} -\end{scriptsize} - -Finally, the minimum and maximum of the analysis increments are shown as below. The analysis increments should be within a reasonable range. The computational time of these steps are also shown: -\begin{scriptsize} -\begin{verbatim} - time to gather state on root 0.101591360988095 secs - time level 1 - -------------- - ens. mean anal. increment min/max ps -123.0895 264.4738 - ens. mean anal. increment min/max var 1 -7.882635 7.015289 - ens. mean anal. increment min/max var 2 -7.460623 6.953684 - ens. mean anal. increment min/max var 3 -4.598419 1.846811 - ens. mean anal. increment min/max var 4 -0.2952938 0.4161232 - ens. mean anal. increment min/max var 5 0.0000000E+00 0.0000000E+00 - time to gather ens mean increment on root 2.756185410544276E-002 secs - time in writegriddata on root 0.255841280566528 secs - time in write_ensemble = 0.385106393136084 on proc 0 -\end{verbatim} -\end{scriptsize} - -The next line indicates the time of the analysis finish: -\begin{scriptsize} -\begin{verbatim} - ENDING DATE-TIME JUL 14,2016 00:01:11.329 196 THU 2457584 - PROGRAM ENKF_ANL HAS ENDED. -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . -\end{verbatim} -\end{scriptsize} - -The next lines show the computer resources used in the analysis and a sign that EnKF has finished, "all done": -\begin{scriptsize} -\begin{verbatim} -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . -*****************RESOURCE STATISTICS******************************* -The total amount of wall time = 7.431095 -The total amount of time in user mode = 6.480014 -The total amount of time in sys mode = 0.713891 -The maximum resident set size (KB) = 122848 -Number of page faults without I/O activity = 46688 -Number of page faults with I/O activity = 0 -Number of times filesystem performed INPUT = 0 -Number of times filesystem performed OUTPUT = 0 -Number of Voluntary Context Switches = 24121 -Number of InVoluntary Context Switches = 138 -*****************END OF RESOURCE STATISTICS************************* - - all done! -\end{verbatim} -\end{scriptsize} - -%---------------------------------------------- -\section{Tuning of Inflation and Localization} \label{ch4_tuningandinflat} -%---------------------------------------------- - -Proper inflation and localization values need to be determined by experimenting with different inflation values. The goal is to make the total ensemble spreads of priors match the innovations as much as possible. In the tuning process, the vertical and horizontal structure of the match should be carefully examined. The 3D distribution of the inflation values can be plotted offline from the output file \verb| "covinflate.dat" |. - -The tuning processes can vary for different resolutions and physics of the models as well as the observation types assimilated. The performance of the tuning may be better examined after multiple assimilation cycles allowing their effects to be accumulated and converged in cycling assimilation. Please also note that proper settings of observation error estimations are also critical for the inflation tuning. - -Next, the test case is taken as an example to check if the inflation is appropriate. In the following lines of the standard output (\verb|stdout|), the number (column \verb|nobs|), mean (column \verb|bias|), and standard deviation (column \verb|innov stdev|) of the ensemble background fits to Ps, wind, temperature, and water vapor observations in the NH and TR are shown: -\begin{scriptsize} -\begin{verbatim} - innovation statistics for prior: - conventional obs - region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): -NH all ps 14083 -0.591E-02 0.860E+00 0.814E+00 0.601E+00 0.550E+00 -TR all ps 50 -0.629E-01 0.422E+00 0.661E+00 0.367E+00 0.550E+00 -NH all t 7766 -0.228E+00 0.163E+01 0.128E+01 0.480E+00 0.119E+01 -TR all t 138 -0.130E+00 0.118E+01 0.119E+01 0.234E+00 0.117E+01 -NH all uv 21680 0.136E-01 0.295E+01 0.276E+01 0.140E+01 0.237E+01 -TR all uv 302 -0.379E+00 0.251E+01 0.268E+01 0.124E+01 0.238E+01 -NH all q 2553 -0.323E-01 0.146E+00 0.157E+00 0.868E-01 0.131E+00 -TR all q 68 -0.721E-01 0.202E+00 0.164E+00 0.582E-01 0.154E+00 -\end{verbatim} -\end{scriptsize} - -It would be desirable that the total ensemble spreads of prior/background match the innovation standard deviations as close as possible (Equation 15). In practice, one should check if there is any substantial ensemble spread deficiency. In the above sample standard output lines, the ensemble prior spreads are shown in the column $\sqrt(S)$, and the total spreads in the column $\sqrt(S+R)$. Here, $\sqrt(R)$ is the observation error. - -The above sample statistics shows that in NH, the total spread of temperature observation priors (0.128E+01 ) is close to the innovation standard deviation (0.163E+01) of the priors fit to the observations. - -%---------------------------------------------- -\section{Tuning EnKF through Key Namelist Options} -%---------------------------------------------- - -The namelist parameters controlling the EnSRF analysis are set in the namelist sections: /\verb|enkf_nml/|, \verb|/satobs_enkf/|, and \verb|/nam_wrf/| (all in the file \verb|enkf.nml|). To obtain a successful analysis, it is very important to setup/tune properly the namelist variables, particularly those related to inflation and localization, for each specific application configuration of various models and observation types. - -%---------------------------------------------- - \subsection{Set Up the Analyses Time and Data Location} -%---------------------------------------------- - - The analysis time and working location are setup by the following parameters: -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{datein}: & analysis time (YYYYMMDDHH) \\ - -\textit{datapath}: & path to data directory (include trailing slash). In most cases, \\ - & this should point to the current directory because the run scripts \\ - & have setup the run environment in the working directory including \\ - & copying the EnKF executable and data into the working directory. \\ - -\end{tabular} -\end{table} - - -%---------------------------------------------- -\subsection{Set Up Analysis Algorithm} -%---------------------------------------------- -In the current implementation, a few variations/flavors of the EnKF are available, including the ensemble square root Kalman filter (EnSRF, \textit{Whitaker et al.}, 2010, etc), the perturbed observations EnKF, and the local transformed Kalman filter (LETKF). These options are set in the namelists below: - - -\begin{minipage}[t]{0.2\textwidth} -\textit{deterministic}\\ -\\ -\textit{sortinc}\\ -\\ -\textit{letkf\_flag}\\ -\textit{boxsize}\\ -\textit{iassim\_order}\\ -\end{minipage} -\begin{minipage}[t]{0.8\textwidth} -= true, use EnSRF without perturbed observations;\\ -= false, use perturbed observations version of EnKF. \\ -if deterministic = false, re-order observations to - minimize regression errors as described in Anderson (2003). \\ - if true, use the LETKF scheme. \\ - observation box size for LETKF (deg)\\ - = 0, assimilation of observations in the order they are read in; \\ - = 1 in random order; \\ - = 2 in order of predicted posterior variance reduction. \\ -\end{minipage} - -\begin{minipage}[t]{0.2\textwidth} -\textit{paoverpb\_thresh}\\ -\end{minipage} -\begin{minipage}[t]{0.8\textwidth} - the threshold of the ratio of observation space posterior - variance divided by prior variance (<= 1.0), that is, the -expected reduction of prior variance by the observations. \\ - \\ - Smaller values mean only those observations with - stronger impact will be assimilated. \\ - \\ - If =1, no thinning of observations is done. - Typical values: 0.99 or 0.98. \\ -\end{minipage} - - -%---------------------------------------------- -\subsection{Set Up the Analyses Variables} -%---------------------------------------------- - -The analyses variables for both global and regional models are hardcoded in the EnSRF. There are several options using the following parameters: -\begin{footnotesize} -\begin{verbatim} - nvars: number of 3d model variables to update. -\end{verbatim} -\end{footnotesize} -For hydrostatic global models, there are typically 5, including U, V, T, QVAPOR, Ozone. For non-hydrostatic regional models, like WRF, different combinations of the 3D and 2D analyses variables are set as below: -\begin{footnotesize} -\begin{verbatim} -For ARW (arw =true) - nvars =3: U, V, T, and MU - =4: U, V, T, QVAPOR, and MU - =5: U, V, T, QVAPOR, PH, and MU - =6: U, V, W, T, QVAPOR, PH, and MU - -For NMM (nmm =true) - nvars =3: U, V, T, and PD - =4: U, V, T, QVAPOR, and PD - =5: U, V, T, QVAPOR, CWM, and PD -\end{verbatim} -\end{footnotesize} - -The analyses variable list can be adjusted or additional variables, such as moisture related variables, can be added to the list by modifying the subroutines \verb| "gridinfo.F90" | and \verb| "gridio.F90" | accordingly. - -\begin{table}[htbp] -\centering -\begin{tabular}{ll} -\textit{pseudo\_rh}: & use or not 'pseudo-rh' analysis variable, as in GSI. \\ -\textit{cliptracers}: & if true, tracers are clipped to zero when read in, and just \\ - & before they are written out. \\ -\end{tabular} -\end{table} - - -%---------------------------------------------- -\subsection{Set Up the Ensemble Backgrounds} -%---------------------------------------------- - -The following parameters define which background fields will be used in the analyses and their dimensions: -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{regional} & = true, perform regional EnSRF analyses using either ARW \\ - & or NMM inputs as the background. \\ - & =false, perform a global analysis. If either the parameter \\ - & nmm or wrf is set to true, it will be set to true. \\ - -\textit{nmm} & if true, background comes from WRF NMM. When using \\ - & other background fields, set it to false. \\ - -\textit{wrf} & if true, background comes from WRF ARW. When using \\ - & other background fields, set it to false. \\ - -\textit{nlons} & number of grid points in longitude of the model background \\ - -\textit{nlats} & number of grid points in latitude of the model background \\ - -\textit{nlevs} & number of vertical levels of the model background \\ - -\textit{nanls} & number of ensemble members \\ - -\end{tabular} -\end{table} - -%---------------------------------------------- -\subsection{Set Up Localization Distances} -%---------------------------------------------- - -In the current EnKF implementation, distances for localization can be set separately in the northern hemisphere, tropics and southern hemisphere, and in the horizontal, vertical and time dimensions, and for different observation types using namelist parameters. The length scales should be given in km for the horizontal, hours for time, and scale heights (units of -$\log(P/P_{ref})$) in the vertical. - -There are two options to setup the localization distances in horizontal and vertical. These are decided by the namelist variable -\verb| "readin_localization" |: -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{readin\_localization}: & =.true., customized horizontal and vertical localization\\ - & values varying with model levels are read in from the \\ - & external text file \verb|"hybens_locinfo"|. \\ - - & = .false., the horizontal and vertical localization \\ - & distances are set by the following parameters \\ - -\textit{corrlengthnh}: & length for horizontal localization in km in the northern \\ - & hemisphere (25N-90N, NH) \\ - -\textit{corrlengthtr}: & length for horizontal localization in km in the tropics \\ - & (25S-25N, TR) \\ - -\textit{corrlengthsh}: & length for horizontal localization in km in the southern \\ - & hemisphere (25S-90S, SH) \\ - -\textit{lnsigcutoffnh}: & scale height for vertical localization in -$\log(P/P_ref)$ in NH. \\ - -\textit{lnsigcutofftr}: & scale height for vertical localization in -$\log(P/ P_ref)$ in TR. \\ - -\textit{lnsigcutoffsh}: & scale height for vertical localization in -$\log(P/P_ref)$ in SH. \\ - -\end{tabular} -\end{table} - - -The text file \verb| "hybens_locinfo" | contains vertical profile of horizontal and vertical localization length scales (in e-folding scale). These scales are converted to the full distance width (*1/0.388 in km) of Gaspari-Cohn function, where it goes to zero. The horizontal and vertical scales can be adjusted for each observation types easily in the subroutine -\verb| "read_locinfo.f90" |. - -For satellite radiance and surface pressure observations, the vertical localization distances are set separately using the following parameters: -\begin{verbatim} - lnsigcutoffsatnh, lnsigcutoffsattr, lnsigcutoffsatsh; and - lnsigcutoffpsnh, lnsigcutoffpstr, lnsigcutoffpssh -\end{verbatim} -There is also one option to setup the time localization window, which is the time away from the analyses time. This is decided by the following namelist variables:\\ - -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{obtimelnh}: & time in hours away from the analyses time to move 2800 \\ - & km at 30 ms-1 in the northern hemisphere \\ - -\textit{obtimeltr}: & same as obtimelnh but for the tropics \\ - -\textit{obtimelsh}: & same as obtimelnh but for the southern hemisphere \\ - -\end{tabular} -\end{table} - - -The empirical determination/tuning of proper localization distances is important for successful analyses with ensemble data assimilation. In general, large horizontal scale observations, like GPS radio occultation and radiosonde observations, require larger horizontal localization distances to fully take advantage of the observations. On the other hand, high horizontal resolution observations, like radar observations, may need shorter horizontal localization distances. The same is true for the localization distance in vertical. - - -%---------------------------------------------- -\subsection{Set Up Adaptive Posterior Inflation Parameters} -%---------------------------------------------- - -The inflation can be set up by the following parameters: - -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{anapertwtnh}: & inflation parameter in NH. \\ - -\textit{anapertwttr}: & inflation parameter in TR. \\ - -\textit{anapertwtsh}: & inflation parameter in SH. \\ - -The parameters & = 0 means no inflation. \\ - & = 1 means inflation all the way back to prior spread. \\ - -\end{tabular} -\end{table} -These are the key tuning parameters for the performance - of EnSRF. Typical values: ~0.95. - - -The inflation factor fields can be smoothed out using the following parameter: -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{smoothparm}: & parameter for smoothing inflation factor, \\ -& = -1 for no smoothing. \\ -& > 0, the estimated inflation factor is smoothed using a \\ -& Gaussian spectral filter with an e-folding scale of the parameter \\ - -\textit{latbound}: & where the transition latitude starts (=25N or 25S) \\ - -\textit{delat}: & latitude width of transition zone where the inflation \\ -& parameter is smoothed. \\ - -\end{tabular} -\end{table} - -The minimum and maximum inflation values allowed can be controlled by the following parameters: -\begin{verbatim} - covinflatemin: minimum inflation factor - covinflatemax: maximum inflation factor -\end{verbatim} - - -%---------------------------------------------- -\subsection{Satellite Observations Related Parameters} -%---------------------------------------------- - -The following parameters are used to setup the adaptive satellite bias correction: -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{lupd\_satbias}: & = .true., update the satellite bias correction coefficients \\ -& using the adaptive bias correction scheme (when \\ -& the iterations of numiter > 1). \\ -& \\ -& = .false., the bias correction coefficients are not updated. \\ - -\textit{numiter}: & number of iterations for state/bias correction \\ -& coefficients update. (only relevant when satellite \\ -& radiances assimilated, i.e. nobs\_sat>0) \\ - -\textit{biasvar}: & background error variance for radiance bias coefficients \\ - & (used in radbias.f90). The default is GSI value. \\ - -\textit{saterrfact}: & factor to multiply satellite radiance errors. \\ - -\textit{sattypes\_rad}: & list of satellite observation types to be assimilated. \\ - -\textit{sattypes\_oz}: & list of ozone observation types to be assimilated. \\ - -\end{tabular} -\end{table} -%---------------------------------------------- -\subsection{Observation QC Parameters} -%---------------------------------------------- - -In addition to the observation quality flags decided in the GSI observer, the EnSRF itself also conducts a gross check on the observations. - -The outlier test computes the difference between the observation value and the prior ensemble mean. It then computes a standard deviation by taking the square root of the sum of the observation error variance and the prior ensemble variance for the observation. If the difference between the ensemble mean and the observation value is more than the specified number of standard deviations, then the observation is tossed. The threshold of the check is set as following: -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{sprd\_tol}: & tolerance for gross check of observations. \\ - & \\ -& Reject a observation if the prior mean is more than this many $\sqrt{(S+R)}$ from \\ - & the observation, where S is ensemble prior variance and R is observation error\\ - & variance. Typical value: ~3.0 \\ -\end{tabular} -\end{table} - -The following parameters are used to control if the GSI quality control procedure is performed in EnSRF: -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{varqc}: & = .false., no variational quality control performed (default). \\ - -\textit{huber}: & = .true., use huber norm instead of "flat-tail" (default: .false.). \\ - -\textit{zhuberleft}: & departure parameter of huber norm. \\ - -\textit{zhuberright}: & departure parameter of huber norm. \\ - -\end{tabular} -\end{table} - - - - - - - - diff --git a/doc/EnKF_user_guide/enkf_ch5.tex b/doc/EnKF_user_guide/enkf_ch5.tex deleted file mode 100644 index b4ade8fc0..000000000 --- a/doc/EnKF_user_guide/enkf_ch5.tex +++ /dev/null @@ -1,1689 +0,0 @@ -\chapter{Applications for Regional and Global EnKF}\label{application} -\setlength{\parskip}{12pt} - -In this chaper, the elements from the previous chapters will be applied to demonstrate how to run a regional and global case using the GSI observer and EnKF. These examples are intended to give users a clear idea of how to set up the GSI observer and EnKF for a particular application and properly check the run status and analysis results in order to determine if the run was successful. Note that the regional example focuses on WRF ARW, however WRF NMM and NMMB runs are similar, but require different background ensemble and namelist options. Similarly, the global example features a single global configuration (T254), however users may wish to use a different configuration, again requiring different background ensemble and namelist options. - -It is assumed that the reader has successfully compiled GSI and EnKF on a local machine. -For \textbf{regional case studies}, users should have the following data available: -\begin{enumerate} -\item Ensemble for background -\begin{itemize} -\item Ensemble files from WRF-ARW, WRF-NMM, NMM-B forecast files may be -used. For this case, WRF-ARW ensemble members will be used, which are generated from the GFS ensemble, following the naming convention: \verb|wrfarw.mem00nn|. Where \verb|nn| corresponds to each ensemble member ("ensmean" appended for ensemble mean). -\end{itemize} -\item Conventional, GPSRO and radiance data -\begin{itemize} -\item Real time GDAS and NAM PrepBUFR data can be obtained from the server: -\url{ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/} \\ -\url{ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/nam/prod/} \\ -\end{itemize} -\item Fixed files -\begin{itemize} -\item Fixed files are located in the \verb|comGSIv3.5_EnKFv1.1/fix| directory -\end{itemize} -\end{enumerate} - -For \textbf{global case studies}, users should have the following data available: -\begin{enumerate} -\item Ensemble for background -\begin{itemize} -\item Ensemble files from GFS forecast files may be used. GFS ensemble members corresponding to various spectral resolutions may be used, following the naming convention: \verb|sfg_yyyymmddhh_fhrff_mem0nn|. The "yyyymmddhh" corresponds to the initialization date, "ff" corresponds to the forecast hour, and "nn" corresponds to each ensemble member (\verb|ensmean| appended for ensemble mean). -\end{itemize} -\item Conventional data -\begin{itemize} -\item Real time GDAS PrepBUFR (and BUFR) data can be obtained from the server: \\ -\url{ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/} -\end{itemize} -\item Fixed files -\begin{itemize} -\item Fixed files are located in the \verb|comGSIv3.5_EnKFv1.1/fix/global| directory -\end{itemize} -\end{enumerate} -The following cases will give users an example of how to run the EnKF for a regional case with various data sources, as well as a simple global application case. Users are welcome to download these examples from the EnKF User\textquotesingle s webpage (online case for release v1.1) or create a new background ensemble and obtain observation data from the above server. - -The background ensemble files and observations used in the regional case studies are as follows: -\begin{enumerate} -\item Background files: wrfarw.mem0001 - wrfarw.mem0020, wrfarw.ensmean -\begin{itemize} -\item The horizontal grid spacing is 45-km with 51 vertical sigma levels. -% figure 5.1 -% Background used for regional case study -\begin{figure}[h!] - \centering - \caption{Background used for regional case study} - \includegraphics[width=0.7\textwidth]{images/ch5_figure1.jpg} - \label{ch5_fig1} -\end{figure} -\end{itemize} -\item Conventional, GPSRO and radiance data from 00 UTC 13 February 2014 -\begin{itemize} -\item Conventional file: -\begin{itemize} -\item \verb|gdas1.t00z.prepbufr.nr| -\end{itemize} -\item GPSRO file: -\begin{itemize} -\item \verb|gdas1.t00z.gpsro.tm00.bufr_d| -\end{itemize} -\item Radiance files: -\begin{itemize} -\item \verb|gdas1.t00z.1bamua.tm00.bufr_d| -\item \verb|gdas1.t00z.1bhrs4.tm00.bufr_d| -\item \verb|gdas1.t00z.1bmhs.tm00.bufr_d| -\end{itemize} -\end{itemize} -\item Fixed files: -\begin{itemize} -\item Fixed files are located in the GSI/EnKF community code package, under -\verb|/comGSIv3.5_EnKFv1.1/fix| -\item For observation control: -\begin{itemize} -\item \verb|convinfo|: conventional data (PrepBUFR, GPSRO) info file -\item \verb|ozinfo|: ozone retrival info file -\item \verb|satinfo|: satellite radiance info file -\end{itemize} -\item Adaptive radiance bias correction (although example files are provided in the \verb|/fix| directory, it is better to obtain bias correction files valid for the proper date. For this case, GFS bias correction coefficients are provided with the case data): -\begin{itemize} -\item \verb|satbias_in|: satellite bias correction coefficient file -\item \verb|satbias_pc|: satellite bias correction coefficient file for passive channels. -\end{itemize} -\end{itemize} -\end{enumerate} - - - -This case study was run on a linux cluster. GSI no longer (from GSI v3.2) requires byte- swapping to little endian format. BUFRLIB can automatically handle byte order issues. - -For the \textbf{regional ARW case}, assume the following locations: - -Path to the background ensemble files: -\begin{verbatim} - /scratch/casedata/arw_2014021300/bk/ -\end{verbatim} -the path to the observations: -\begin{verbatim} - /scratch/casedata/arw_2014021300/obs -\end{verbatim} -and the GSI release version 3.5/EnKF version 1.1 is located at: -\begin{verbatim} - /scratch/comGSIv3.5_EnKFv1.1 -\end{verbatim} -For the global GFS case, assume locations as follows: Path to background ensemble files: -\begin{verbatim} - /scratch/casedata/enkf_glb_t254/bk -\end{verbatim} -the path to the observations: -\begin{verbatim} - /scratch/casedata/enkf_glb_t254/obs -\end{verbatim} -and the GSI release version 3.5/EnKF version 1.1 is located at: -\begin{verbatim} - /scratch/comGSIv3.5_EnKFv1.1 -\end{verbatim} - - -%---------------------------------------------- -\section{Running GSI Observer for Regional Applications} -%---------------------------------------------- - -%---------------------------------------------- -\subsection{Run Script} -%---------------------------------------------- - -With both GSI and EnKF compiled and the background ensemble files and observations acquired, -the next step is to work with the gsi observer run script, \verb|run_gsi_regional.ksh|. The location of this -script is under \verb|comGSIv3.5_EnKFv1.1/run|. This run script is the same as the one used for -a GSI analysis run, with a few specific options selected in order to loop through all the ensemble -members and generate the ensemble observation priors for each member and the ensemble -mean. In addition to the GSI observer specific options, other user-specific modifications need -to be made: - -\begin{itemize} -\item \textbf{Set up batch queueing system} \\ -To run GSI with multiple processors, a job queuing head must be added to the \verb| run_gsi_regional.ksh | script. The set up of the job queue is dependent on the machine and the job control system. Refer to the GSI User\textquotesingle s - Guide, section 3.2.2, for more examples of the setup section of this script. The following example is setup to run on a Linux cluster with LSF: -\begin{footnotesize} -\begin{verbatim} -#BSUB -P ?????? # project code -#BSUB -W 00:30 # wall-clock time (hrs:mins) -#BSUB -n 4 # number of tasks in job -#BSUB -R "span[ptile=16]" # run 16 MPI tasks per node -#BSUB -J gsi # job name -#BSUB -o gsi.%J.out # output file name in which %J is replaced by the job ID -#BSUB -e gsi.%J.err # error file name in which %J is replaced by the job ID -#BSUB -q small # queue -\end{verbatim} -\end{footnotesize} - -\item \textbf{Set up number of processors and the job queue system used} -For this example, \verb|LINUX_LSF| and 4 processors are used: - -\begin{footnotesize} -\begin{verbatim} - GSIPROC=4 - ARCH='LINUX_LSF' -\end{verbatim} -\end{footnotesize} - -\item \textbf{Set up the case data, analysis time, fix files, GSI executable, and CRTM coefficients:} - -Set up analysis time: - -\begin{footnotesize} -\begin{verbatim} - ANAL_TIME=2014021300 -\end{verbatim} -\end{footnotesize} - -Set up working directory, which will hold the analysis results (all ensemble members will be run in this directory). This directory must have the proper write permissions as well as enough space to hold the output. - -\begin{footnotesize} -\begin{verbatim} - WORK_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/gsidiag_2014021300 -\end{verbatim} -\end{footnotesize} - -Set path to the observation directory and the PrepBUFR file within the observation directory. All observations to be assimilated should reside in this directory. - -\begin{footnotesize} -\begin{verbatim} - OBS_ROOT=/scratch/${user}/casedata/arw_2014021300/obs - PREPBUFR=${OBS_ROOT}/gdas1.t00z.prepbufr.nr -\end{verbatim} -\end{footnotesize} - -Set path to background ensemble files: - -\begin{footnotesize} -\begin{verbatim} - BK_ROOT=/scratch/${user}/casedata/arw_2014021300/bk -\end{verbatim} -\end{footnotesize} - -Set file for background ensemble mean: - -\begin{footnotesize} -\begin{verbatim} - BK_FILE=${BK_ROOT}/wrfarw.ensmean -\end{verbatim} -\end{footnotesize} - -Set the GSI system used for this case, including the paths of the fix files and the CRTM coefficents as well as the location of the GSI executable: - -\begin{footnotesize} -\begin{verbatim} - CRTM_ROOT=/scratch/${user}/CRTM_REL-2.2.3 - GSI_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/ - FIX_ROOT=${GSI_ROOT}/fix - GSI_EXE=${GSI_ROOT}/run/gsi.exe - GSI_NAMELIST=${GSI_ROOT}/run/comgsi_namelist.sh -\end{verbatim} -\end{footnotesize} - -\item \textbf{Set which background and background error file to use} - -\begin{footnotesize} -\begin{verbatim} - bk_core=ARW - bkcv_option=NAM - if_clean=clean -\end{verbatim} -\end{footnotesize} - -This example uses the ARW NetCDF background; therefore \verb| bk_core | is set to \verb|ARW|. The regional background error covariance file is used in this case, as set by \verb| bkcv_option=NAM |. Finally, the run scripts are set to clean the run directory to delete all temporary intermediate files.\\ - -\item \textbf{Choose to run GSI observer, set up background ensemble information} - -\begin{footnotesize} -\begin{verbatim} - if_observer=Yes - no_member=20 - BK_FILE_mem=${BK_ROOT}/wrfarw.mem -\end{verbatim} -\end{footnotesize} - -The option \verb|if_observer=Yes| is the switch that enables \verb|run_gsi_regional.ksh| to run the GSI observer (rather than GSI analysis). In this example, 20 ensemble members are selected with the naming convention: -\verb|wrfarw.memnnnn|. Note that memnnnn which is associated with each ensemble member (nnnn), is not included and will be appended later in the script.\\ - -\item \textbf{Link observations} - -\begin{footnotesize} -\begin{verbatim} -# Link to the prepbufr data -ln -s ${PREPBUFR} ./prepbufr -# Link to the radiance data -ln -s ${OBS_ROOT}/gdas1.t00z.1bamua.tm00.bufr_d amsuabufr -ln -s ${OBS_ROOT}/gdas1.t00z.1bhrs4.tm00.bufr_d hirs4bufr -ln -s ${OBS_ROOT}/gdas1.t00z.1bmhs.tm00.bufr_d mhsbufr -ln -s ${OBS_ROOT}/gdas1.t00z.gpsro.tm00.bufr_d gpsrobufr -\end{verbatim} -\end{footnotesize} - -\end{itemize} - -Past the arch selection, environment variable checks, and creation of working directory, users will find the location where the observations are linked. For this case, we can see that the conventional PrepBUFR observations have been linked, as well as three different satellite radiance BUFR files (AMSU-A, HIRS4, and MHS) and a GPS RO BUFR file. These files will be linked to the working directory and separate observation innovation (diag) files will be generated for each observation. - -In the run script, the proper anavinfo file is selected based on the core and background error covariance used for the case: - -\begin{footnotesize} -\begin{verbatim} - echo ' Use NAM background error covariance' - BERROR=${FIX_ROOT}/${BYTE_ORDER}/nam_nmmstat_na.gcv - OBERROR=${FIX_ROOT}/nam_errtable.r3dv - if [ ${bk_core} = NMM ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_ndas_netcdf - fi - if [ ${bk_core} = ARW ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_arw_netcdf - fi - if [ ${bk_core} = NMMB ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_nems_nmmb - fi -\end{verbatim} -\end{footnotesize} - -The anavinfo file used for this case is \verb| anavinfo_arw_netcdf |, because the background is NetCDF ARW and the regional background error covariance has been selected. It is -important to check this file, located in the \verb|./fix| directory. The number of vertical levels in \verb| anavinfo_arw_netcdf | must match those for the background. In this example, the case has 50 vertical levels with the default value in \verb|anavinfo_arw_netcdf| is 40. Change these values (\verb|level column|) accordingly: - -\begin{footnotesize} -\begin{verbatim} -met_guess:: -!var level crtm_use desc orig_name - ps 1 -1 surface_pressure ps - z 1 -1 geopotential_height phis - u 50 2 zonal_wind u - v 50 2 meridional_wind v - div 50 -1 zonal_wind div - vor 50 -1 meridional_wind vor - tv 50 2 virtual_temperature tv - q 50 2 specific_humidity sphu - oz 50 2 ozone ozone - cw 50 10 cloud_condensate cw -... ... -control_vector:: -!var level itracer as/tsfc_sdv an_amp0 source funcof - sf 50 0 1.00 -1.0 state u,v - vp 50 0 1.00 -1.0 state u,v - ps 1 0 0.50 -1.0 state prse - t 50 0 0.70 -1.0 state tv - q 50 1 0.70 -1.0 state q - oz 50 1 0.50 -1.0 state oz - sst 1 0 1.00 -1.0 state sst - cw 50 1 1.00 -1.0 state cw - stl 1 0 1.00 -1.0 motley sst - sti 1 0 1.00 -1.0 motley sst -:: -\end{verbatim} -\end{footnotesize} - -%---------------------------------------------- -\subsection{Run GSI Observer and Check Run Status} -%---------------------------------------------- - -Once the run script is set up properly for the case and the machine, GSI can be run through the run script. The following command will submit the job: -\begin{small} -\begin{verbatim} -$ bsub < run_gsi_regional.ksh -\end{verbatim} -\end{small} - -While the job is running, move to the working directory and check the details. Given the following working directory setup: - -\begin{small} -\begin{verbatim} -WORK_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/gsidiag_2014021300 -\end{verbatim} -\end{small} - -Go to directory \verb|WORK_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/| and check the run directory. A directory named \verb|gsidiag_2014021300| should have been created. This directory is the run directory for this GSI observer case study. The directory will be populated with many files: - -\begin{footnotesize} -\begin{verbatim} -amsua_n18.TauCoeff.bin -ssmi_f15.SpcCoeff.bin -amsua_n18.SpcCoeff.bin -ssmi_f15.TauCoeff.bin -imgr_g11.SpcCoeff.bin -imgr_g11.TauCoeff.bin -\end{verbatim} -\end{footnotesize} - -These files are CRTM coefficients that have been linked to this run directory through the GSI run script. Similar to running the GSI analysis, many other files are linked or copied to this run directory, such as: - -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{gsiparm.anl}: & GSI namelist \\ - -\textit{prepbufr}: & PrepBUFR file for conventional observation \\ - -\textit{convinfo}: & data usage control for conventional data \\ - -\textit{satbias\_in}: & satellite bias correction coefficient file \\ - -\textit{satinfo}: & data usage and channel control for satellite radiance data \\ - -\textit{berror\_stats}: & background error file \\ - -\textit{errtable}: & observation error file \\ - -\end{tabular} -\end{table} - -Additionally, for the GSI observer many files are generated as a result of the \verb|lread_obs_save| and \verb|lread_obs_skip| options in the namelist for writing/reading collective observation selection information: - -\begin{table}[htbp] -\centering -\begin{tabular}{ll} - -\textit{obs\_input.nnnn}: & During ensemble mean (save=True, skip=False), save all observation \\ - & preprocessing to this file. Each file (nnnn) is for a different variable type\\ - - -\textit{pennnn.obs\_setup}: & When looping through ensemble members (save=False, skip=True), \\ - & all observation preprocessing is skipped, \textit{obs\_input.nnnn} files \\ - & are read and \textit{pennnn.obs\_setup} is written for each processor \\ - & (nnnn) for all observations. - -\end{tabular} -\end{table} - -As the GSI observer is running for the ensemble mean as well as looping through each member, files are are generated for each ensemble member, as well as the ensemble mean. -\begin{table}[htbp] -\centering -\begin{tabular}{ll} -\textit{pennnn.conv\_01}: & Files generated after O-B, generated for conventional \\ - & observations as well as one file per sensor (e.g. AMSU-A n18). \\ - & These files are trimmed for resulting diag files and cleaned.\\ -\textit{list\_run\_directory}: & Directory listing after ensemble mean is run, before directory \\ - & is cleaned for running the ensemble members.\\ -\textit{list\_run\_directory\_memnnn}: & As as above, for each ensemble member (nnn).\\ -\textit{stdout}: & Standard output file for ensemble mean.\\ -\textit{stdout\_memnnn}: & Standard output file for each ensemble member (nnn).\\ -\end{tabular} -\end{table} - -The presence of the standard output files in the directory suggest the GSI observer run scripts have successfully set up a run environment for the GSI observer, properly looping through the ensemble members, and the GSI executable is running on each ensemble member. - -Once GSI has finished running, diag files should be generated for each observation type for each member as well as the ensemble mean: -\begin{footnotesize} -\begin{verbatim} -diag_conv_ges.ensmean diag_conv_ges.mem001 -diag_conv_ges.mem002 diag_conv_ges.mem003 -diag_conv_ges.mem004 diag_conv_ges.mem005 -... ... diag_conv_ges.mem020 - -diag_amsua_metop-a_ges.ensmean diag_amsua_metop-a_ges.mem001 -diag_amsua_metop-a_ges.mem002 diag_amsua_metop-a_ges.mem003 -diag_amsua_metop-a_ges.mem004 diag_amsua_metop-a_ges.mem005 - ... ... diag_amsua_metop-a_ges.mem020 - -diag_amsua_n18_ges.ensmean diag_amsua_n18_ges.mem001 -diag_amsua_n18_ges.mem002 diag_amsua_n18_ges.mem003 -diag_amsua_n18_ges.mem004 diag_amsua_n18_ges.mem005 -...... -diag_hirs4_n19_ges.ensmean diag_amsua_n15_ges.mem001 -diag_hirs4_n19_ges.mem002 diag_amsua_n15_ges.mem003 -diag_hirs4_n19_ges.mem004 diag_amsua_n15_ges.mem005 -... ... diag_amsua_n15_ges.mem020 - -\end{verbatim} -\end{footnotesize} - - - -%---------------------------------------------- -\subsection{Check for Successful GSI Completion} -%---------------------------------------------- - -The presence of the diag files and standard out files for the ensemble mean and each member indicates that the GSI observer has run without crashing, but does not necessary indicate a successful analysis. It is important to check the stdout files in the run directory to make sure the GSI observer completed each step without any obvious problems. The following are several important areas of the standard out file to check: -\begin{enumerate} -\item Read in the anavinfo and namelist -\begin{footnotesize} -\begin{verbatim} - gsi_metguess_mod*init_: 2D-MET STATE VARIABLES: - ps - z - gsi_metguess_mod*init_: 3D-MET STATE VARIABLES: - u - v - div - vor - tv - q - oz - cw -..... - - &SETUP - GENCODE = 78.0000000000000 , - FACTQMIN = 0.000000000000000E+000, - FACTQMAX = 0.000000000000000E+000, -..... -\end{verbatim} -\end{footnotesize} - -\item Read in the background field - -The following lines in stdout immediately following the namelist section, indicate that GSI is reading the background fields. Checking that the range of the max and min values will indicate if particular background fields are normal. - -\begin{footnotesize} -\begin{verbatim} - dh1 = 3 - iy,m,d,h,m,s= 2014 2 13 0 0 - 0 - dh1 = 3 - rmse_var = SMOIS - ndim1 = 3 - ordering = XYZ - staggering = N/A - start_index = 1 1 1 0 - end_index = 129 70 4 0 - WrfType = 104 - ierr = 0 -... ... - rmse_var = T ndim1= 3 - WrfType = 104 WRF_REAL= 104 ierr = 0 - ordering = XYZ staggering = N/A - start_index = 1 1 1 0 end_index = - 129 70 50 0 - k,max,min,mid T= 1 313.3391 237.9947 273.2565 - k,max,min,mid T= 2 313.4587 238.4884 273.5590 - k,max,min,mid T= 3 313.6850 239.3906 274.1599 - k,max,min,mid T= 4 314.0594 241.0577 275.0899 - k,max,min,mid T= 5 314.6113 243.6186 276.3394 - k,max,min,mid T= 6 315.3213 247.0504 277.7711 -... ... -\end{verbatim} -\end{footnotesize} - -\item Read in observational data - -The \verb|stdout| (ensemble mean) and \verb|stdout_memnnn| (ensemble members) contains distinct differences for the reading in the observational data controlled by the \verb|lread_obs_save| and \verb|lread_obs_skip| options in the namelist \\ - -a. Ensemble mean -\begin{scriptsize} -\begin{verbatim} - read_obs_check: bufr file date is 2014021300 prepbufr q - read_obs_check: bufr file date is 2014021300 prepbufr ps - read_obs_check: bufr file uv not available satwndbufr - read_obs_check: bufr file rw not available radarbufr - read_obs_check: bufr file pcp_tmi trmm not available tmirrbufr - read_obs_check: bufr file hirs3 n17 not available hirs3bufr -... ... - number of extra processors 1 - READ_OBS: read 33 mhs mhs_n18 using ntasks= 2 0 1795 0 - READ_OBS: read 34 mhs mhs_n19 using ntasks= 2 2 584 0 - READ_OBS: read 35 mhs mhs_metop-a using ntasks= 2 0 174 0 - READ_OBS: read 36 mhs mhs_metop-b using ntasks= 2 2 2 0 -... ... - READ_BUFRTOVS : file=mhsbufr type=mhs sis=mhs_n19 nread= 0 - ithin= 2 rmesh= 60.000000 isfcalc= 0 ndata= 0 ntask= 2 -... ... - READ_PREPBUFR : file=prepbufr type=uv sis=uv nread= 52122 - ithin= 0 rmesh= 120.000000 isfcalc= 0 ndata= 50772 ntask= 1 -... ... - READ_OBS: write collective obs selection info to obs_input.common -\end{verbatim} -\end{scriptsize} - -For the ensemble mean, the same procedure for observation processing as the GSI analysis is followed (\verb|read_obs_check|, \verb|READ_OBS|, \verb|READ_BUFRTOVS|, \verb|READ_GPS|, \verb|READ_PREPBUFR| ...). Finally, it is indicated that the collective observations selection information is written out for use with the ensemble members.\\ - -b. Ensemble members - -For the \verb|stdout_memnnn|, the observation processing steps are skipped and observation information is read in from the ensemble mean: - -\begin{footnotesize} -\begin{verbatim} -OBSERVER_SET: read collective obs selection info from obs_input.common -\end{verbatim} -\end{footnotesize} - - -Finally, for both the ensemble mean and members, the following lines will appear: -\begin{footnotesize} -\begin{verbatim} -OBS_PARA: ps 2038 2538 5499 6600 -OBS_PARA: t 3271 4431 7459 8753 -OBS_PARA: q 2823 3917 6110 7187 -OBS_PARA: pw 261 217 226 180 -OBS_PARA: uv 3333 5207 9038 8902 -OBS_PARA: gps_ref 597 1001 210 1085 -OBS_PARA: hirs4 metop-a 0 0 0 174 -OBS_PARA: amsua n15 542 540 0 0 -OBS_PARA: amsua n18 606 672 0 0 -OBS_PARA: amsua metop-a 0 0 0 151 -OBS_PARA: mhs n18 730 828 0 0 -OBS_PARA: mhs metop-a 0 0 0 201 -\end{verbatim} -\end{footnotesize} - -This table is important to check if the observations have been read in, which types of observations have been read in, and the distribution of observations in each subdomain.\\ - -\item Indication that the GSI observer has successfully run: -\begin{footnotesize} -\begin{verbatim} - observer_final: successfully finalized - glbsoi: complete -[000]gsisub(): : complete. - - - ENDING DATE-TIME JUL 14,2016 23:29:19.825 196 THU 2457584 - PROGRAM GSI_ANL HAS ENDED. -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . -\end{verbatim} -\end{footnotesize} - -\end{enumerate} - -After looking over each section of the standard output files, it can be concluded that the GSI observer ran without issues. Note that because the outer loop was set to 0 (\verb|miter=0|) for the GSI observer, no minimization occurred and therefore no analysis results were produced. - -%---------------------------------------------- -\section{Running EnKF for Regional Applications} -%---------------------------------------------- - -%---------------------------------------------- -\subsection{Run Script} -%---------------------------------------------- - -Once the GSI observer has been run successfully, the next step is to setup the EnKF run script, \verb|run_enkf_wrf.ksh|. This script is located under \verb|comGSIv3.5_EnKFv1.1/run|. This run script uses the diag files generated by the GSI observer script as observation input, and generates the EnKF analysis. Similar to the GSI observer script, several user-specific modifications need to be made: -\begin{itemize} -\item Set up batch queueing system -\begin{footnotesize} -\begin{verbatim} -#BSUB -P ???? # project code -#BSUB -W 00:30 # wall-clock time (hrs:mins) -#BSUB -n 32 # number of tasks in job -#BSUB -R "span[ptile=16]" # run 16 MPI tasks per node -#BSUB -J gsi # job name -#BSUB -o gsi.%J.out # output file name in which %J is replaced by the job ID -#BSUB -e gsi.%J.err # error file name in which %J is replaced by the job ID -#BSUB -q small # queue -\end{verbatim} -\end{footnotesize} - -\item Set up number of processors and the job queue system used: -\begin{footnotesize} -\begin{verbatim} - GSIPROC=32 - ARCH='LINUX_LSF' -\end{verbatim} -\end{footnotesize} -One difference from the GSI observer script is that the number of processors used should be greater than at least the number of ensemble members for running the EnKF. In this case we have 20 ensemble members and have requested 32 cores.\\ - -\item Set up the analysis time, fixed files, EnKF executable -\begin{footnotesize} -\begin{verbatim} - ANAL_TIME=2014021300 - WORK_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/enkf_2014021300 - diag_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/gsidiag_2014021300 - BK_ROOT=/scratch/${user}/casedata/arw_2014021300/bk - BK_FILE=${BK_ROOT}/wrfarw.ensmean - GSI_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1 - FIX_ROOT=${GSI_ROOT}/fix - ENKF_EXE=${GSI_ROOT}/src/main/enkf/wrf_enkf - CRTM_ROOT=/scratch/${user}/CRTM_2.2.3/ - ENKF_NAMELIST=${GSI_ROOT}/run/enkf_wrf_namelist.sh -\end{verbatim} -\end{footnotesize} - -\item Set background file and location of the diag files (from GSI observer) - -\begin{footnotesize} -\begin{verbatim} - diag_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/gsidiag_2014021300 - BK_FILE=${BK_ROOT}/wrfarw.ensmean -\end{verbatim} -\end{footnotesize} - -Two modifications to note for the EnKF are the \verb|diag_ROOT| and \verb|BK_FILE|. The \verb|diag_ROOT| points to the working directory where the GSI observer was run. This directory contains diag* files which will be linked to the EnKF working directory. \verb|BK_FILE| points to the background ensemble mean.\\ - -\item Select ensemble parameters - -\begin{footnotesize} -\begin{verbatim} - NMEM_ENKF=20 - BK_FILE_mem=${BK_ROOT}/wrfarw - NLONS=129 - NLATS=70 - NLEVS=50 - IF_ARW=.true. - IF_NMM=.false. -\end{verbatim} -\end{footnotesize} - -The next section sets information about the ensemble, including the number of members, background ensemble members, domain specifications, dynamical core, and list of observations to be used in the EnKF. Note that the ensemble members (\verb|BK_FILE_mem|) do not include the 3-digit member number. This will be appended to the name specified for this field later in the script.\\ - -\item Select observations -\begin{verbatim} - list="conv amsua_n18 amsua_metop-a" -\end{verbatim} -\end{itemize} -The previous line is contained with the ensemble parameter section. For the observations to be assimilated, be aware that only observations/platforms that have been run through the GSI observer (and therefore a diag* file exists) are valid. - -%---------------------------------------------- -\subsection{Run EnKF and Check Run Status} -%---------------------------------------------- - -Once the run script is set up properly for the case and the machine, EnKF can be run through the run script. The following command will submit the job: -\begin{small} -\begin{verbatim} - $ bsub < run_enkf_wrf.ksh -\end{verbatim} -\end{small} - -While the job is running, move to the working directory and check the details. Given the following working directory setup: -\begin{small} -\begin{verbatim} - WORK_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/enkf_2014021300 -\end{verbatim} -\end{small} - -Go to directory \verb|/scratch/${user}/comGSIv3.5_EnKFv1.1/run| and check the run directory. A directory named \verb|enkf_2014021300| should have been created. This directory is the run directory for this EnKF case study. The directory will be populated with many links: -\begin{footnotesize} -\begin{verbatim} -diag_conv_ges.ensmean diag_conv_ges.mem007 diag_conv_ges.mem014 -diag_conv_ges.mem001 diag_conv_ges.mem008 diag_conv_ges.mem015 -diag_conv_ges.mem002 diag_conv_ges.mem009 diag_conv_ges.mem016 -diag_conv_ges.mem003 diag_conv_ges.mem010 diag_conv_ges.mem017 -diag_conv_ges.mem004 diag_conv_ges.mem011 diag_conv_ges.mem018 -diag_conv_ges.mem005 diag_conv_ges.mem012 diag_conv_ges.mem019 -diag_conv_ges.mem006 diag_conv_ges.mem013 diag_conv_ges.mem020 - -diag_amsua_n18_ges.ensmean diag_amsua_n18_ges.mem007 diag_amsua_n18_ges.mem014 -diag_amsua_n18_ges.mem001 diag_amsua_n18_ges.mem008 diag_amsua_n18_ges.mem015 -diag_amsua_n18_ges.mem002 diag_amsua_n18_ges.mem009 diag_amsua_n18_ges.mem016 -diag_amsua_n18_ges.mem003 diag_amsua_n18_ges.mem010 diag_amsua_n18_ges.mem017 -diag_amsua_n18_ges.mem004 diag_amsua_n18_ges.mem011 diag_amsua_n18_ges.mem018 -diag_amsua_n18_ges.mem005 diag_amsua_n18_ges.mem012 diag_amsua_n18_ges.mem019 -diag_amsua_n18_ges.mem006 diag_amsua_n18_ges.mem013 diag_amsua_n18_ges.mem020 - -diag_hirs4_metop-a_ges.ensmean diag_hirs4_metop-a_ges.mem007 diag_hirs4_metop-a_ges.mem014 -diag_hirs4_metop-a_ges.mem001 diag_hirs4_metop-a_ges.mem008 diag_hirs4_metop-a_ges.mem015 -diag_hirs4_metop-a_ges.mem002 diag_hirs4_metop-a_ges.mem009 diag_hirs4_metop-a_ges.mem016 -diag_hirs4_metop-a_ges.mem003 diag_hirs4_metop-a_ges.mem010 diag_hirs4_metop-a_ges.mem017 -diag_hirs4_metop-a_ges.mem004 diag_hirs4_metop-a_ges.mem011 diag_hirs4_metop-a_ges.mem018 -diag_hirs4_metop-a_ges.mem005 diag_hirs4_metop-a_ges.mem012 diag_hirs4_metop-a_ges.mem019 -diag_hirs4_metop-a_ges.mem006 diag_hirs4_metop-a_ges.mem013 diag_hirs4_metop-a_ges.mem020 -\end{verbatim} -\end{footnotesize} - -The diag files are linked from the GSI observer working directory. These links are specified in the run script. Note that ozone diag files (gome, omi, sbuv) will appear in the directory without links (zero length files) if ozone diags are not present from the GSI observer. - -The first guess files are also linked into the directory from the run script, pointing to the path of the ensemble mean and ensemble members designated in the setup section. -\begin{footnotesize} -\begin{verbatim} -firstguess.ensmean firstguess.mem007 firstguess.mem014 -firstguess.mem001 firstguess.mem008 firstguess.mem015 -firstguess.mem002 firstguess.mem009 firstguess.mem016 -firstguess.mem003 firstguess.mem010 firstguess.mem017 -firstguess.mem004 firstguess.mem011 firstguess.mem018 -firstguess.mem005 firstguess.mem012 firstguess.mem019 -firstguess.mem006 firstguess.mem013 firstguess.mem020 -\end{verbatim} -\end{footnotesize} - - -Similar to running the GSI observer, many other static files are linked or copied to this run directory, such as: -\begin{table}[htbp] -\centering -\begin{tabular}{ll} -\textit{enkf.nml}: & EnKF namelist \\ -\textit{convinfo}: & data usage control for conventional data \\ -\textit{satbias\_in}:& satellite bias correction coefficient file\\ -\textit{satbias\_pc}: &satellite bias correction file for passive channels \\ -\textit{satinfo}: & data usage and channel control for satellite radiance data\\ -\textit{ozinfo}: & data usage control from ozone data\\ -\textit{covinflate.dat}: & Three-dimensional multiplicative inflation factor fields\\ -\textit{stdout}: & EnKF standard output file\\ -\end{tabular} -\end{table} - - The presence of the standard output file in the directory suggest the EnKF run script has successfully set up a run environment for the EnKF, properly linking the first guess and diag files from the GSI observer, and the EnKF executable is running. Once EnKF has finished running, analysis files should be generated for each member as well as the ensemble mean: - \begin{footnotesize} - \begin{verbatim} -analysis.ensmean analysis.mem006 analysis.mem012 analysis.mem018 -analysis.mem001 analysis.mem007 analysis.mem013 analysis.mem019 -analysis.mem002 analysis.mem008 analysis.mem014 analysis.mem020 -analysis.mem003 analysis.mem009 analysis.mem015 -analysis.mem004 analysis.mem010 analysis.mem016 -analysis.mem005 analysis.mem011 analysis.mem017 -\end{verbatim} -\end{footnotesize} - -%---------------------------------------------- -\subsection{Check for Successful EnKF Completion} -%---------------------------------------------- - -The presence of the analysis files for the ensemble mean and each member as well as the standard out file indicates that the EnKF has run without crashing, but does not necessary indicate a successful analysis. It is important to check the stdout file in the run directory to make sure the EnKF completed each step without any obvious problems. The following are several important areas of the standard out file to check: - -\begin{enumerate} -\item Check namelist has been properly read in and configuration is correct: - -\begin{footnotesize} -\begin{verbatim} - namelist parameters: - -------------------- - &NAM_ENKF - DATEIN = 2014021300, - DATAPATH = ./ - IASSIM_ORDER = 0, - COVINFLATEMAX = 100.0000 , - COVINFLATEMIN = 1.000000 , - DETERMINISTIC = T, -... ... -\end{verbatim} -\end{footnotesize} - -\item Check number of ensemble members, as well as the actual analysis variables and the background type. The maximum and minimum values for surface pressure are printed for a sanity check: - -\begin{footnotesize} -\begin{verbatim} - 20 members - number of background forecast times to be updated = 1 - first-guess forecast hours for analysis = 06 - 5 3d vars to update - total of 251 2d grids will be updated (including ps) - using multiplicative inflation based on Pa/Pb - Vars in Rad-Jacobian (dims) - -------------------------- - sst 0 - enkf_main: number of threads 1 - Updating U, V, T, QVAPOR, PH, and MU for WRF-ARW... - Surface pressure (spressmn) min/max range: 678.673339843750 - 1032.22473144531 -\end{verbatim} -\end{footnotesize} - -\item Statistics of the ensemble prior\\ -Following many lines describing the bias correction coefficients, the inventory of the observation number, observation types from the input diag* files, and the time spent reading in each observation type, statistics of the ensemble priors fit to all observations are provided for each region (NH, SH, TR): - -\begin{footnotesize} -\begin{verbatim} - innovation statistics for prior: - conventional obs - region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): -NH all ps 14083 -0.591E-02 0.860E+00 0.814E+00 0.601E+00 0.550E+00 -TR all ps 50 -0.629E-01 0.422E+00 0.661E+00 0.367E+00 0.550E+00 -NH all t 7766 -0.228E+00 0.163E+01 0.128E+01 0.480E+00 0.119E+01 -TR all t 138 -0.130E+00 0.118E+01 0.119E+01 0.234E+00 0.117E+01 -NH all uv 21680 0.136E-01 0.295E+01 0.276E+01 0.140E+01 0.237E+01 -TR all uv 302 -0.379E+00 0.251E+01 0.268E+01 0.124E+01 0.238E+01 -NH all q 2553 -0.323E-01 0.146E+00 0.157E+00 0.868E-01 0.131E+00 -TR all q 68 -0.721E-01 0.202E+00 0.164E+00 0.582E-01 0.154E+00 - satellite brightness temp - instrument, channel #, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): - amsua_n18 1 241 -0.199E+00 0.194E+01 0.306E+01 0.176E+01 0.250E+01 - amsua_n18 2 248 -0.194E+00 0.145E+01 0.234E+01 0.806E+00 0.220E+01 - amsua_n18 3 248 -0.620E+00 0.119E+01 0.206E+01 0.497E+00 0.200E+01 - amsua_n18 4 248 -0.189E+00 0.398E+00 0.568E+00 0.140E+00 0.550E+00 - amsua_n18 5 248 0.188E-01 0.337E+00 0.315E+00 0.966E-01 0.300E+00 - amsua_n18 6 1203 -0.396E-01 0.198E+00 0.238E+00 0.610E-01 0.230E+00 - amsua_n18 7 1225 -0.215E+00 0.324E+00 0.235E+00 0.480E-01 0.230E+00 - amsua_n18 8 1155 -0.235E+00 0.369E+00 0.259E+00 0.675E-01 0.250E+00 - amsua_n18 10 1211 0.408E+00 0.491E+00 0.353E+00 0.429E-01 0.350E+00 - amsua_n18 11 12 0.720E+00 0.723E+00 0.404E+00 0.567E-01 0.400E+00 - amsua_n18 15 245 -0.311E+00 0.198E+01 0.380E+01 0.148E+01 0.350E+01 - hirs4_metop-a 3 1 0.115E+01 0.115E+01 0.534E+00 0.631E-01 0.530E+00 - hirs4_metop-a 4 42 0.260E+00 0.521E+00 0.403E+00 0.488E-01 0.400E+00 - hirs4_metop-a 5 7 -0.534E+00 0.558E+00 0.367E+00 0.696E-01 0.360E+00 - hirs4_metop-a 6 7 -0.748E+00 0.782E+00 0.473E+00 0.109E+00 0.460E+00 - hirs4_metop-a 7 9 -0.557E+00 0.815E+00 0.580E+00 0.108E+00 0.570E+00 - hirs4_metop-a 8 9 0.374E+00 0.675E+00 0.100E+01 0.208E-01 0.100E+01 - hirs4_metop-a 10 9 0.199E+00 0.581E+00 0.612E+00 0.120E+00 0.600E+00 - hirs4_metop-a 11 9 -0.380E-01 0.718E+00 0.143E+01 0.770E+00 0.120E+01 - hirs4_metop-a 12 34 -0.988E+00 0.179E+01 0.213E+01 0.141E+01 0.160E+01 - hirs4_metop-a 13 9 0.694E-01 0.330E+00 0.382E+00 0.116E+00 0.364E+00 - hirs4_metop-a 14 9 -0.369E-01 0.257E+00 0.294E+00 0.137E+00 0.260E+00 - hirs4_metop-a 15 9 0.352E-01 0.289E+00 0.281E+00 0.107E+00 0.260E+00 -\end{verbatim} -\end{footnotesize} - -This table should be checked in order to determine if the inflation is appropriate. The goal is to make the total ensemble spreads of priors ($\sqrt{S+R}$ match the innovations (innov std) as much as possible. We can see in certain regions, particularly in the NH the differences are noteable. These differences are associated with higher observation error ($\sqrt{R}$). Users should consider tuning of inflation and localization, which is typically determined using cases with multiple assimilation cycles. Refer to section 4.2 of this User\textquotesingle s Guide for more information on tuning.\\ - -\item Domain and observation partition: - -\begin{footnotesize} -\begin{verbatim} - npts = 9030 - min/max number of points per proc = 243 317 - time to do model space decomp = 1.529277069494128E-003 - nobstot = 53078 - min/max number of obs per proc = 1658 1659 - time to do ob space decomp = 3.935033455491066E-004 - sending out observation prior ensemble perts from root ... - nobstot*nanals 1061560 - npts*ndim 2266530 - ... took 1.730861375108361E-002 secs - time in load_balance = 7.929413160309196E-002 on proc 0 -\end{verbatim} -\end{footnotesize} - - -The analysis variables and the observations are distributed to different processors. We can see in this case that the min/max number of points per processor are 243 and 317, respectively. Similarly, we can see that the min/max number of observations per processor are 1658 and 1659, respectively, indicating that the observations are well dispersed among the processors. - -\begin{footnotesize} -\begin{verbatim} - READGRIDDATA_ARW: U 1 -20.55222 20.72632 - READGRIDDATA_ARW: U 2 -20.87878 21.20316 - READGRIDDATA_ARW: U 3 -21.61046 22.36177 - READGRIDDATA_ARW: U 4 -22.62561 24.08465 - READGRIDDATA_ARW: U 5 -24.07165 26.47827 - READGRIDDATA_ARW: U 6 -25.89237 32.81841 - READGRIDDATA_ARW: U 7 -27.10455 35.81213 -... ... -\end{verbatim} -\end{footnotesize} - -Additionally, check the minimum and maximum values of the fields at each vertical level as a quick sanity check. - -\end{enumerate} - -%---------------------------------------------- -\subsection{Diagnose EnKF Analysis Results} -%---------------------------------------------- - -At the bottom of the standard output file, there are several output statistics and tables that are helpful for users to diagnose the quality of the EnKF analysis.\\ -\begin{enumerate} -\item Spread inflation of the analysis ensemble - -\begin{footnotesize} -\begin{verbatim} - global ps prior std. dev min/max = 21.52301 172.3270 - NH mean ps prior standard deviation = 57.82042 - NH mean ps posterior standard deviation (before inflation)= 29.20955 - NH mean ps posterior standard deviation (after inflation) = 54.58403 - NH mean ps inflation = 2.421974 - TR mean ps prior standard deviation = 31.09247 - TR mean ps posterior standard deviation (before inflation)= 28.31872 - TR mean ps posterior standard deviation (after inflation) = 30.79383 - TR mean ps inflation = 1.106122 - time in inflate_ens = 1.366839744150639E-002 on proc 0 -\end{verbatim} -\end{footnotesize} - -This section is important for checking whether the values of the inflation are reasonable by looking at a summary of the maximum and minimum values. Also, viewing the regional averaged statistics before and after inflation. For this case we can see both the NH and TR show larger standard deviation after the inflation, which is more consistent with the prior standard deviation. \\ - -\item Spread inflation of the analysis ensemble -\begin{footnotesize} -\begin{verbatim} - innovation statistics for posterior: - conventional obs - region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): -NH all ps 14083 0.503E-03 0.757E+00 0.569E+00 0.146E+00 0.550E+00 -TR all ps 50 -0.562E-01 0.398E+00 0.585E+00 0.198E+00 0.550E+00 -NH all t 7766 -0.780E-01 0.145E+01 0.122E+01 0.263E+00 0.119E+01 -TR all t 138 -0.107E+00 0.115E+01 0.118E+01 0.199E+00 0.117E+01 -NH all uv 21680 0.406E-01 0.267E+01 0.246E+01 0.655E+00 0.237E+01 -TR all uv 302 -0.259E+00 0.236E+01 0.246E+01 0.636E+00 0.238E+01 -NH all q 2553 -0.174E-01 0.114E+00 0.138E+00 0.444E-01 0.131E+00 -TR all q 68 -0.279E-01 0.168E+00 0.159E+00 0.413E-01 0.154E+00 - satellite brightness temp - instrument, channel #, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): - amsua_n18 1 241 0.614E+02 0.915E+02 0.263E+01 0.823E+00 0.250E+01 - amsua_n18 2 248 -0.132E+03 0.171E+03 0.223E+01 0.376E+00 0.220E+01 - amsua_n18 3 248 -0.303E+02 0.398E+02 0.201E+01 0.244E+00 0.200E+01 - amsua_n18 4 248 -0.231E+00 0.580E+01 0.555E+00 0.776E-01 0.550E+00 - amsua_n18 5 248 -0.788E+00 0.199E+01 0.305E+00 0.575E-01 0.300E+00 - amsua_n18 6 1203 -0.138E+01 0.158E+01 0.234E+00 0.423E-01 0.230E+00 - amsua_n18 7 1225 -0.273E+01 0.287E+01 0.232E+00 0.322E-01 0.230E+00 - amsua_n18 8 1155 -0.131E+01 0.186E+01 0.254E+00 0.437E-01 0.250E+00 - amsua_n18 10 1211 -0.179E+01 0.196E+01 0.352E+00 0.374E-01 0.350E+00 - amsua_n18 11 12 -0.130E+01 0.133E+01 0.404E+00 0.537E-01 0.400E+00 - amsua_n18 15 245 -0.163E+03 0.198E+03 0.357E+01 0.693E+00 0.350E+01 - hirs4_metop-a 3 1 0.118E+01 0.118E+01 0.533E+00 0.558E-01 0.530E+00 - hirs4_metop-a 4 42 0.286E+00 0.542E+00 0.403E+00 0.455E-01 0.400E+00 - hirs4_metop-a 5 7 -0.451E+00 0.487E+00 0.364E+00 0.562E-01 0.360E+00 - hirs4_metop-a 6 7 -0.724E+00 0.755E+00 0.468E+00 0.852E-01 0.460E+00 - hirs4_metop-a 7 9 -0.572E+00 0.817E+00 0.577E+00 0.871E-01 0.570E+00 - hirs4_metop-a 8 9 0.122E+01 0.136E+01 0.100E+01 0.205E-01 0.100E+01 - hirs4_metop-a 10 9 0.855E+00 0.100E+01 0.609E+00 0.104E+00 0.600E+00 - hirs4_metop-a 11 9 -0.236E-01 0.543E+00 0.130E+01 0.507E+00 0.120E+01 - hirs4_metop-a 12 34 -0.738E+00 0.153E+01 0.178E+01 0.790E+00 0.160E+01 - hirs4_metop-a 13 9 0.121E+01 0.128E+01 0.375E+00 0.905E-01 0.364E+00 - hirs4_metop-a 14 9 0.776E-01 0.256E+00 0.281E+00 0.106E+00 0.260E+00 - hirs4_metop-a 15 9 0.281E+00 0.384E+00 0.273E+00 0.838E-01 0.260E+00 -\end{verbatim} -\end{footnotesize} - -After the EnKF analysis, it is important to check the innovation statistics, much like the prior fit to all observation. -\end{enumerate} - -%---------------------------------------------- -% section -\section{Running GSI Observer for Global Applications} -%---------------------------------------------- - -%---------------------------------------------- -\subsection{Run Script} -%---------------------------------------------- - -With both GSI and EnKF compiled (note that a separate global executable must be generated for EnKF) and the background ensemble files and observations acquired, the next step is to work with the gsi observer run script, \verb|run_gsi_global.ksh|. The location of this script is under \verb|comGSIv3.5_EnKFv1.1/run|. This run script is the same as the one used for a GSI global analysis run, with a few specific options selected in order to loop through all the ensemble members and generate the ensemble observation priors for each member and the ensemble mean. For the global examples, users must choose a case that corresponds to the spectral resolution of the background ensemble. For this example, we will be using T254. In addition to the GSI observer specific options, other user-specific modifications need to be made: - -\begin{itemize} -\item Set up batch queueing system \\ -To run GSI with multiple processors, a job queuing head must be added to the \verb|run_gsi_global.ksh| script. The set up of the job queue is dependent on the machine and the job control system. Refer to the GSI User\textquotesingle s Guide, section 3.2.2, for more examples of the setup section of this script. The following example is setup to run on a Linux cluster with LSF: - -\begin{footnotesize} -\begin{verbatim} -# LSF batch script to run an MPI application -#BSUB -P ??????? # project code -#BSUB -W 00:30 # wall-clock time (hrs:mins) -#BSUB -n 24 # number of tasks in job -#BSUB -R "span[ptile=16]" # run 16 MPI tasks per node -#BSUB -J gsi # job name -#BSUB -o gsi.%J.out # output file name in which %J is replaced by the job ID -#BSUB -e gsi.%J.err # error file name in which %J is replaced by the job ID -#BSUB -q small # queue -\end{verbatim} -\end{footnotesize} - -\item Set up number of processors and the job queue system used. For this example, \verb|LINUX_LSF| and 24 processors are used: - -\begin{footnotesize} -\begin{verbatim} - GSIPROC=24 - ARCH='LINUX_LSF' -\end{verbatim} -\end{footnotesize} - -\item Set up the case data, analysis time, fix files, GSI executable, and CRTM coefficients: \\ - -Set up analysis time and select global case: - -\begin{footnotesize} -\begin{verbatim} - ANAL_TIME=2014040512 - GFSCASE=enkf_glb_t254 -\end{verbatim} -\end{footnotesize} - -Set up working directory, which will hold the analysis results (all ensemble members will be run in this directory). This directory must have the proper write permissions as well as enough space to hold the output. - -\begin{footnotesize} -\begin{verbatim} -WORK_ROOT=/scratch/${user}/comGSIv3.5-EnKFv1.1/run/gsidiag_${GFS_CASE} -\end{verbatim} -\end{footnotesize} - -Set path to background ensemble files: - -\begin{footnotesize} -\begin{verbatim} -BK_ROOT=/scratch/${user}/casedata/enkf_glb_t254/bk -\end{verbatim} -\end{footnotesize} - -Set path to the observation directory and the PrepBUFR file within the observation directory. All observations to be assimilated should reside in this directory. - -\begin{footnotesize} -\begin{verbatim} -OBS_ROOT=/scratch/${user}/casedata/enkf_glb_t254/obs -PREPBUFR=${OBS_ROOT}/gdas1.t12z.prepbufr.nr -\end{verbatim} -\end{footnotesize} - -Set the GSI system used for this case, including the paths of the fix files and the CRTM coefficients as well as the location of the GSI executable: - -\begin{footnotesize} -\begin{verbatim} -CRTM_ROOT=/scratch/${user}/CRTM_REL-2.2.3 -GSI_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/ -FIX_ROOT=${GSI_ROOT}/fix -GSI_EXE=${GSI_ROOT}/run/gsi.exe -GSI_NAMELIST=${GSI_ROOT}/run/comgsi_namelist_gfs.sh -\end{verbatim} -\end{footnotesize} - -Note that the GSI namelist generation script used for the global case (\verb|comgsi_namelist_gfs.sh|) is different from the one used for the regional example.\\ - -\item Choose to run GSI observer, set up background ensemble information - -\begin{footnotesize} -\begin{verbatim} - if_observer=Yes # Yes ,or, No -- case sensitive!!! - no_member=10 - BK_FILE_mem=${BK_ROOT}/sfg_2014040506 -\end{verbatim} -\end{footnotesize} - -The option \verb|if_observer=Yes| is the switch that enables \verb|run_gsi_global.ksh| to run the GSI observer (rather than GSI analysis). In this example, 10 ensemble members are selected with the naming convention: \verb|sfg_${GUESS_DATE}_memnnnn| . Note that \verb|_memnnnn| which is assocated with each ensemble member (\verb|nnnn|), is not included and will be appended later in the script.\\ - -\item Set the JCAP resolution for the case: -\begin{footnotesize} -\begin{verbatim} -if [[ "$GFSCASE" = "T62" ]]; then - JCAP=62 - JCAP_B=62 -elif [[ "$GFSCASE" = "T126" ]]; then - JCAP=126 - JCAP_B=126 -elif [[ "$GFSCASE" = "enkf_glb_t254" ]]; then - JCAP=254 - JCAP_B=254 -elif [[ "$GFSCASE" = "T254" ]]; then - JCAP=254 - JCAP_B=574 -elif [[ "$GFSCASE" = "T574" ]]; then - JCAP=574 - JCAP_B=1534 -else - echo "INVALID case = $GFSCASE" - exit -fi - LEVS=64 -\end{verbatim} -\end{footnotesize} -Note that this selection is filled based on selection of the GFSCASE. This example used the \verb|enkf_glb_t254| case. All cases use 64 levels. \\ - -Further in the run script \verb|run_gsi_global.ksh|, the resolution parameters are set based on the requested case (resolution). For this case, we are using JCAP=254: -\begin{footnotesize} -\begin{verbatim} -elif [[ "$JCAP" = "254" ]]; then - LONA=512 - LATA=256 - DELTIM=1200 - resol=2 -\end{verbatim} -\end{footnotesize} - - -\item Link satellite bias correction coefficients, background ensemble files, and observations: -\begin{footnotesize} -\begin{verbatim} -if [[ "$GFSCASE" = "enkf_glb_t254" ]]; then - cp $OBS_ROOT/gdas1.t12z.abias ./satbias_in - cp $OBS_ROOT/gdas1.t12z.satang ./satbias_angle - - cp $BK_ROOT/sfcanl_2014040506_fhr03_ensmean ./sfcf03 - cp $BK_ROOT/sfcanl_2014040506_fhr06_ensmean ./sfcf06 - cp $BK_ROOT/sfcanl_2014040506_fhr06_ensmean ./sfcf09 - - cp $BK_ROOT/sfg_2014040506_fhr03_mem001 ./sigf03 - cp $BK_ROOT/sfg_2014040506_fhr06_mem001 ./sigf06 - cp $BK_ROOT/sfg_2014040506_fhr09_mem001 ./sigf09 -... ... -# Link to the prepbufr data -ln -s ${PREPBUFR} ./prepbufr - -# Link to the other observation data - -if [[ "$GFSCASE" = "enkf_glb_t254" ]]; then - obsfile_amua=gdas1.t12z.1bamua.tm00.bufr_d - obsfile_amub=gdas1.t12z.1bamub.tm00.bufr_d -else -\end{verbatim} -\end{footnotesize} -Past the arch selection, environment variable checks, and creation of working directory, users will find the location where the observations are linked. For this case, we can see that the conventional PrepBUFR observations have been linked, as well as AMSU-A and AMSU-B satellite radiance BUFR files. These files will be linked to the working directory and separate observation innovation (\verb|diag|) files will be generated for each observation. -\end{itemize} - -% -%---------------------------------------------- -\subsection{Run GSI Observer and Check Run Status} -%---------------------------------------------- - -Once the run script is set up properly for the case and the machine, GSI can be run through the run script. The following command will submit the job: - -\begin{footnotesize} -\begin{verbatim} -$ bsub < run_gsi_global.ksh -\end{verbatim} -\end{footnotesize} - -While the job is running, move to the working directory and check the details. Given the following working directory setup: -\begin{footnotesize} -\begin{verbatim} -WORK_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/gsidiag_${GFSCASE} -\end{verbatim} -\end{footnotesize} -Go to directory \verb|/scratch/${user}/comGSIv3.5_EnKFv1.1/| and check the run directory. A directory named \verb|gsidiag_enkf_glb_t254| should have been created. This directory is the run directory for this GSI observer case study. The directory will be populated with many files such as: - -\begin{footnotesize} -\begin{verbatim} -AerosolCoeff.bin hirs4_n19.TauCoeff.bin sndrD1_g14.TauCoeff.bin -ahi_himawari8.SpcCoeff.bin iasi616_metop-a.SpcCoeff.bin sndrD1_g15.SpcCoeff.bin -ahi_himawari8.TauCoeff.bin iasi616_metop-a.TauCoeff.bin sndrD1_g15.TauCoeff.bin -airs281SUBSET_aqua.SpcCoeff.bin iasi616_metop-b.SpcCoeff.bin sndrD2_g11.SpcCoeff.bin -... ... -\end{verbatim} -\end{footnotesize} - -These files are CRTM coefficients that have been linked to this run directory through the GSI run script. Similar to running the GSI analysis, many other files are linked or copied to this run directory, such as: - -\begin{table}[htbp] -\centering -\begin{tabular}{ll} -\verb|gsiparm.anl| : & GSI namelist \\ -\verb|prepbufr| : & PrepBUFR file for conventional observation \\ -\verb|convinfo| : & data usage control for conventional data \\ -\verb|satbias_in| : & satellite bias correction coefficient file \\ -\verb|satinfo| : & data usage and channel control for satellite radiance data \\ -\verb|berror_stats| : & background error file \\ -\verb|errtable| : & observation error file \\ -\end{tabular} -\end{table} -% table -Additionally, for the GSI observer many files are generated as a result of the \verb|lread_obs_save| and \verb|lread_obs_skip| options in the namelist for writing/reading collective observation selection information: -%table -\begin{table}[htbp] -\centering -\begin{tabular}{ll} -\verb|obs_input.nnnn|: & During ensemble mean (save=True, skip=False), save all observation \\ - & preprocessing to this file. Each file (nnnn) is for a different variable type \\ -\verb|pennnn.obs_setup|: & When looping through ensemble members (save=False, skip=True), \\ - & all observation preprocessing is skipped, \verb|obs_input.nnnn| files \\ - & are read and \verb|pennnn.obs_setup| is written for each processor \\ - & (nnnn) for all observations.\\ -\end{tabular} -\end{table} -% table - -As the GSI observer is running for the ensemble mean as well as looping through each member, files are for each ensemble member, as well as the ensemble mean: \\ - -%table -\begin{table}[htbp] -\centering -\begin{tabular}{ll} -\verb|pennnn.conv_01| : & Files generated after O-B, generated for conventional \\ - & observations as well as one file per sensor (e.g. AMSU-A n18). \\ - & These files are trimmed for resulting \verb|diag| files and cleaned. \\ -\verb|list_run_directory| : & Directory listing after ensemble mean is run, before directory \\ - & is cleaned for running the ensemble members.\\ -\verb|list_run_directory_memnnn|: & As as above, for each ensemble member (nnn).\\ -\verb|stdout | : & Standard output file for ensemble mean. \\ -\verb|stdout_memnnn| : & Standard output file for each ensemble member (nnn).\\ -\end{tabular} -\end{table} -% table -The presence of the standard output files in the directory suggest the GSI observer run scripts have successfully set up a run environment for the GSI observer, properly looping through the ensemble members, and the GSI executable is running on each ensemble member. Once GSI has finished running, \verb|diag| files should be generated for each observation type for each member as well as the ensemble mean: - -\begin{footnotesize} -\begin{verbatim} -diag_conv_ges.ensmean diag_conv_ges.mem004 diag_conv_ges.mem008 -diag_conv_ges.mem001 diag_conv_ges.mem005 diag_conv_ges.mem009 -diag_conv_ges.mem002 diag_conv_ges.mem006 diag_conv_ges.mem010 -diag_conv_ges.mem003 diag_conv_ges.mem007 -diag_amsua_metop-a_ges.ensmean diag_amsua_metop-a_ges.mem006 -diag_amsua_metop-a_ges.mem001 diag_amsua_metop-a_ges.mem007 -diag_amsua_metop-a_ges.mem002 diag_amsua_metop-a_ges.mem008 -diag_amsua_metop-a_ges.mem003 diag_amsua_metop-a_ges.mem009 -diag_amsua_metop-a_ges.mem004 diag_amsua_metop-a_ges.mem010 -diag_amsua_metop-a_ges.mem005 -diag_amsua_n18_ges.ensmean diag_amsua_n18_ges.mem004 diag_amsua_n18_ges.mem008 -diag_amsua_n18_ges.mem001 diag_amsua_n18_ges.mem005 diag_amsua_n18_ges.mem009 -diag_amsua_n18_ges.mem002 diag_amsua_n18_ges.mem006 diag_amsua_n18_ges.mem010 -diag_amsua_n18_ges.mem003 diag_amsua_n18_ges.mem007 -diag_amsua_n19_ges.ensmean diag_amsua_n19_ges.mem004 diag_amsua_n19_ges.mem008 -diag_amsua_n19_ges.mem001 diag_amsua_n19_ges.mem005 diag_amsua_n19_ges.mem009 -diag_amsua_n19_ges.mem002 diag_amsua_n19_ges.mem006 diag_amsua_n19_ges.mem010 -diag_amsua_n19_ges.mem003 diag_amsua_n19_ges.mem007 -\end{verbatim} -\end{footnotesize} - -%---------------------------------------------- -\subsection{Check for Successful GSI Completion} -%---------------------------------------------- - -The presence of the \verb|diag| files and standard out files for the ensemble mean and each member indicates that the GSI observer has run without crashing, but does not necessary indicate a successful analysis. It is important to check the stdout files in the run directory to make sure the GSI observer completed each step without any obvious problems. The following are several important areas of the standard out file to check: -\begin{enumerate} -\item Read in the \verb|anavinfo| and namelist - -\begin{footnotesize} -\begin{verbatim} - READ_FILES: analysis date,minutes 2014 4 5 - 12 0 19070640 - gsi_metguess_mod*init_: 2D-MET STATE VARIABLES: - ps - z - gsi_metguess_mod*init_: 3D-MET STATE VARIABLES: - u - v -... ... - - &SETUP - GENCODE = 78.0000000000000 , - FACTQMIN = 0.000000000000000E+000, - FACTQMAX = 0.000000000000000E+000, -\end{verbatim} -\end{footnotesize} - -\item Read in the background field \\ -The following lines in the stdout immediately following the namelist section, indicate that GSI is reading the background fields. Checking that the range of the max and min values will indicate if particular background fields are normal. - -\begin{scriptsize} -\begin{verbatim} -GESINFO: jcap_b= 254, levs= 64, latb= 256, lonb= 512, ntrac= 3, ncldt= 1, idvc= 2, nvcoord= 2, -idvm= 0, idsl= 0, idpsfc= 0, idthrm= 0 - k,ak,bk,ck,tref= 1 0.00000000000 1.00000000000 0.00000000000 300.000000000 - k,ak,bk,ck,tref= 2 0.00000000000 0.994671165943 0.00000000000 300.000000000 - k,ak,bk,ck,tref= 3 0.574999988079E-03 0.988626599312 0.00000000000 300.000000000 - k,ak,bk,ck,tref= 4 0.574100017548E-02 0.981742262840 0.00000000000 300.000000000 - ... ... -\end{verbatim} -\end{scriptsize} - -\item Read in observational data \\ - -The \verb|stdout| (ensemble mean) and \verb|stdout_memnnn| (ensemble members) contains distinct differences for the reading in the observational data controlled by the \verb|lread_obs_save| and \verb|lread_obs_skip| options in the namelist.\\ -\begin{description} -\item[ c.] Ensemble mean -\begin{scriptsize} -\begin{verbatim} - read_obs_check: bufr file date is 2014040512 prepbufr t - read_obs_check: bufr file date is 2014040512 prepbufr uv - read_obs_check: bufr file date is 2014040512 prepbufr q - read_obs_check: bufr file date is 2014040512 prepbufr ps -... ... - number of extra processors 13 - READ_OBS: read 1 ps ps using ntasks= 1 0 0 0 - READ_OBS: read 2 t t using ntasks= 1 1 0 0 - READ_OBS: read 3 q q using ntasks= 1 2 0 0 - READ_OBS: read 4 pw pw using ntasks= 1 3 2738 0 -... ... - READ_PREPBUFR : file=prepbufr type=pw sis=pw nread= 345 - ithin= 0 rmesh=1450.000000 isfcalc= 0 ndata= 345 ntask= 1 - READ_BUFRTOVS : file=amsuabufr type=amsua sis=amsua_n18 nread= 202575 - ithin= 2 rmesh=1500.000000 isfcalc= 0 ndata= 675 ntask= 1 - ... ... - READ_OBS: write collective obs selection info to obs_input.common -\end{verbatim} -\end{scriptsize} - -For the ensemble mean, the same procedure for observation processing as the GSI analysis is followed (\verb|read_obs_check|, \verb|READ_OBS|, \verb|READ_BUFRTOVS|, \verb|READ_GPS|, \verb|READ_PREPBUFR|, \ldots). Finally, it is indicated that the collective observations selection information is written out for use with the ensemble members.\\ - - -\item[d.] Ensemble members \\ -For the \verb|stdout_memnnn|, the observation processing sets are skipped and observation information is read in from the ensemble mean: -\begin{footnotesize} -\begin{verbatim} - OBSERVER_SET: read collective obs selection info from obs_input.common -\end{verbatim} -\end{footnotesize} - -Finally, for both the ensemble mean and members, the following lines will appear: - -\begin{tiny} -\begin{verbatim} -OBS_PARA: ps 24 400 1649 2577 58 245 1496 506 - 82 402 616 251 36 67 328 864 44 224 - 5210 1397 69 414 506 629 -OBS_PARA: t 48 403 3406 4875 174 488 4128 1825 - 84 724 2702 1146 4 215 882 2218 151 913 - 11864 3167 160 1622 1308 2381 -OBS_PARA: q 16 370 3025 4749 154 383 3211 1737 - 51 594 2126 1102 0 161 697 1951 140 850 - 10310 2974 155 1525 1104 1506 -OBS_PARA: pw 0 0 0 0 0 0 0 0 - 0 0 3 0 0 0 42 25 0 0 - 251 32 0 0 0 4 -OBS_PARA: uv 52 410 4459 5664 239 1023 4994 1835 - 86 1553 3792 1316 3 184 877 2242 180 1576 - 11854 3595 264 3186 2231 2895 -OBS_PARA: amsua n15 0 0 0 0 7 9 0 0 - 1 0 0 0 5 0 0 0 3 10 - 7 0 0 0 0 0 -OBS_PARA: amsua n18 3 1 0 0 5 2 0 0 - 1 0 0 0 5 6 2 0 2 5 - 6 8 0 0 0 0 -OBS_PARA: amsua n19 0 0 3 7 0 0 0 0 - 3 1 0 0 2 9 10 6 0 0 - 0 3 0 0 0 3 -OBS_PARA: amsua metop-a 0 0 0 4 0 0 0 2 - 0 4 9 5 0 0 0 0 0 0 - 0 0 0 6 9 6 -OBS_PARA: amsua metop-b 0 0 0 0 1 0 0 0 - 6 9 0 0 3 0 0 0 4 0 - 0 0 4 11 7 0 -\end{verbatim} -\end{tiny} - -This table is important to check if the observations have been read in, which types of observations have been read in, and the distribution of observations in each subdomain.\\ -\end{description} - -\item Indication that the GSI observer has successfully run:\\ - -\begin{footnotesize} -\begin{verbatim} - glbsoi: complete -[000]gsisub(): : complete. - - - ENDING DATE-TIME JUL 15,2016 15:48:52.880 197 FRI 2457585 - PROGRAM GSI_ANL HAS ENDED. -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . -\end{verbatim} -\end{footnotesize} -\end{enumerate} - -After looking over each section of the standard output files, it can be concluded that the GSI global observer ran without issues. Note that because the outer loop was set to 0 (\verb|miter=0|) for the GSI observer, no minimization occurred and therefore no analysis results were produced. - -%---------------------------------------------- -\section{Running EnKF for Global Applications} -%---------------------------------------------- - -%---------------------------------------------- -\subsection{Run Script} -%---------------------------------------------- - -Once the GSI global observer has been run successfully, the next step is to setup the EnKF run script, \verb|run_enkf_global.ksh|. This script is located under \verb|comGSIv3.5_EnKFv1.1/run|. This run script uses the \verb|diag| files generated by the GSI global observer script as observation input, and generates the global EnKF analysis. Similar to the GSI observer script, several user-specific modifications need to be made: -\begin{itemize} -\item Set up batch queueing system -\begin{footnotesize} -\begin{verbatim} -#BSUB -P ?????? # project code -#BSUB -W 00:30 # wall-clock time (hrs:mins) -#BSUB -n 80 # number of tasks in job -#BSUB -R "span[ptile=16]" # run 16 MPI tasks per node -#BSUB -J gsi # job name -#BSUB -o gsi.%J.out # output file name in which %J is replaced by the job ID -#BSUB -e gsi.%J.err # error file name in which %J is replaced by the job ID -#BSUB -q small # queue -\end{verbatim} -\end{footnotesize} - -One difference from the GSI observer script is that the number of processors used should be greater than at least the number of ensemble members for running the EnKF. In this case we have 10 ensemble members and have requested 80 cores due to the large global domain.\\ - -\item Set up the analysis time, global case, fixed files, EnKF executable -\begin{footnotesize} -\begin{verbatim} - ANAL_TIME=2014040512 - GUESS_TIME=2014040506 - GFSCASE=enkf_glb_t254 - WORK_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/enkf_${GFSCASE} - BK_ROOT=/scratch/${user}/casedata/enkf_glb_t254/bk - GSI_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1 - FIX_ROOT=${GSI_ROOT}/fix - ENKF_EXE=${GSI_ROOT}/src/main/enkf/global_enkf - CRTM_ROOT=/scratch/${user}/CRTM_2.2.3 - ENKF_NAMELIST=${GSI_ROOT}/run/enkf_gfs_namelist.sh -\end{verbatim} -\end{footnotesize} - -\item Set location of the diag files (from GSI observer) - -\begin{footnotesize} -\begin{verbatim} - DIAG_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/gsidiag_${GFSCASE} -\end{verbatim} -\end{footnotesize} - -One modifications to note for the EnKF is the \verb|DIAG_ROOT|. The \verb|DIAG_ROOT| points to the working directory where the GSI observer runs. This directory contains \verb|diag*| files which will be linked to the EnKF working directory.\\ - -\item Select ensemble and case parameters - -\begin{footnotesize} -\begin{verbatim} -NMEM_ENKF=10 -LEVS=64 -NVARS=5 -... ... -elif [[ "$GFSCASE" = "enkf_glb_t254" ]]; then - JCAP=254 - JCAP_B=254 -... ... - elif [[ "$JCAP" = "254" ]]; then - LONA=512 - LATA=256 - DELTIM=1200 - resol=2 -\end{verbatim} -\end{footnotesize} -This section sets information about the number of background ensemble members, domain specifications. This information mirrors that of the \verb|run_gsi_global.ksh| script.\\ - -\item Read in namelist - -\begin{footnotesize} -\begin{verbatim} -#Build EnKF namelist on-the-fly -. $ENKF_NAMELIST -cat << EOF > enkf.nml - - $enkf_namelist - -EOF -\end{verbatim} -\end{footnotesize} - -Similar to the regional enkf (\verb|run_enkf_wrf.ksh|), the global EnKF builds the namelist from an outside script for namelist generation (\verb|enkf_gfs_namelist.sh|).\\ - -\item Select observations -\begin{footnotesize} -\begin{verbatim} -list="conv amsua_metop-a amsua_n18 amsua_n15" -\end{verbatim} -\end{footnotesize} -The previous line is contained within the ensemble looping section. For the observations to be assimilated, be aware that only observations/platforms that have been run through the GSI observer (and therefore a \verb|diag*| file exists) are valid. For this example case, we will only run EnKF for conventional observations. -\end{itemize} - -% subsection -%---------------------------------------------- -\subsection{Run EnKF and Check Run Status} -%---------------------------------------------- - -Once the run script is set up properly for the case and the machine, EnKF can be run through the run script. The following command will submit the job: - -\begin{footnotesize} -\begin{verbatim} -$ bsub < run_enkf_global.ksh -\end{verbatim} -\end{footnotesize} -While the job is running, move to the working directory and check the details. Given the following working directory setup: -\begin{footnotesize} -\begin{verbatim} -WORK_ROOT=/scratch/${user}/comGSIv3.5_EnKFv1.1/run/enkf_${GFSCASE} -\end{verbatim} -\end{footnotesize} - -Go to directory \verb|/scratch/${user}/comGSIv3.5_EnKFv1.1/| and check the run directory. A directory named \verb|enkf_enkf_glb_t264| should have been created. This directory is the run directory for this EnKF case study. The directory will be populated with many links: -\begin{footnotesize} -\begin{verbatim} -diag_conv_ges.ensmean diag_conv_ges.mem004 diag_conv_ges.mem008 -diag_conv_ges.mem001 diag_conv_ges.mem005 diag_conv_ges.mem009 -diag_conv_ges.mem002 diag_conv_ges.mem006 diag_conv_ges.mem010 -diag_conv_ges.mem003 diag_conv_ges.mem007 -diag_amsua_metop-a_ges.ensmean diag_amsua_metop-a_ges.mem006 -diag_amsua_metop-a_ges.mem001 diag_amsua_metop-a_ges.mem007 -diag_amsua_metop-a_ges.mem002 diag_amsua_metop-a_ges.mem008 -diag_amsua_metop-a_ges.mem003 diag_amsua_metop-a_ges.mem009 -diag_amsua_metop-a_ges.mem004 diag_amsua_metop-a_ges.mem010 -diag_amsua_metop-a_ges.mem005 -diag_amsua_n18_ges.ensmean diag_amsua_n18_ges.mem004 diag_amsua_n18_ges.mem008 -diag_amsua_n18_ges.mem001 diag_amsua_n18_ges.mem005 diag_amsua_n18_ges.mem009 -diag_amsua_n18_ges.mem002 diag_amsua_n18_ges.mem006 diag_amsua_n18_ges.mem010 -diag_amsua_n18_ges.mem003 diag_amsua_n18_ges.mem007 -diag_amsua_n19_ges.ensmean diag_amsua_n19_ges.mem004 diag_amsua_n19_ges.mem008 -diag_amsua_n19_ges.mem001 diag_amsua_n19_ges.mem005 diag_amsua_n19_ges.mem009 -diag_amsua_n19_ges.mem002 diag_amsua_n19_ges.mem006 diag_amsua_n19_ges.mem010 -diag_amsua_n19_ges.mem003 diag_amsua_n19_ges.mem007 -\end{verbatim} -\end{footnotesize} - -The \verb|diag| files are linked from the GSI global observer working directory. These links are specified in the run script. Note that ozone \verb|diag| files (\verb|gome|, \verb|omi|, \verb|sbuv|) will appear in the directory without links (zero length files) if ozone diags are not present from the GSI observer. - -\begin{footnotesize} -\begin{verbatim} -sfg_2014040512_fhr06_ensmean sfg_2014040512_fhr06_mem004 sfg_2014040512_fhr06_mem008 -sfg_2014040512_fhr06_mem001 sfg_2014040512_fhr06_mem005 sfg_2014040512_fhr06_mem009 -sfg_2014040512_fhr06_mem002 sfg_2014040512_fhr06_mem006 sfg_2014040512_fhr06_mem010 -sfg_2014040512_fhr06_mem003 sfg_2014040512_fhr06_mem007 -\end{verbatim} -\end{footnotesize} - -The first guess files are also linked into the directory from the run script, pointing to the path of the ensemble mean and ensemble members designated in the setup section. - -Similar to running the GSI observer, many other static files are linked or copied to this run directory, such as: -% Table -\begin{table}[htbp] -\centering -\begin{tabular}{ll} -\verb|enkf.nml: | & EnKF namelist\\ -\verb|convinfo: | & data usage control for conventional data\\ -\verb|satbias_in:| & satellite bias correction coefficient file\\ -\verb|satbias_angle:| & satellite bias correction angle file\\ -\verb|satinfo:| & data usage and channel control for satellite radiance data\\ -\verb|ozinfo: | & data usage control from ozone data\\ -\verb|covinflate.dat:| & Three-dimensional multiplicative inflation factor fields\\ -\verb|stdout:| & EnKF standard output file \\ -\end{tabular} -\end{table} - -The presence of the standard output file in the directory suggests the EnKF run script has successfully set up a run environment for the EnKF, properly linking the first guess and diag files from the GSI observer, and the EnKF executable is running. Once EnKF has finished running, analysis files should be generated for each member: -\begin{footnotesize} -\begin{verbatim} -sanl_2014040512_mem001 sanl_2014040512_mem005 sanl_2014040512_mem009 -sanl_2014040512_mem002 sanl_2014040512_mem006 sanl_2014040512_mem010 -sanl_2014040512_mem003 sanl_2014040512_mem007 -sanl_2014040512_mem004 sanl_2014040512_mem008 -\end{verbatim} -\end{footnotesize} - -% subsection -%---------------------------------------------- -\subsection{Check for Successful EnKF Completion} -%---------------------------------------------- - -The presence of the EnKF analysis files for each member as well as the standard out file indicates that the EnKF has run without crashing, but does not necessary indicate a successful analysis. It is important to check the stdout file in the run directory to make sure the EnKF completed each step without any obvious problems. The following are several important areas of the standard out file to check: -\begin{enumerate} -\item Check namelist has been properly read in and configuration is correct: -\begin{footnotesize} -\begin{verbatim} - namelist parameters: - -------------------- - &NAM_ENKF - DATEIN = 2014040512, - DATAPATH = ./ - IASSIM_ORDER = 0, - COVINFLATEMAX = 100.0000 , - COVINFLATEMIN = 1.000000 , - DETERMINISTIC = T, - SORTINC = T, - CORRLENGTHNH = 2000.000 , - CORRLENGTHTR = 2000.000 , - CORRLENGTHSH = 2000.000 , -... ... -\end{verbatim} -\end{footnotesize} - -\item Check analysis time, number of ensemble members, as well as the actual analysis variables and the background type. The maximum and minimum values for surface pressure are printed for a sanity check: -\begin{footnotesize} -\begin{verbatim} - analysis time 2014040512 - 10 members - number of background forecast times to be updated = 1 - first-guess forecast hours for analysis = 06 - 5 3d vars to update - total of 321 2d grids will be updated (including ps) - using multiplicative inflation based on Pa/Pb - Vars in Rad-Jacobian (dims) - -------------------------- - sst 0 - enkf_main: number of threads 1 - ensemble mean first guess surface pressure: - 516.109537854119 1051.19857562343 -\end{verbatim} -\end{footnotesize} - -\item Statistics of the ensemble prior \\ -After many lines describing the bias correction coefficents, the inventory of the observation number, observation types from the input \verb|diag*| files, and the time spent reading in each observation type, statistics of the ensemble priors fit to all observations are provided for each region (NH, SH, TR): -\begin{footnotesize} -\begin{verbatim} - innovation statistics for prior: - conventional obs - region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): -NH all ps 12059 -0.700E-01 0.122E+01 0.151E+01 0.499E+00 0.143E+01 -TR all ps 2184 0.402E+00 0.118E+01 0.141E+01 0.476E+00 0.133E+01 -SH all ps 849 -0.102E+00 0.125E+01 0.148E+01 0.563E+00 0.137E+01 -NH all t 20598 0.929E-01 0.165E+01 0.121E+01 0.387E+00 0.115E+01 -TR all t 6126 0.218E+00 0.153E+01 0.113E+01 0.418E+00 0.105E+01 -SH all t 1169 0.141E+00 0.172E+01 0.113E+01 0.417E+00 0.105E+01 -NH all uv 49010 0.199E+00 0.312E+01 0.250E+01 0.951E+00 0.231E+01 -TR all uv 20980 0.651E-01 0.335E+01 0.265E+01 0.127E+01 0.232E+01 -SH all uv 4682 -0.153E+00 0.375E+01 0.247E+01 0.114E+01 0.219E+01 -NH all q 7936 -0.335E-01 0.181E+00 0.207E+00 0.534E-01 0.200E+00 -TR all q 2951 -0.119E-01 0.180E+00 0.214E+00 0.770E-01 0.200E+00 -SH all q 543 -0.163E-01 0.212E+00 0.213E+00 0.730E-01 0.200E+00 -\end{verbatim} -\end{footnotesize} -This table should be checked in order to determine if the inflation is appropriate. As mentioned in the regional EnKF example, the goal is to make the total ensemble spreads of priors ($\sqrt{(S+R)}$ match the innovations (\verb|innov std|) as much as possible. Because this is a global run using only conventional observation data, we can see that all regions (NH,TR,SH) are listed and there are no statistics for radiances. We can see certain obtypes, particularly in the uv has fairly close values. On the other hand, there are still regions/obtypes that have noteable differences, mainly associated with larger observation errors ($\sqrt{(R)}$). Users should consider tuning of inflation and localization, which is typically determined using cases with multiple assimilation cycles. Refer to section 4.2 of this User\textquotesingle s Guide for more information on tuning.\\ - -\item Domain and observation partition: -\begin{footnotesize} -\begin{verbatim} - npts = 131072 - min/max number of points per proc = 1598 1710 - time to do model space decomp = 1.697483193129301E-002 - nobstot = 129087 - min/max number of obs per proc = 1613 1614 - time to do ob space decomp = 5.538591649383307E-004 - sending out observation prior ensemble perts from root ... - nobstot*nanals 1290870 - npts*ndim 42074112 - ... took 6.416106596589088E-003 secs -\end{verbatim} -\end{footnotesize} - -The analysis variables and the observations are distributed to different processors. We can see in this case that the min/max number of points per processor are 1598 and 1710, respectively. Similarly, we can see that the min/max number of observations per processor are 1613 and 1614, respectively, indicating that the observations are well dispersed among the processors. - -\begin{footnotesize} -\begin{verbatim} - min/max pressi 1 516.1096 1051.199 - min/max pressi 2 513.3593 1045.597 - min/max pressi 3 510.2454 1039.249 - min/max pressi 4 506.7440 1032.063 - min/max pressi 5 502.8375 1023.943 -... ... -\end{verbatim} -\end{footnotesize} -\end{enumerate} -Additionally, check the minimum and maximum values of the fields at each vertical level as a quick sanity check. - -%---------------------------------------------- -\subsection{Diagnose EnKF Analysis Results} -%---------------------------------------------- - -At the bottom of the standard output file, there are several output statistics and tables that are helpful for users to diagnose the quality of the EnKF analysis. -\begin{description} -\item[5.] Statistics of the ensemble analysis -\begin{footnotesize} -\begin{verbatim} - global ps prior std. dev min/max = 7.2904140E-02 3.055338 - NH mean ps prior standard deviation = 0.5657563 - NH mean ps posterior standard deviation (before inflation)= 0.3681831 - NH mean ps posterior standard deviation (after inflation) = 0.5323756 - NH mean ps inflation = 1.653412 - SH mean ps prior standard deviation = 0.6475344 - SH mean ps posterior standard deviation (before inflation)= 0.6009755 - SH mean ps posterior standard deviation (after inflation) = 0.6399752 - SH mean ps inflation = 1.086266 - TR mean ps prior standard deviation = 0.4878409 - TR mean ps posterior standard deviation (before inflation)= 0.4240963 - TR mean ps posterior standard deviation (after inflation) = 0.4770048 - TR mean ps inflation = 1.170121 - time in inflate_ens = 5.236316868104041E-002 on proc 0 -\end{verbatim} -\end{footnotesize} -This section is important for checking whether the values of the inflation are reasonable by looking at a summary of the maximum and minimum values. Also, viewing the regional averaged statistics before and after inflation. For this case we can see for all regions, larger standard deviation after the inflation are reported, which is more consistent with the prior standard deviation.\\ - -\item[6.] Spread inflation of the analysis ensemble -\begin{footnotesize} -\begin{verbatim} - innovation statistics for posterior: - conventional obs - region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): -NH all ps 12059 0.538E-01 0.912E+00 0.144E+01 0.200E+00 0.143E+01 -TR all ps 2184 0.243E+00 0.102E+01 0.136E+01 0.285E+00 0.133E+01 -SH all ps 849 -0.755E-01 0.978E+00 0.142E+01 0.388E+00 0.137E+01 -NH all t 20598 0.590E-01 0.147E+01 0.117E+01 0.196E+00 0.115E+01 -TR all t 6126 0.177E+00 0.135E+01 0.107E+01 0.222E+00 0.105E+01 -SH all t 1169 0.100E+00 0.148E+01 0.108E+01 0.246E+00 0.105E+01 -NH all uv 49010 0.765E-01 0.269E+01 0.236E+01 0.478E+00 0.231E+01 -TR all uv 20980 0.116E-02 0.274E+01 0.240E+01 0.605E+00 0.232E+01 -SH all uv 4682 -0.981E-01 0.303E+01 0.227E+01 0.591E+00 0.219E+01 -NH all q 7936 -0.333E-01 0.166E+00 0.202E+00 0.268E-01 0.200E+00 -TR all q 2951 0.369E-02 0.148E+00 0.203E+00 0.370E-01 0.200E+00 -SH all q 543 -0.188E-01 0.187E+00 0.204E+00 0.393E-01 0.200E+00 -\end{verbatim} -\end{footnotesize} -After the EnKF analysis, it is important to check the innovation statistics, as previously discussed in the regional test case. -\end{description} diff --git a/doc/EnKF_user_guide/enkf_ch6.tex b/doc/EnKF_user_guide/enkf_ch6.tex deleted file mode 100644 index c854bf6da..000000000 --- a/doc/EnKF_user_guide/enkf_ch6.tex +++ /dev/null @@ -1,369 +0,0 @@ -\chapter{EnKF Basic Concepts and Code Structure}\label{enkf_structure} -\setlength{\parskip}{12pt} - -This chapter briefly describes basic concepts and the main code structure used in the current implementation of the NOAA EnKF in the form of EnSRF. Please note there are also other EnKF algorithms provided in this EnKF system. We are working on documenting the other algorithms and will complete the User's Guide in the future. -%---------------------------------------------- -\section{Basic Concepts (in the Form of EnSRF)} -%---------------------------------------------- -\subsection{Analysis Variables} -%---------------------------------------------- - -In theory, EnKF can use any of the model prognostic variables as analysis variables as long as there exist meaningful/clear correlations between the variables and observations. Typically, for hydrostatic global models, horizontal wind components, temperature, water vapor, surface pressure, and ozone are used as analysis variables. For non-hydrostatic meso-scale models, like WRF, the vertical component of wind, rain/cloud related water content variables, and surface variables could be used as additional analysis variables. - -%---------------------------------------------- -\subsection{Update of Analysis Variables} -%---------------------------------------------- - -The minimum error-variance estimate of the analyzed variables $\pmb{X}^a$ is given by the traditional Kalman filter update equation, -\begin{eqnarray} -\pmb{X}^a = \pmb{X}^b + \pmb{K} ( \pmb{y}^o - \pmb{H} \pmb{X}^b ) \label{ch6_eqn_xxkyhx} \\ -\pmb{K} = \pmb{P}^b \pmb{H}^{T} ( \pmb{H} \pmb{P}^b \pmb{H}^{T} + \pmb{R} )^{-1} \label{ch6_eqn_kphhphr} -\end{eqnarray} -Where -\begin{description} -\item[$\pmb{X}^b$] an m-dimensional background model forecast (i.e., prior) -\item[$\pmb{X}^a$] an m-dimensional analyses at model grids (i.e., posterior) -\item[$\pmb{y}^o$] a p-dimensional set of observations -\item[$\pmb{H}$] the operators that convert the model state to the observation space -\item[$\pmb{P}^b$] the $m×m$-dimensional background-error covariance matrix -\item[$\pmb{R}$] the $p×p$-dimensional observation-error covariance matrix -\item[$\pmb{K}$] the Kalman gain -\end{description} - -Here, the Kalman gain is a function of the multivariate covariances of the model state variables and observations and the operator matrix that relates the model state to the observations. This update process is basically similar to a simple optimal interpolation (OI) scheme, where the Kalman gain is set to static. - -The update equations (\ref{ch6_eqn_xxkyhx}) and (\ref{ch6_eqn_kphhphr}) can be solved using ensemble technique. The Kalman gain can be estimated and propagated using a set of ensemble forecasts. Expressing the model state vector of the analysis variables as an ensemble mean (denoted by an overbar) and a deviation from the mean (denoted by a prime), the update equations for EnSRF (\cite{Whitaker2002}) are written as: -\begin{eqnarray} -\overline{\pmb{X}}^a = \overline{\pmb{X}}^b + \pmb{K} (\pmb{y}^o - \pmb{H\overline{X}^b} ) \label{ch6_eqn_xxkhxb} \\ -\pmb{X}^{\prime a} = \pmb{X}^{\prime b} - \tilde{\pmb{K}} \pmb{H} \pmb{X}^{\prime b} \label{ch6_eqn_xxkhxb2} \\ -\tilde{\pmb{K}} = \alpha \pmb{K} \label{ch6_eqn_kak } \\ -\alpha = \left[ 1+\sqrt{R/( \pmb{HP}^b \pmb{H}^T +R)} \right]^{-1} \label{ch6_eqn_a11rhphr} -\end{eqnarray} -Where -$\pmb{K}$ is the Kalman gain defined by (\ref{ch6_eqn_kphhphr}) and estimated using the ensemble method described in the following section. -$\pmb{\tilde{K}}$ is the gain used to update ensemble deviations from the ensemble mean. -Here, the observational error covariance is assumed uncorrelated, that is, $\pmb{R}$ is diagonal. Then observations can be assimilated serially, one at a time, so that the analysis after assimilation of the Nth observation becomes the background estimate for assimilating the (N+1)th observation. -For an individual observation, $R$ and $\pmb{H} \pmb{P}^{b} \pmb{H}^{T} $ are scalars, $\pmb{K}$ and $\pmb{\tilde{K}}$ are vectors of the same dimension as the model state vector (before applying localization). Both $\pmb{K}$ and $\pmb{\tilde{K}}$ are calculated from the prior ensemble of the observation being assimilated and each of the analyses variables on the model grids individually. - -Please note EnSRF is a revised EnKF that eliminates the necessity to perturb the observations. Therefore, the equation (\ref{ch6_eqn_xxkhxb2}) does not contain the equivalent observation term to the one in the equation (\ref{ch6_eqn_xxkhxb}). However, this EnKF system itself provides an option to perturb the observations as well. In the future, we will add the description of the EnKF algorithm using perturbed observations into this user's guide. - -In the EnKF framework, there is no need to compute and store the full matrix $\pmb{P}^{b}$. Instead, $\pmb{P}^{b} \pmb{H}^{T} $ and $\pmb{H} \pmb{P}^{b} \pmb{H}^{T} $ are estimated statistically from an ensemble of model forecasts/background. Specifically, these two quantities are obtained as: -\begin{eqnarray} -\pmb{P}^b \pmb{H}^T = \overline{ \pmb{X}^{\prime b} ( \pmb{HX}^{\prime b} )^T } = \sum_{i=1}^n \pmb{X}^{\prime b}_{i} ( \pmb{HX}_{i}^{\prime b})^T /(n-1) \label{ch6_eqn_phxhxxhx} \\ -\pmb{H} \pmb{P}^b \pmb{H}^T = \overline{ \pmb{HX}^{\prime b} ( \pmb{HX}^{\prime b} )^{T} } = \sum_{i=1}^n \pmb{HX}^{\prime b} ( \pmb{HX}^{\prime b} )^T / (n-1) -\end{eqnarray} -where \textit{n} is the ensemble size of model forecasts; \textit{i} is the index of each individual ensemble member. -The expected analyses error covariance at the model grids after assimilation is given by -\begin{equation} -\pmb{P}^a = (\pmb{I} - \pmb{KH}) \pmb{P}^b(\pmb{I} - \pmb{KH})^T -\end{equation} - -%---------------------------------------------- - \subsection{Updates of Observation Priors} -%---------------------------------------------- - -In a serial assimilation of observations, the model first-guess or backgrounds at model grids are updated by one single observation at a time. For the assimilation of next observation, the first-guess of the next observation (observation priors) needs to be re-computed using the updated model background and a forward observation operator. This process is straightforward while running on a single processor computer, but is not efficient in a parallel computing environment, particularly when the first-guess of the observations are all pre-calculated. - -Alternatively, the first-guess of the next observation can also be updated by the observation being assimilated, similar to the update to the model variables, so that re-computing the first-guess using the observational operators is not needed (see \cite{Anderson2007}). After the update of the first guess of model variables, the Nth observation being assimilated is also used to update the first-guess of the (N+1)th and next observations within the localization distance. This process can be expressed in the following update equations, similar to the equations (\ref{ch6_eqn_xxkhxb})-(\ref{ch6_eqn_a11rhphr}): -\begin{eqnarray} -\overline{\pmb{Z}}^a = \overline{\pmb{Z}}^b + \pmb{K}_{z} (y^o - \pmb{H\overline{X}^b} ) \label{ch6_eqn_zzkhx} \\ -\pmb{Z}^{\prime a} = \pmb{Z}^{\prime b} - \alpha \pmb{K}_{z} \pmb{H} \pmb{X}^{\prime b} \label{ch6_eqn_zzkhx2} \\ -\pmb{K}_{z} = \pmb{Z}^{\prime b} (\pmb{H} \pmb{X}^{\prime b})^{T} (\pmb{HP}^{b} \pmb{H}^T + \pmb{R} )^{-1} \label{ch6_eqn_kzhxhphr} -\end{eqnarray} -Where -\begin{description} -\item[$y^o$] is the observation being assimilated. -\item[$\pmb{Z}^b$] is the first-guess of the next unassimilated observation -\item[$\pmb{Z}^a$] is the updated first-guess of the next unassimilated observation -\item[$\pmb{K}_{z}$] is the Kalman gain between the first-guess of the observation being assimilated and -next unassimilated observation -\end{description} - -%---------------------------------------------- - \subsection{Assimilation Order and Adaptive Thinning of Observations} -%---------------------------------------------- -In realistic assimilation systems, observations may have a non-linear relationship with the analysis variables. In addition,sampling errors are common due to the limited ensemble sizes. As a result, the achieved analysis can depend on the order of the observations assimilated. There are three options for choosing the orders of the observations for assimilation: -\begin{enumerate} -\item Assimilate observations in the order they are read in (default). This seems a reasonable choice for assimilating ``BEST'' observation types first (like radiosonde winds) -\item Shuffle the observations randomly before assimilating -\item Assimilate in order of increasing predicted observation analysis variance relative to the prior -\end{enumerate} - -For the third option, the predicted observational analysis variance against the first-guess in the observational space is defined as (for details, see \cite{Whitaker2008} and \cite{Whitaker2012}): -\begin{equation} -\pmb{HP}^{a}\pmb{H}^{T} / \pmb{HP}^{b}\pmb{H}^{T} = \pmb{R}/(\pmb{HP}^{b}\pmb{H}^{T} + \pmb{R}) -\end{equation} -Note that the predicted variance is based on the observation priors\textquotesingle variance as if the observation is assimilated alone, and does not include the effect of the assimilation of other observations. - -The observations can be further thinned adaptively. It is done via the updated estimation of the predicted analysis variance of next observation. If the predicted analysis variance for one observation is very close to the prior of this observation, the impact of this observation is expected to be very small and, therefore, it can be skipped. The threshold is set by the namelist parameter ${paoverpb\_thresh}$. - - -%---------------------------------------------- - \subsection{Ensemble Spread Inflation} -%---------------------------------------------- -EnSRF uses a multiplicative inflation to inflate analyses/posterior ensemble spread back to the one of first-guess. The amount of inflation is given at each analysis grid point by: -\begin{eqnarray} -\sigma^b = \sqrt{\sum_{i=1}^{n} (\pmb{X^\prime}_i^b)^2/(n-1) } \nonumber \\ -\sigma^a = \sqrt{\sum_{i=1}^{n} (\pmb{X^\prime}_i^a)^2/(n-1) } \nonumber \\ -r = \left( \beta \frac{\sigma^b-\sigma^a}{\sigma^a} +1 \right) \\ -r\mathbf{X^\prime}_i^a \rightarrow \mathbf{X^\prime}_i^a \text{(inflated)} \nonumber -\end{eqnarray} -where $\sigma^b$ is the prior/first-guess ensemble standard deviation; -$\sigma^a$ is posterior/analyses ensemble standard deviation (before inflation); -$r$ is the inflation factor applied to each ensemble member deviation from the ensemble mean; -$\beta$ is a tunable namelist parameter ($analpertwt$) defined in module params: If $\beta=1$, ensemble is inflated so posterior standard deviation becomes the same as prior; If $\beta=0$, there is no inflation. - -For a given value of $\beta$, the inflation factor is proportional to the amount of ensemble spread reduction by assimilation of observations, normalized by the analyses ensemble spread. As a result, the inflation is in general larger where observations are denser or have larger impact. The actual inflation factor can be quite different for each variable and cross vertical and horizontal grids. If the smoothing namelist parameter $(smoothparm) > 0$, the estimated inflation factor is smoothed using a Gaussian spectral filter with an e-folding scale of $smoothparm$. The minimum and maximum values allowed can be controlled by namelist parameters. In additions, extra inflation can be obtained by adding random noise from a climatology distribution of the model errors (\cite{Whitaker2012}). The amount of the random noises to be added can be controlled through namelist parameters as well. - -The total amount of inflation from these two inflation schemes should meet the following relationship (\cite{Houtekamer2005}), as close as possible: -\begin{equation} -\left< (\pmb{y}^o - \pmb{H}\overline{\pmb{X}}^b )(\pmb{y}^o - \pmb{H}\overline{\pmb{X}}^b) \right> = (\pmb{HP}^{b}\pmb{H}^{T} + \pmb{R}) -\end{equation} -Satisfaction of this equation ensures that the total ensemble spreads (ensemble spreads plus observational error covariance, right side of the equation) is a reasonable estimation of the RMS errors of observation priors against observations (left side of the equation). This relationship justifies that the ensemble system works reasonably well. Moreover, the ensemble spreads should be tuned appropriately relative to observation errors (assuming these errors are correctly set). Substantially smaller ensemble spreads could lead to underweight of observations. As a result, EnKF may ignore the observations for assimilation and/or lead to an over-divergent ensemble. - -%---------------------------------------------- - \subsection{Covariance Localization} -%---------------------------------------------- - -To reduce the impact of spurious ensemble covariance on the update of both analyses variables at model grids and the first-guess of observations (observation priors), localization is applied to the covariance (Kalman gains) in the equations (\ref{ch6_eqn_phxhxxhx}) and (\ref{ch6_eqn_kzhxhphr}) in both horizontal and vertical. The function of \cite{Gaspari1999} is used in horizontal localization. It uses a 5th order compact polynomial and the impact of observations is gradually reduced to zero at the specified cutoff distance. The scale height $-\log{(P/P_{ref})}$ is used in vertical localization. - -The localization distance is an important tunable parameter for a successful analysis of EnSRF. Tuning the localization distance depends on several factors, including the ensemble size used, model grid resolutions, weather scenario, etc. In general, a larger ensemble size allow a longer localization distance. But assimilation with a smaller ensemble size may benefit from a reduced localization distance to reduce the impact of spurious covariance. In addition, assimilation of higher-resolution observations (e.g., radar data) may require a much shorter localization distance. - -%---------------------------------------------- -\subsection{Adaptive Radiance Bias Correction with EnSRF} -%---------------------------------------------- -An adaptive radiance bias correction procedure is used for the satellite radiance data assimilation in EnSRF. The first-guess of the radiance observations are updated by the radiance observations using the assimilation procedure outlined in the section (\ref{chap5_sec_mvopu}). The updated innovations (O-B) are then used to update the coefficients of the radiance bias correction scheme. The first-guess of the radiance observations are updated again using the updated bias correction coefficients. This process may be repeated/iterated multiple times until the updated first-guess of the radiance observations and bias correction coefficients converge. - - - -%---------------------------------------------- -\section{EnSRF Code Structure and Key Functions} -%---------------------------------------------- -\subsection{Main Code Tree} -%---------------------------------------------- -The code structure for main code \textit{enkf\_main.f90}: -\begin{footnotesize} -\begin{center} -\begin{tabular}{| m{2cm} | p{4cm} | p{8cm} |} -\hline -Step&Code&Explanation\\ -\hline -initialize &call mpi\_initialize & initialize MPI\\ \cline{2-3} -&call init\_rad &Initial radinfo variables \\ \cline{2-3} -&call read\_namelist &read namelist (enkf.nml)\\ \cline{2-3} -&call mpi\_initialize\_io&initialize MPI communicator for IO tasks\\ \cline{2-3} -&call init\_rad\_vars &Initialize derived radinfo variables\\ -\hline - -prepare data & call getgridinfo & read horizontal grid information and pressure fields from forecast ensemble mean file\\ \cline{2-3} -&call readobs & Read observations, observation priors for each ensemble member (from diag** files generated by GSI forward operators). - initial screening. \\ \cline{2-3} -&call print\_innovstats & print innovation statistics for prior \\ \cline{2-3} -& \textit{if (readin\_localization)} \newline -call read\_locinfo & read in vertical profile of horizontal and vertical localization length scales, set values for each obs \\ \cline{2-3} -&call load\_balance &do load balancing (partitioning of grid points, observations among processors)\\ \cline{2-3} -&call read\_ensemble &read in prior ensemble members, distribute pieces to each task\\ -\hline -analysis& - \textit{if(letkf\_flag) then} \newline - \textbf{ call letkf\_update} \newline - \textit{else} \newline - \textbf{call enkf\_update} -& Update state variables, observation priors, and radiance bias correction coefficients with EnSRF or the EnKF with perturbed observations\\ -\hline -write results & call inflate\_ens & Inflate posterior ensemble using the multiplicative inflation scheme\\ \cline{2-3} -&call print\_innovstats&print innovation statistics for posterior\\ \cline{2-3} -&call radinfo\_write&write out bias coeffs on root\\ \cline{2-3} -&call write\_ensemble& write out analysis ensemble \\ \cline{2-3} -\hline -clean up &call obsmod\_cleanup & \\ -&call gridinfo\_cleanup&\\ -&call statevec\_cleanup&\\ -&call loadbal\_cleanup&\\ -&call mpi\_cleanup&\\ -\hline -\end{tabular} -\end{center} -\end{footnotesize} - -Please note additive inflation may be added to the posterior ensemble offline. - -%Hui commented the following subsection until further confirmation -%---------------------------------------------- -%\subsection{Update of radiance observation priors and bias correction coefficients} -%---------------------------------------------- - -%In the analysis update process of EnSRF, the radiance observation priors and the bias correction coefficients are updated first. This may involve multiple iterations, before other observation types are assimilated. The code for this function is ens\_update of enkf.F90: -%\begin{enumerate} -%\item Determine the order of radiance observations for assimilation according to the namelist choice -%\item Read in the radiance prior/first-guess ensemble -%\item Apply the radiance bias correction to the observation priors and -%gross errors of VARQC type check -%\item Start assimilation loop over the radiance observations, one -%observation at a time -%\item For each of radiance observations being assimilated, find out -%other radiance observations within the specified localization -%distances -%\item Updates of the first-guess of these close radiance observations -%\item Go to back to Step d) for assimilation of next radiance -%observation -%\item Finish the observation prior update for all of the radiance -%observations. The bias coefficients are revised using the revised -%first-guess of all radiance observations -%\item Go back to Step c) and repeat the process using the revised bias -%correction coefficients and the updated radiance observation priors for multiple times until these become stable and converged -%\end{enumerate} - -%---------------------------------------------- -\subsection{Driver of Serial Ensemble Square Root Filter} \label{chap5_sec_mvopu} -%---------------------------------------------- -If using the EnKF algorithm (if $letkf\_flag=.false.$), the priors of model analyses variables, -observation priors, and bias correction coefficients are updated by subroutine $enkf\_update$ in $enkf.f90$. The code structure of $enkf\_update$ is: - -\begin{footnotesize} -\begin{center} -\begin{tabular}{| p{3cm} | p{11cm} |} -\hline -Step&Code\\ -\hline -1: \newline Determine the order of all observations for assimilation according to the namelist choice& -\begin{lstlisting}[language=Fortran] -if (iassim_order == 1) then -! create random index array so obs are assimilated -! in random order. -else if (iassim_order .eq. 2) then -! assimilate obs in order of increasing HPaHT/HPbHT -else -! assimilate obs in order they were read in -end if - \end{lstlisting} -\\ -\hline -2 begin outer loop& \textit{do niter=1,numiter}\\ -\hline -2.1 \newline reset ob error to account for gross errors -& -\begin{lstlisting}[language=Fortran] - if (niter > 1 .and. varqc) then - if (huber) then ! "huber norm" QC - else ! "flat-tail" QC. - endif - else - oberrvaruse(nob) = oberrvar(nob) - end if - \end{lstlisting} \\ - \hline -2.2: \newline assimilation loop over all observations, one observation at a time& -\begin{lstlisting}[language=Fortran] - obsloop: do nobx=1,nobstot - -.... - - end do obsloop ! loop over obs to assimilate - \end{lstlisting} \\ - \hline - 2.3 & - \begin{lstlisting} - ! make sure posterior perturbations still have - ! zero mean - ! distribute the O-A stats to all processors - ! satellite bias correction update -\end{lstlisting} -\\ -\hline -2: end outer loop& -\textit{enddo ! niter loop}\\ -\hline -\end{tabular} -\end{center} -\end{footnotesize} - - - -The details of the step 2.2 is listed below: - -\begin{footnotesize} -\begin{center} -\begin{tabular}{| p{3.5cm} | p{12.5cm} |} -\hline -Step&Code in Step 2.2\\ -\hline - -1: \newline -which observation to assimilate next& -\begin{lstlisting}[basicstyle=\ttfamily\scriptsize] -if (iassim_order == 2) then -else - nob = indxassim(nobx) -endif -\end{lstlisting} -\\ -\hline -2. calculate :\\ -\begin{eqnarray*} -\pmb{HP}^{b} \pmb{H}^T \\ -(\pmb{HP}^{b} \pmb{H}^T + \pmb{R} )^{-1}\\ -\pmb{R}/(\pmb{HP}^{b} \pmb{H}^T + \pmb{R} ) -\end{eqnarray*} -& -\begin{lstlisting}[basicstyle=\ttfamily\scriptsize] - hpfht = sum(anal_obchunk(:,nob1)**2)*r_nanalsm1 - hpfhtoberrinv=one/(hpfht+oberrvaruse(nob)) - paoverpb = oberrvar(nob)/(hpfht + oberrvar(nob)) -\end{lstlisting} -\\ -\hline -3. \newline -calculate Equation \ref{ch6_eqn_a11rhphr} & -\begin{lstlisting}[basicstyle=\ttfamily\scriptsize] -if (deterministic) then - ! EnSRF. - obganl = -anal_obtmp/(one+sqrt(oberrvaruse(nob)*hpfhtoberrinv)) -else - ! perturbed obs EnKF. -end if -\end{lstlisting} -\\ -\hline -4.Calculate Kalman gain (\textit{kfgain}) (K, Equation (\ref{ch6_eqn_kak })) and add the analyses increments of the observation being assimilated to the ensemble mean (\textit{ ensmean\_chunk} and perturbations of analyses variables at model grids (\textit{anal\_chunk}) (Equations (\ref{ch6_eqn_xxkhxb}) and (\ref{ch6_eqn_xxkhxb2})) & -\begin{lstlisting}[basicstyle=\ttfamily\scriptsize] -if (nf2 > 0) then - do ii=1,nf2 ! loop over nearby horiz grid points - do nb=1,nbackgrounds ! loop over background time levels - do nn=nn1,nn2 - nnn=index_pres(nn) - if (taperv(nnn) > zero) then - ! gain includes covariance localization update all time levels - kfgain=taperv(nnn)*sum(anal_chunk(:,i,nn,nb)*anal_obtmp) - ! update mean. - ensmean_chunk(i,nn,nb) = ensmean_chunk(i,nn,nb) + kfgain*obinc_tmp - ! update perturbations. - anal_chunk(:,i,nn,nb) = anal_chunk(:,i,nn,nb) + kfgain*obganl(:) - end if - end do - end do ! end loop over background time levels. - end do ! end loop over nearby horiz grid points -end if ! if .not. lastiter or no close grid points -\end{lstlisting} -\\ -\hline - -5. Calculate the Kalman gain \textit{kfgain} (Kz: Equation (\ref{ch6_eqn_kzhxhphr})) and add the analyses increments of the observation being assimilated to the nearby observation priors \textit{ensmean\_obchunk, and anal\_obchunk} (Equations (\ref{ch6_eqn_zzkhx}) and (\ref{ch6_eqn_zzkhx2})).& -\begin{lstlisting}[basicstyle=\ttfamily\scriptsize] -if (nf > 0) then - do nob1=1,nf - ! gain includes covariance localization. - kfgain = taper_disob(nob1)* & - taper(lnsig*lnsiglinv)*taper(obt*obtimelinv)* & - sum(anal_obchunk(:,nob2)*anal_obtmp)*hpfhtcon - ! update mean. - ensmean_obchunk(nob2) = ensmean_obchunk(nob2) + kfgain*obinc_tmp - ! update perturbations. - anal_obchunk(:,nob2) = anal_obchunk(:,nob2) + kfgain*obganl - end do -\end{lstlisting} -\\ -\hline -\end{tabular} -\end{center} -\end{footnotesize} diff --git a/doc/EnKF_user_guide/forward.tex b/doc/EnKF_user_guide/forward.tex deleted file mode 100644 index 7e88640c5..000000000 --- a/doc/EnKF_user_guide/forward.tex +++ /dev/null @@ -1,47 +0,0 @@ -\begin{titlepage} -%\BgThispage -%\newgeometry{left=1cm,right=4cm} -\vspace*{0.5cm} -\noindent - -\begin{flushleft} -\textcolor{darkgray}{\LARGE Foreword} -\vspace*{1cm}\par - -This User\textquotesingle s Guide for the community ensemble Kalman filter (EnKF) data analysis system is particularly geared for beginners. -It describes the fundamentals of using EnKF, including basic skills of installing, running, diagnosing, and tuning EnKF. EnKF version (v) 1.2 was released in September 2017. This version of code is compatible with the Gridpoint Statistical Interpolation (GSI) analysis system community release v3.6. - -This User\textquotesingle s Guide includes six chapters and one appendix: - -\begin{description} -\item[Chapter \ref{overview}] provides a background introduction of the EnKF operational and community system, EnKF review committee, and data types that can be used in this version. -\item[Chapter \ref{enkf_install}] contains basic information about how to get started with EnKF, including system requirements; required software (and how to obtain it); how to download EnKF; and information about compilers, libraries, and how to build the code. -\item[Chapter \ref{enkf_run}] focuses on the input files needed to run EnKF and how to configure and run GSI observer and EnKF through a sample run script. This chapter also provides an example of a successful EnKF run. -\item[Chapter \ref{enkf_diag}] includes information about diagnostics and tuning of the EnKF system through EnKF standard output and namelist variables. -\item[Chapter \ref{application}] illustrates how to setup and run the GSI observer and EnKF for a regional configuration and a global configuration, as well as how to diagnose the results. -\item[Chapter \ref{enkf_structure}] introduces EnKF theory and the main structure of the code. -\item[Appendix \ref{nameless}] describes the contents of the EnKF namelist. -\end{description} - -This document is updated annually. For the latest version of this document and annual released code, please visit the EnKF User\textquotesingle s Website: -\begin{center} - \url{http://www.dtcenter.org/EnKF/users/index.php} - \end{center} - Please send questions and comments to the EnKF help desk: -\begin{center} -enkf-help@ucar.edu -\end{center} -This document and the annual EnKF releases are made available through a community EnKF effort led by the Developmental Testbed Center (DTC), in collaboration with EnKF developers. To help sustain this effort, we encourage for those who use the community released EnKF, the EnKF helpdesk, the EnKF User's Guide, and the other DTC EnKF services, please refer to this user's guide in their work and publications. - -%need update page number - -\textbf{Citation:}\\ -\texttt{Liu, H., M. Hu, D. Stark, H. Shao, G. Ge, K. Newman, and J. Whitaker, 2017: Ensemble Kalman Filter (EnKF) User\textquotesingle s Guide Version 1.2. Developmental Testbed Center. Available at \url{http://www.dtcenter.org/EnKF/users/docs/index.php}, 80 pp.} - -\end{flushleft} -\end{titlepage} -\pagebreak{} - - - - diff --git a/doc/EnKF_user_guide/images/DTClogo.png b/doc/EnKF_user_guide/images/DTClogo.png deleted file mode 100644 index 69c792b3417f9ee01a86ae2e64980ddec4b67bf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25953 zcmYhhV|1iz(>5GUFtKghwrx+0iEU?M+nzY-*d05W*tRFOF<v`#G36pgsr z;ixWgG|$8+fQc2W^yA6-HkmE8=%q6|zWr2n0A(*QmDZ z4FMBs{JD?Z1ukdUg@!dV_tK@Y4L5J}*z*$N^3qdzHHcxRgemWYN=v*I+H@Jf7=}V5 z7yAu}dp9|uR!{#pyK0n|f|KQn*l68#?b_@5_~wuzZnr&dLEn9N9?8Gjx>b6Bk+kdZ37f(n{kn5VmpsOUQRpTk)4Qne zd4v<=RP~Z*GXiM!6jH9#WigRV0kn1UoD=|rW?Q#$M)C(?B5wiaL=uijg;LC%D-FWE zPh;w)yO}QNrDO4)2E3 z6BIeV^6v7r^85L(7Zv4A;R!GNO`+ZDQYLn0@iTk^67gY}V?_G>-+g?h9sYoOx<$8; z8&B{op;~HD{)Q?JBj;Kplup@77ED1ufIaANa@R>)bCZ5jd(wDPeo}bSf5JB1Np#SD zk_M9akm^R~EbJYb+@1w_=`66wx9h7i6-PJfcu9}SFiO=(4gSiTr-zp|nI)J%+vIEU z==9-%?oj(H$E9es`{%6kym zQ3}r-n34yCawP>GHOu9Eq<^)DMz3)uO6TFI822Kc_7w8H7Z8^9KGN6SdXe33L2}(;ZfbLqthj)0 zTOBGOrrOgM3X3d<<}lx20eXkGn*MLv$#fJSL^l$#+jPK_~dXV zqS=gxXw5<&YkXacX+sm(8Xw0OLYyZBUf;~~Iz8wsdV7VfL3(|To1vlE*j@9>0LX7~ zAc#bP{&0|C;#>^^AreBQKar=QbtNH2Z9SZbn+KO1ky-}Jb=JI<&CY~8<)OUVUU$Sv zPEU`aDb3s0c3KedMJ)+~#$J>Dk!@0p*-KxO1<2>0BJ@tz){RUWSdgUv|Q6<4k_gSh5J02d-P^ zZHv@Q@j}e9{H6JyQ&45DnE#zB5&t~Jz1jBhA*{COx+`N8L{d*#y*R7C7C~e{x!%Hz z=A8yb!ZD7I;FdW(iEQkf{;wK=#YmsGOl@gsFC|qUO7 zLG0~H5tfQIEsLu-r}JKHxBf?!pfNpF(LX4FtR3wnGaB=5+b$aP0u%}SX*yBanH)gw z6=MS{q=&?5JFSx_As(^gl23bC{A+_cXp2Bzj0EN_Z|qgo-sKf%&wH*+qk-!R_FpxY zA*8nT)+GFO_O8$ms=k%yjV3?l4A}n>_d~)E4J>mzHqc~0N~)23!ImpeFK$npohwmZ z#M&lc0R(C95>T}IZXH-hHwtdY@XePmF#DtEuUOQ742Y%n@&cu#x)pNw2HD|WheD_d zpavS73J9O3v9UVt{8z(2BzjN+)-tyjIbHYW zQ*b(5n(-)atd+I5Vkh-+ETN!wj*R1Sq(3|?tjQKBz52)GkNBIjxn3IniXKM@SWDb? zV@~C0uZ5|}rYp>8#^Y|XwJ`ZY_+ubdV#UHaWK3 zkbvjVcH}0OTY`E4X$mPsRh7u_bXiNBLLyPZT&t^wqK$}MwWK&}nos@1Lgj7|50N;W z)^~{ino5Y2$r{2AH*jrsF)EHxeNS;%)`6x5W2i*Ig?UJWU8V^c(tN#}0wV9HS{BL< zC}!yzWTv(vj_*HU`v=+M1OYm^fV*jmEcN;5C57bes=KfIYApphG~esyB44!d3RS@1 zo?fag)|(i#&_i09W>n74N)rV{{yl90Q6jRPN&!?K_k8QsRwhi_)s+Tc7~c48A_BW0 zrP_IBTg%D~lDCQ-BQL!~$F3Loe;n{u{(Kb;0|?0f;484^ZA%W|r}# zvk>>>*}0C{@o=z)C}=X7&!&tQQ2Hy|aP&3vH(o1FKvjd2+PF1PSN|h|MAZw&!9s zWpRUe6*r6seH)XIYe`^N+<^EN`rDAKhRFaQcxOpMz+YoEeEtCuuvq=vV@Hcw->7VA z0f5mcBUj}Vi9!~FnD)&tPlP;}_zPzl7%BQ*bpJZZPh=u6 zPW)bU#QiZ(_^0S_tX9bDK;v{dzl+v0Kq8;HR&YSg{7fJ5gORP8$!$1thq z92dA#vku3aj&yce6m$5|s6VOk{k0`x_9mSWZp|8WU515;UdyP28-HPBc>Vc~&~_%W zh;uBdd&i_9TspJiC9wo5=#J4i#El|mVA*HaROd~3EBG-$q?W9%WPQZqM@W6|@3xeq z)@#b@TM;}OY*xm)jwa@enQdM(zfL5o$bj#CKJmL>>(pbGp=X*JnnSbBQ9O8-`@$xT zyDnlsQ-g%*Pg-Mh zUv#pTly;A^79})_n zd;~oLMo58DnLtemD`m)t&atiH$$E3Ts{%XHt^im zGc&N(YX-xYeTHa8^%en7EEUaW5#b(i6mp^eiEZEkGSCsG+JjiozX*DYkWnJH z?z;+ly=m+>)SVdnq~!|(Oo*Vdn6z<`qUFFF4qckE;lVx$-D(>N^a^x#Rrz%hn69J~ zBji;{WG!*Uqo}e;GmL&Vc3n8RJIqT2J!6)o=s&Pe=p%y8!drO z>Pyec^^1XwuPUdL%r}SPpP<8EPq7Hsqa{M=o0R0&sR;%|44)0yiK{sw0`PIB#O(15 zD5>o=)LH#}sp5zwgP!^>s32wps{a>$KXcZpVsYpY?ZC;xUh&hrq$f}$#hQ1aGLkEX zR3^xQxNf6`4#}XKmB1RM(OIKlQOPHRrHR#LUc zZxVYfYB#r}BLC^H#rNkP7Z#v=SSoiAaFdo46$HjRX^ z?P+=ecq*qQQgt)Oavn~&ed2O8Nu6tLA@U7Y1f3dIaUH_?pdQrC);lWAZ%)Br@MzlXg<~M=A&54e5MXeOBrt<^DQFNxgTceMt(vb2Au4hwmD?WZn z?~fHU3FI<%7Qoo&)`*FuLlubXVxF(Ri2WPDx6LHC+mP4o0LF18*w=F{^$uh$q58iH zL?}Qrf|uLs8#nu{`>!+~DTtW+e3gqUoJ@FQ4Jvy*g8tZ&i}`);r?Pu&gL`(vzBEmvK7Scn`Z&w6F=Z`Ge3GD+ z;Z0p0byvYL2k2eup-0wS#Hp(6iLAksn?1ZOcy+iGV1;3!s18nJQBr&uVE+ziNlt=F3RLM=ixLP=wh$DgDer>ZTX#_2+`zVsz;87s1g3ekgAya+#{ zg1_QSDxw{?ZUm@XKB}MeJH$bza|YDzX+e^k%CJ5%#9G6ms89>L0>jniuJ;&&&KKyg ze4P7PYz3^L2Z$2`TZ`#EPI7eLp4E^~*4o0t&(Y$Onr-9m`?ofee!!0i+$z`%QkR$H z>ntp!^nn&s`x-i9eKw}Y!Zxys#>%KV2AnW%Uri}C$N=Xc29iG47g$fzo~M+Tx`W>- zDwR%Nq~kJQLors9Xf0$@_sKH1C-EhHi$2S0hgYK7Z3xZq^Qq18-rLfs>E%t)2D8k62gxwi2<_hSA5z@G1jo(k${gHMq6rN_Q zsrYKi;p`e^8Prgvl~5F@j!M6X8s^xAbF6r zQ(AktqdMmQuf5$RsU_M!v{GjMxR0S*wTYThV87XCZtl=R9-*S}TwdEvh%xf;&>`bn zcg5xsKKQnZ(xzM!e%qsuk%(wmLW?@=OwS)Hu$b`f&9&S!^YL;}N5D_=F8^=4u)YjE z&f7atjPp!sf3!WwO8)zIvYb>=S!9_47=*ZiHxJdh0e19oizG?Uu;b_k<+1o5K2We- zkW`f3cnSk|yPOjWIftucL3qIOK8U+FaO=l?SSeoHX4${}Ks74Zt&9V#R`7PYyYuzv zu`!BHf{mv-tJV>x*z>mYxNb6%k8f$N4ykeQ zbv(7*I2{BoU*UgEY6yyy&Ka1cXuqE~jr*LD)VKl|fYm)OC2dZ&OM7YEfpr%%?pN9J zMEs)-(qY%e@ZO1EM=|iju=H7-7RrN*YQ1zWPaGCfUaJwlrrdP zIy*^rHiNs3427S$XLyOwK~11)o*g3(85i!{Efa8}(QWOo%37PDv>`ENhI)F`Bb54c z0vEATW?yBgr?&@C{B9R?sW;l9k86sA7@F^Ix4GJ-v(+LYNDGRg_o@nWG`Lh8`A zJf`$60$EBD_(pvuE{ipH@lHoM>X}3cSvlaH3el&m=`G2$897I$zIdlwTGQT=Qi``3 zuwJLUO+ENbWRTWD1e?H{Q&gCi#Jf1+_~)dypG^G^%Yi-FFx67up(fR~TL|}wTe^H- zTw)HLoqA&n-Y*+;NF9d1c3V25Mcru+ianR!S}D)3PZmiRs!vheaFu0OQ5^x?aZwD3 z^&u&tisG5pyE!1d7r!t!%nzVw`#NJzHvD{BN%VRUgbJix8gix>@ZR}=L1A>QPw!xY z7Zi+-gZ+MQQ5utV@PoQ03Ux01R+-$uU@O$Q64@uW81~OY09j>t>D(MUTSD%aILD(* z**rWun{X&=6mKOOLSM$i*&G3h{~*TzJ)W^m&}lI+wKXQ}rH;DLsT(pp9U~38-`CB- z4Z^Dl$zp#!uE1zoZtnm>6ZO*vdug2VNaDH7>f^pJA-Jj|A6+uax{ki{>sBW%0qzq%atoNRGvwMa@-ko}7&WoPIGWQzL@K&m{q=)7eKq)0&RpT+|oIURct7kvCU z`WwocZZ@4A5h(FNdbmS0_t2dy(y3_Y)d+lv2q@|W%W<4&umi=Ng9Tx^)V#dcf_%Z_ z#UKlt()oK%`(CZNEfXFc3P-wIp7K=?|_fbX{Z4OI`Hf2{_QqZYTF5W0DLR+>|2!@B;WwS7kl{Z7tYS z_e!mS4Fp~dD7agg!+v>{BP|wA?C*{1ae2~2^g4(z>qe{Ad4ek8fo^V3`F$c`KsyDDpJ_H*9|6S<|ayojit=)NV6s64dVXKOZ z>l9JcJXH^59m5b}yDIn&hrvpO6iD9&cCHBGIs+g9S4s`Q+cqs6fuJUwMRkI7y_*H? zIShMxWsad54(%eY#srI1yE3~o5;`dppO(1T+Mu)pN-%9Mtrf-~C6~rge>v@bv1?}y z?*3r%ajc?Gn#->d9HrK(TFCqPi1-XIwz(Oa6G+^*U6x&)nNCL*_OJ$U3)RRN*xBhk zdJ$$QOlYkkg0WHncj@1HTfe@AeA%zi z2{pEznE%cL*Lni0+#03dGNK%M{E)ljHgvtZwuf6ucQ?Y@N8LMPHukMuy-ANNNjqqX zF?G*Mp7yo=ryHI`vjE_`eKshLq0S`&om9ZOuI&$+%WX2k~aHr$LyBS2A)?JWp8Hduu=D;8*Qj z9vA)I@A(1yLIPD6vpH3P(s^xPW4`0!m?Qm-9TgX)dG-(?`&Y#<{usElOU{l_Z9k1B zW1<=HWQm5}Qb<3y#2hAUCVe{>>ltN)tIMU3{v&MH$UJ@HxBhq3BH$WEJ}Gug1#hxOG_Qg@$uFyd}1x$hgL3o)^}6iq7&!~2X1AYZQWmy1E*t*>=s24!B&mIPSjqc zjjWr(B}&Zfq-REA;g~)snHzT0pq|fxA$Us~7I;=~rh71Enu&j`T68W($mtV{p3tmP z-_(GQuR&TX10C1W3mSJGDW>O(xxP_d<)q@Mj{B8XM^5F%<|6Ch`!x?|{mJwqnqZFK z917;U_P?=o94ugl_5%W{+5KS$ebsi0OI=P;6QDaRV}pvvdP13CxA$Jl(QB@ZX$>V4 zt0PUeNdD~n%PE6&wj#QwARl#bNFyBJBcQ{mz9XUy$xNYM!`kH1xSqfC#TTRk93JQ|&J^gAQ?jaTKlhim zphikh-6r_#sG?jxm@}QpbiUfCx>Rx~uSc0FKhrn9>%|SO4jaZDs0BbuGkYWRhh?FE zvsk0EJ~O>AHzGN#X-W_-w>pt%i2OpZQNx&1uOhO(bIHzHTG;xv=&%8&979lbH99dC zMs4jdr^JUaxU>`h;v1^mJ?CDUx$|Y|nWp`J1WF4bm@3M8WuFW~pu zs|aJ%T_4Y?D*c{*SPSD7R9&1`D^JgY0`$f2q$Z`83R1_ji(CVkmZ*1EsjHgbNyA7~ zoRYj)SU62u!L+57Uslv|5NUP=&6o;z(w}hI!D$OS>P##_)~Ox;ul#V9G*k(sbY*_NkUfNIn|-uZB-A&!>t(7o?MM4)*W41fl(2m;fR>%0)iUp$D_Pq9pV~iP zHVI{YFU{(z@7g$-R)@?z>pW0iBz5~z0Ua=${4g34?DIprwoO_+rEn=7bwz2sky5xh z*W6JxyG3nz9OC^!32>2No^_o*hVzj*_A*dfe>y$Qjp@n~#k{;Sy~dmF=5W}4$o_vb zq@~cFV2GB?d)qCbT8!#}JjL9R?xGGwb6lKZdF%8k>Bd*O#L3#s=Wtwd>0v4`E@(^? zWcx!WxAY^P4h4io2b8R92r)o;A*THJWyiF9Bzg8YK=@lgu-LVYGtghB(D&+TND0D9 zvOJ_qug(9HA=>5;HpJ^qiO)dAX6MS)5BO;HAcu8OlMGG#U0D4*Q@%*ql;AFx&X?fj&Vi&1^ zcae{e$fQjzLex_IcS53&YGd0FgYLMUA^b)x^#e|~^!$-!t1D2e=TswBrvcf1kah(! zZyhh-J=$auuz&q@V(?#Yq>GFtZWkQLv6q861A&l=#+_*s@;YpmZQh-q~I44b)i|#5Xw%HdD3EXdp z@BL@~urGpcJBG1F2T3yUkOBV1uqYnRaLTu1uB--M@T#D`9x0VFtL~3{#I z5`*c6Y!U9FTzF-Ve;I2LkO3Y2Ca-jqUaQcpwDgX)1b_813NVOqs+a4zB%WNJA4FYt z{OlFh@2B!&hlT?9v{1g9m=s)|{Z1IXmw%i|a9d};?vjcn>+RI--4IX2$A(6S0e)Kw z>>%ZS>VHNFu3b%F9sXX_p!!{wa@FD#ec@{0=5pV>d;F_76xOJEFA0K)0{649)fka6 zU(R*LxiTQVZ{Cu=^jPLE`GXSxgN*e#cDs}F%j1}mmHT2LjYq*}1t66EU35{^lC%+s z%yxSmB5h#=N#_}3B@-eC#woHVmqkr)7k)EnlGTqqRPY6MVZV`fkN-M^mqbaLZ;lp+ zJ9Q=qn~0T2niJr?YGh-hDVlP%VMIbZ-ba^-*6x2``~`t!t7)6%!6(U`9hz{nf)dN# zd+Egx@LMv@`DX795!gG z1CcgUyc--lH0ozxcPFA;AGR-9sr1<{)&j-LDeg622bSE1i5Iib-HHS*p}E=5hnOQq zy$yRJ5A3U?s1Bg8xeRVN`YCb`!pb8*u3WIa+RRi#<93uA0|Yx5@bXrX;TcQ%=KrGr zEFdr-LB-L@?O3ypaig?3UEKh`BA^b0rcAvV_M;Xl$P`Epsg>itoZvf5-5~k+`O~TF z@nKB7F0QO##GS*1aasKdM$p9`I^1E7=`)+XzWo|1zNsu3{gNmxS&pfYN+i1QC+ACD z$%((L3W$KKBv~Igrot{EyVkq-e-J5wrV7;Qn@)-vjImIfo$(=JjuQ8WEIl>%hzg#k zqITr@O4e+yytTSYv_1jjZS3RlC)J@+`X;cwVZ-5kZx5S zWsW_+kb$f%Zxu7-iiq=Vx5~yRSv{u2P9}f$h>Q1GDX%^zR83P;5-5!lL;a0ZedIEm zad`O5-B80wC}s zVRbfd0X}KAxYx8t&Xr^kN3xom|@ffx`r06<&3@}ih)y{TX( zzA}!xG4k|sNOG6;IZob&<@yKfQ*Y>i)!J8o8<}f$7s~?T(K3061kdOL)<1Ol!BXG& zj?5eyhWETluYXmC*QILa1`QtBnun#JrKSnESHtwArudbmcy-9J%udgaWp=#douXjr z+Mp+GU!FtrBIuv>n289^gk(7aU1iOnZ0q3j+75)meCs6C-sI!%(lv7#ripTkH=)C%HJ4?uCVf9|H?52zS$`W#hz zthZ8&4Sr<4&RzbcAZlx&=~|`M49Hc zwg&jqenw;uG0z3O^qaEd% zo8s;2VOqP$t_nN9<{t_LxPpZBH9OzP0WjzttGOUY{aCy=__Xb_0G!U`cJu7VUzCVD zTlE?_S{D_uc;L+4GFq&SoMt7&*o{dV{B81Up>Y5MJlqWVxtpTSS46h?)|=JE{y%mx z7J9iSfZci!3kcFEA~UAP+`QerH5nKHbK_olZ2;XSFf5z*Y6PaKuT9HxBQFjUh|P&R z=oGx`$hRfm2+l}AQ;?*_5M5OXMrJpznrjA9N5JrOkptslqe!-%ek}7p?*)E9FGFx~ z{VeRpoInZVO-fJJj>`ZXynTDC5!5RJS4VlMBZIZL^{~wk0 zZhE=ll}SjOzipqEA%smT6qf_Dfk+^477c3y9y-i(Mk0^TpE%1q{fiz-ckxX$1U?Z{ zXPIw~yE5Xl79ag%V2h5K@2HezZ zDL+1Xi-F!r$t&&8>6y%$Mcx1HyXkxdt@!g~`)xVw%l#l!wT66mnZaqXD(2~sPw(2^ z+x5bG;^?8?F7c+VUy~=^-L`XE|#f6bYoL3ZZDGSnCjumfVm?|MU znp1bh)SWQ@u4w0jJ?rDxE_h?u+P+0BgSS1=k>xHHL*b(HnWOow|7~8RLI6@QG0!;PRT| zSzRGc_)PiaPexF*`(zSW>Dj#)v2=!0J|9c#Uf4JDgI?YE8{l+UhJff~<>g@6!TVpv zGGnt33XL%R#OmH$6y8w0m0xd%N;!h}CS!V`uie`Yna4|lf{p-J`v%q99>my0!3K%x|M?iQ}hURr2kXj_qPMN5r=Z1IDT02 z7qk;&6L3OvZ!#u$Bb9hi$6iQ^XZO&!UeJr`X1Z?k!bsxf6{$%hT6O-ixD+=pDt7n8 zpUo^{r5SFT<;d1HXJX}b_{HNM>g&s~U|vs)?z3ZQ&C10MO}o!zsVU8hZJ4CNE9nnp zFFQL`$Xbd`b@O$4;}mbh#G#5KzDSg;NkQ}b1B+p$y|q;(qtY+%;$ZRG4#pte{;l|L zgxMYv7edx8=WaI_TBwn$QogGC`>LnV^3*k3pE5)E9HMzoTi6ZB;z9N<^) z^_0zFi(rIlW6fzMfty@LI}Ll~2sH+Wt!-zhXS4Ri_ifDb7s@*SGVGmecMgM5V&exn}^y3^EcDJ>-{a3>>MCMVXC89sYieK138g9JA*v-jE~{PT+Aa$V3O*g zoc%Ro5gpwJo1p>Gnqh`|EU0Snzj&6nuv`tvCm-$$i;>KmWGk18c5Nt&nu4y}Y6lB( zNvaym z@oD?s6?9U_({C^c&T;;E@c$N+8pL|`i^qc^hY6O26t^^ElXuOboE(bVR>-&`_0;&h zG22I|!(eC^26pG=!l-zyaXscLxKkrumQ?jRl8nSZXUbPh%kWu0Fulv>aumbQouO{7 zQO)9MEY8w{mv4+mwku(b4$GhtYx8!b-FTemU8YaY|MMIP2}7qqYXVot@3{H`x`E~j zXr!WQdGB{%scb?0F78i3&+(pKgax%OE;t3XG&aAs7C_6R*YxlYV$@*-vF0z%fiUoJ2igiYBYtQ33L0Hf?`Gffv@AG!q$wq?lrUMC5kD6U_^+D#h5Y=>vMkp{oyyRX|Kc{$SwoX~xio z+*6qw!;tc4MXhFNi9o}kDvy^%$S)7!Kps*f6sX3R7UJ{ip6wi5K=>m{ib1u0Zmv-7 z_N{O4dzf(XO#E)6SUy%!0QY-aRqsgE2xXA&V4fsUPuAGRj_tf4)H1Ea+i1D zexdwd8^;gUKnXONBG%3=dh*gULBvU)D9>+&Vjowg%On48%-O=4l|o~FB-VE_3MZ{^ z_i*LXU{a;Q3shA>w_F(8_z0yjWqRN_y3u0;mz>1CR;jRPa_dg2alWjvYUU7 zJddZJB_Z$hwXylWJlg+VPK?Ycq#+4@$%8kCwdd|fCX2k@SihCzLQP9pke8mUV9RQq zExxbEtrqpi-b4jZOL(oNu`ZE5!Zt9D_9Js}mv99cl(VEJ+nP5^Ijlu7xv*N=rk}J^ z>X6R7WPnY{8)^F>*ux5Lmvp__x;`#pX5xH~2s^`v=cd!SJo#ISfCm(p2`_7iWgssn zALc97OroAyLOkZ|nBf@XOhWbY0;W{V(mrWI`u!)_=eVubDzjz9Jxs|L`QGL{xz$9y z--dBtW_vQ!OGmodt{Vy;qraSe;{Lf?rE-|yf9dq)-3f>Jw_%80MbM#~!yxjVhz9>A zuWCS&XA^LBJwPH8cOxC0De}><$@EqSxAKP2W8*O6x+HxURl($a4-Tmea5^w|xxb?c z<*Y2@`syLV3j$-bnuij6xtgi zq+E|aeINpIQ<8!vLFtyXte>8aJB6fFHm80^}j)ntyIXStrL^Ly2HA zj9ewpuDN-aun25zijMN!uX=iuvU_Q5RMq@klE7W@5NtrXrwLZO2q-Vb=+d*X>L0v; ze0vr_<`940Idva0TFMk!UK=5CePx$-IC{>Ng}e2i<34$w3$ZZu-Ef43!33jzeQd2# z_VCdp6QRzTkZef!5{-yJ-QpFFHj@%2MbVwCmmEyQ=PqiFh=7ih@Lp=RufeuA<~~TQ zg(;XGr{geoPpp4`nL{P|&5hnz6mD5@!Co%?)U{QC7)pQKmtc~F^nuQ)KG@m&$8BqZ z0O`4?A2LI%?DnYb=w8s;+Xmh*Lk2!k&lH4&O9DpG&uM|mUZ;9WozBLNvRnid)y&85 z6uE4ga#rr{n_R3j8)UKa#f8mO*+~$Y)=f2cm%^rY!poUTjO-nSEj&gDy~3B5ZxlwB z>b#rW8j;a&kaRH*eK}d8NGyt{S1xw?GE48_c=0yFCybZh%Q!@lqok-IrKtAAE*N%R3tWpGd&!1MO{YqA5 z8{9{#Ya~*XQv@(($tZVOTLwMvG}+ZzN}ZBH29- zD(+xiR{cKM%hxeLV}6mmDA2-=6K5Y|YN?p0%aX}aNppDAdga<2Rk6kuYMf19HT>SW zp_R1nJSK^iU1It=$64gnBAUec}=dbVxgZr>CZ^E4^6|8Ex?;AuW)gKj?Y!!kv(>;z(1xcGCaZ_ zvUr?wYw~C$oYHv-x=4-nPY~mH@;{tZNr_Grt!L81#XNHs@^82z3X40&CpMPz@tlI4 zn-0eEy2v7sFQNz*hz{Y4IWUehX;yK?ZEc1uyS5slGDm*z?>P{Y>oC~MzHeM{K9cRB zx(D}WApA_7*jT{7PPhP?t0HX*s+I#f^)AT-3Ix)gZE}~K)k}5skK_d7B+N@BkKaR) ze=%CCTQcSG_OhkJ#jr$Fi4LTyR4vP0%E0$&J`S6x7aSEN|H1v)NPp5?C$Bbnn(DQ8 z`GPt<@l}p+CWAC-_9CH!$435M^2cM7Cv_};-iMzv=}%~whzPdtQFvw~_R*&(Rf*iL zZR2hUWiJbeQMeLRC$^r_IwFD*S;R1LIA?et(1%CPCl1UNq2D?Lf>j3p4CXL<7`}QK zTd#B?vcoH$MX7P)t68d##YDY%u6Gb*?nN=feS$T-ewk^~bbi-hz=)`@56z!1dps~s zkg&&;htk*DosM9g073B)dD17gG`po=rGURS0?^tZXE-~%5Vc-Fv7g!;O$z+n9r!hF zFXE+7N<)6cnpIPZsxCn=es#d@BY&@U4zoA2z6$QH$twog+P606mprQ5(HupyYFNZ0 zIUl4<%+R>U1#h4Vb53KiBb`b&NnuA(6JF^gW)`yX8A|=7S z;HSdLJ-zm&+)-a^6iy!!)>0ah1Rx`Qr7}<_MSWnAtGPJCs(BKxy&R6DMC+ht1|FJiI&6`q03aLtqAoigMY@lD&#l-AZU?P(+9QT)U_ zs}9v!+|LqM;Z~apV4>_G4%u#W`_&()yh?4TB`2vV*wD*OoH(q9XpW6-qAyK5Ig`|! zZgN%vRTWmjzp!_qMSmiuA%nZt7OrY$#HyeN5a#Ch3W76{B7)|O0IeT*YFZWjs6>M7 zB=h9M1UDC;kd}`(MKd|*A#jPX;I1OixBHqivpKyo15}erv5ls#8@XZQM!oh5Ycgahe0(pV~7N21ju+c*StWt_GV_95XF5PtqJ8+e&}@i@QHid@mJR+B$Ax4OC_Zr`JlKRt3bpzW-tV1<7b=pfXkJ^})Nj$YqP zxAN?c?Voh}nA5$5)d#>hdf%GD_`P{S!o@xS?Y~1imGOI=`@p=E%PYkkAqbvCUv8xZ z?>i{Io#p7RCd$lw-&BAXyCOD!yWfC$n$2M@46kMqtYH~E@n>oAlt7o|Mrkq1PEVj8 z-1^boN(-9zvuKB{Xwlm8vVW@V#rq^kx3W;rU$a9{A&qmlUyda_k=za%kr!nKN+V>) zUm#w}*jQyKnTS-6oPqCroNNB2ZJ@@ne)I$Gx*XOu7c-AhS-pG1Dor6aOd%EkH>{V@BR z>olxCqqIE-vptWsTUORMt@7YU_`~enpxVypE%Bomj{5RW?&Q-6KJ(Mrrp1$XG9Eg~ z!)CVRKrrlznltG}ryzx)R9pu4{$9 z%u?fV`)V205lbW{nbCJA^_krlO4Sm3?<0E`=1AKj(62#W~&cr4mk0hu2P@qn1BnAy~V&ouIwT))B~lC#tSTK@`TSxVy?yR;zLB`gi-lbV3Nt21c4hl4U1^>0_)_ zkbPZQp#NQvK{`J6MIgI^eH>16VSQw<0nz?efA~u)QM5`uTR#88fS6gxer(dKL^s(z zik(#WFz)c!RpAm#!h|>3dUr!_z<4OWXA&rjV$7YsEt_~La++{cyv$V8l33P_tkqAy zk-?5!xfpQNa|kB2UqQswP57PT@kkwTKJ3V!%| zQW-egJI@RQiP)X&TG$^42ed#jim}Z}gf2fHfv0RXhgcl$ z(ovkXEB|BO*)FRdd}lg>Ffh)0I}Oyn6?^NILeV#rYjow4Lui{QQTUPMz8J^edN9MK6bsG_J*+dI);A|ECiG=x7L5RZzkj9uM3I|cs z(8&eA1V=7csR$$Ss{R%k2q8-Hl%1w}^}i0}DK+{T+JHYyuRt_aI_s%gS{Lt!^0OsW zMb_eMPCX(x(QUZ$WHD6gW2$j#sFqw4;(=X>ek4-%?5hSZo-9TlC65RafydWJ;#0dK zs6uu_HPtz<9WBAH>4kckNiJSKRZ8bB4=zR~A~YFZGX9si?-9lYF5yC-66DE#!?9(V z9~UfZrCxsK<070auEoI|Bm53Is)QhBPE{5<UG@88N$2482YJ3H{~fdV{ztN{6q?RfQcDV9cfQ0?udj#n!;KedwJ#Pi|* z487MM+!m(PsJYYv{4>w_BDEN@IOR~?TFL%IHT^AW71oD)^IFSry08{W0q(e$T7eBo z{zwRS$5k?(ubeGMc6}Qa5jNOL3E?YuL?M;x))p>!Z=Wi|pH3DcPc$bcP)*}mq`&ga z9=ceK7fzO!j8LlE;$F*Eo z-R$k~`1UCL^}Pv{eyyk;tU)6)>1|^23RN(LbNe42Ou^~QTD(E#EQ?sI3G>GN)c&la zs#@kuPAMhQq1HiSE%)GwO_A8YCRj;qXRg-a_eTqGoDN85$dJBpwhRej2BnTZ$8Enk zSb%hnFOZDF;~T>9**!7J)KO2#UFOtp4&~!qSsgyOSfQ9)VbaQI7J2PrCDKS(mr#n^ z5b1+2@;X+N2^MwwfwL8OmR`e|WVQ!qS^ce-%#<)x(i~_S5-C#Rsb||{ULU+zh3Dz} zQq7EnDS@8&GVjm5o5SGiZI2?VjGyMb{v*dJB}`vAQ_gwqNj0&#n2S89KpW?^+}qFb zSraKZ(902*8K(6kYRqKrN@AQ$nn$Y1d_{3R`Zkjct%>mF{VKzSvU)7%`f$(kP^_g8 zAS&!a?)#?`#bg%i$w=6$IsaGtVyVgVL?_J#ht5~wDXxD<^J?%e`&bd}NtJiBS}WBw zS3t0aIm4qqyDbV|-V;qhdI{S2ObDIO67DoJMI@d=R!sV%+s zb3coE@(a8vH&bOF;huYj@?Hx!E-z_vt!YKHDRLq&SBq36?pPBbm#o?*dOkOh*p!k( z&M-FPd|?C1jO|p}xZzGZUR`FUnQShyNAv5jjo+n)??ryjpvuRQ6K_MZA6Bteu`Gy} zX^+Y*CG$cewVIlNhlCIWxS)$;6G`@g?cvBGmwWmBHmbebP*mNjQiYnwIy9tFZ(?^m zmSIFE2}q=<+eq*}!$~iagR~T?ki`xo+`p*kGC1BV1@($)uJTo$ZhGQ#3FM~?9itvDPFB<qox!7IPDjP^}YvAqXfSpWOu!Y1%F7Y_E7&#?00Z?L2@uRQ8z8Ef+ zCJ9mc4)J$J8@K)P!yL5pelB(sTl|NNAI_%6#giI=2RDb~vE2+AV%9ZbFeAt$KC&%> znw56EP6jHwxB=OvO=Lt&mB&OXY34n+R4RBjBZVP$J68uPQ-k?h!Wg?LFJ}j994GTe z+Y5`UxZrN$Fy55J%vT)8Lz}|!)%)V$G2}lW9=wi>AFlmNCkab4a*7%`j%F2~FZVK+ z32lVy+DL}>aWXXF)Ix}Jm^+WZkIzd9*P|>F&K%B<%iMQ+ZvgVkTTs9`Kzj}1ecbU4 zu1yc$5pEu~8gmb2#{YaLTS@-I8)oo994{q%oitfLB(*B1vm!V%IDB}QMylOd z31$_2Bv~ezt3~-USJqk5Z8#iH-s>L+Cyn5K2EQu zhEG)R{a6*@h0l`NUPfXobKZe-XFs(dbzJ}QSvjwWTB&qC|M$`!JT`+?Vld;@R|O$@ zNXuuwa7}Q{NQ`+Gg3!^~j}w<`@L#kAesr~p6G0Sg;)MvfGxTO-q%Xd9!% z3uC&yA-)QC*+?gyCOQ$w!|X^-Rh%%S)l;&n=RQ4#5GE7k^s)U5Ogf?keFqcRB zD2dEWY*k16lN{;6m{MO#6wRt8@f8xzeN=Ccv_U1^B!?T6W6H?yB)XLTmPHtF=xQ}8 zIrdyK7wy8mQiW@7!ubb~)AnS}aC4K`&`^H&AVq4dC@iylsgM^*dnau2Fna?f z>6b8}LKme9D=u^gE*nu%-adRkWN#{Lkx@tcBzcNv-m~(dF`3UT?;hmVqx@WkiLH5? zD}Q&T8kk%ZHP3^5jS$CPF6@0={NzR`Rl86swr(z7mDD6O@Vez5rP79$N>1Oh`BJsH zloEp zL<7~dMn1#xlADvjz7we#vTVZ4Ch!^q+#P34a6PFS^`Q1f%uBKc$XpZ2Z>$56<@qN1 zTv6MJ3eIaWcl1)l|320Dd310Tm98|I*ZssaQ|=GfTS?ec)!50L0weQN_VeUA9Omsj zOl;*hX_9zD<~F$Q$lR6n+}z~;nCH2=cSCc&gN~hr#JpxGlbMmK^Iuct{mgs$YE6>k z<-V87I;3m}1E{O-;CeZp;6~6nEu75P*ro~YSVZ_;Zitd<-_OUhRMn~UjQpK+LFwh! zMfl)LaZ}cB3ph!BmJd5ofl)hZ6z}bYS9SZ{x$$Ni~f8E_TJ54kJIx z^tWvM&WR@~7qJ0}gNC$Na&tQ=F`c8jPA{4`xY)& z77r^<_&jp=g6imZwoJU2aefE zCX2KT*Luvw))+`sI^V=bGgqQsk6o_H%>Uk)W;;jYIu!HI;$hLUVA z?}uPv+2mYy)74Rmsa6X@Lr|xQR_(+ID&j_Y%MVd@mPgX?n%=jcwwQ>rR`z+?ol=NCr zL}qea<1r30*Ld%{Nxa%bOTlaJ;)?@>D+#3Q1Rlf^1>i)9ZPX+k*ZKG#MC%dkPy2J0 z4XXIuT&6TFPE0ON3#U%_Hc%^ zT%QzoGr29M`8Dw@6OJysn4u*Mm8s`qF7}1EPy<5}_z=I(ytnb+S3- zoi#zVR=Q!6TIe3yy*APYY?h=|hw^9Ww6bp^ZHI0ylTTTBzHB*uTRspyT&Oy^XvxDo zw#ft1LB|GhFcQ0~JhWpMPxWwf0UHurhPx1EtcS;&IcBk6$?=v=`c%)P<&Q(31xA@q zc06W$f`sw+OvWWxNeiO$*1ao&SsR)vc?-%YN6EdApTtfrHdd+9(ndyLq?yJv@_p!& zI(Ynf$L(kFgN$1iG`U8)8=;c~!eThXdnyTeJp9Ak7xII$r>hw~h(t=O_tH)$Au$%y zSZ$Rt$k;_fTNQ7T(w!;g-cN7uSlUuwJyL>0%+8icduRit;Abxs!$=0`$w!tl#LIi; zm%wv$lK~K-IJPOAh@p6xS&_QR*kwxD3C=vui7MASmxf>q)ync5SYCrXA95dL?nf~k z&yyw((;VXu{4l`zDiYq*M{Tq-BC2W&yJJ3E{MsDkcUk!j4w`E z^)5u@YGD)p>zy1N*0Bp#rY^zu6aLS+IIaYWeUL;TVyyF zi$`~cDwUpjA9?uFa~qMz7{WxVaT6GCC=0!5p)l_?@-D>BkMVa>Te-2T9htO;<Imr;G!mrkZRo7NC%ffs<2wgg2A0T;6CQBu{xJhcWy z5KF;nG{H6ReeLhE0C`a=bEb4$OCnTDJj7W|?Dgg*5_XMfF}VGDG$B%^tVhC%FdGuf zUJ9dZ$>fM;<^NUk{TWm-vXymR^hprsB-0u-vyskzFDI^Neth2CIIqk3{EJ=o z&W*v$2QZTFUhbFVEJ$a3ZWxKJjLRHOHj^{n_5@cZpLigDc(w{Zc`pZNs6tx8r_GKN zJ&K;Q_oRm42@=|y$swwps*yt4N8IQs%*#_8Zauv#FBLT4<+O67(K}B(9qhyoO^Ink zvj32@N%b-lTLenT0-c%8(V^%qdQAq<=ITwGqpS`RqVmU&3i02JyA^KzE4$;AW05%* zvpA(}rWf)N#wfl*`0(J-al84<+L^JS{{Uz2DNA^gB=!*R=3q)Vp;Rv`yAyGE z_e>ei(ox8YAwvlPK8z*wQVZuW!Ih3V2TotA#L*aU+(RcAS;%A|P9vrlm}#e%7$*{^ z6kiwEaS`ew@m`1~w$KEo&XbH~m9*`>K@U?|>{cguDXB(;7m0EHmzOhfkQ$k7)Gqvh zIBjEcgN16cz=Y6l7QneuO#AE^I++~0R7D3cXD+DL3a8^tLhuGXOKZf=I|;YHP~($+ zC7DHdh#PD&ZIMB{+;hjvXpeWrvRF?JhXj?liO1&I%3c4!9OokCiaF_6 znvvz|oK(EAsLbzY9%my7Od;cPWuCP1eoI1)*$~`961nG3lpumC+4Usw!o{|6?GfzK z=u}9#h?vrAUhMm1b|d`U;7wI?ZA~+Y6}^x-ulLgnS^N{^`N(4ulpnpGg%{2gV;Se- z|9p5U9@rX&P#+gws|&7B6@HP=z!CN@Ni~Eq7JL6i+Ol8ewHGt2NKK+y-iXy?z`w8~ zn*JN@Dh63RcI%$LfKL}j;J!_C1f=7c&|D4?b|sp&4<1gYR>5SFn&psZw7aZb zaa@x^Ik(GOnSn38l5xQ9T>r({jtmSh$jG?i-yX=L_jn#WD42Zz{v>>cemp9F_YBT* z+Y($^JjEeIvMBwQPEq1@THDb@QwWnS_%in=Rh$pfPAeIS#yZ{10N3lf%Q<>0=KlF2 zT*+#3-qN9C5Uo^aNvxjeXN1d_e9Moli@^72kFw-`W2h?MMLTRd!xRb`Cy&#_Ydc>>4=0=IH?EqI6X%tv53StyKr)koz!w|ydd@0{3nT0@O|_S%qGK- zOG5ta#|(dH8rB4c8KF^~j^H%udB^NO-B*i#L^`=UIRKZ)_#I^;inlJ8qlkIV zw-86k&L#C=Pf-I?%(2^&fpAyOK(;Dt)DK_E#2e|QSQX%buQ$YDQ;H8Hi_o#W1{mqY z6z)vtH)=M_2}VYSWgdX}ePoM#vf=|Ip=dR~@5a7Ff0a$?5}gZ=kziHRQOAqVwmim@;az^nqqZ%LIDh|{i+G*kW5FZ{jokk%kIkg-gEg5$cd;4rcu_~kN|+ua z0nX&tqPo2c|HT9z>8y;C%CMRy68QJCs!aA$d7x(*79``6bL^y}Xf2(Ge)?86av9c_ z$;2l=cUPFHmNHvO zA&W3KG4L6PV~pI6_y9b%BZ8^&e1_FN7I@vzA32vz;XNd(ZJk{(yI9EYGR?Vm(+P+H z*z}fsVnaApRFUJ-+R1}(7hUwr=+ml&cX9=JX=Fc!zt%Bz|o?nB)hE@~|c_qukAZHU>=ju>T zeD9ukRb*bwnc`F^kBTV@noNc4IMjqd?O79qdO9=xmer6Xtl%ii5gsjK?pK8Z84i95 zrV8vcTcYvU_VMGFuB^CVc<{k*=;^_4PUWkrN~Y&?fOEx)af9x-e|5;Ha3UFxyu=Qt zn#H(OpZp^arCfY$pcARKB}$cBJic1QA|hI#TamguNa$<#gHsh8&uaL4qsbY z(dXOy<5b#B*(SKiwMw5drt!;*?8Q05En+j|&_^}dUsyJ|-~6w>nRk$^Mh~wFMjo^G z9AY+}3MTA$mdRikZ=sHnpnor7+{esFtt3*?z3GmcdXUf3r$V(!=@4drvLGQhMW?)xt7h!HCLKRo{2iKnS9`2gKi(i5+a%Z#E^?E0y(R zU}X!PqIj$w=i82@fw-ITxuX4%CZTp;llx8v=EJL1iue?ynV)Joi>Vg$3T9*a8snxV z*^WFPa{TVpK!)r!;+-oMFfviY3uGW(V09cJ`nGgr^Wxm@CqZms!U-9L>4{PwX7oo= zlS=kC1DTKiq-HRUiB5WZdl{bAre2nv$eb6ZJet~|SkVa4^doI;qBmosqg2F%5HYzw z@-j8fYu+Cz#keyu0N>>Okw^%0TSDB#zAbZTq9#9!q%4|yskv;~)Hb3g_iOCoqRn_{ zT_{8T+VIB3GTQ5z4Hup`I6R6Dzan3N6oS`fUB= zlTQje^_}sXZoOYj>f=5fr26;=FI>iN>498NPEl0HpWYCKCm&zV1lv*6*-K8^vA5#J z#-px*VLl9omxnrr*^8oiP4bGNs!5V1tY$jJeRKkll!V`ZC>i^hKw>gUNYq)W44ny~ zy4Tp+hbBtLcAVKF2{`cqTNB}nzq>n;8I2-UW}AtSkuaCO9>yut{=J(L=h#pP^D&ZS zVL4T0_5(}kA=ryp&}WgnQKTnyd+UD%I}mskN}IbR{;dSgL7zI|isRU_2&Kmc?9R z)4#MO5|6D8gB#Ox`tp8kqz!+0j0aV7He9lpbC@>EPTs!=N^6olM3Oz2oaih^H}z+^ zUkwZ|Tf#6U$q2QP9`K3OIGE!^<$lLAUvexR_PX1JVD_nVO9+>PgFRLCOw)KrEWZ0d z0&SqC#az5g6RAe@wxjld_q|1&>-u^X^Abeoo=>h0$KUYYi|x+b8p+(%avTQE*>$nr z%%bM4Y?QLSowzj6erZQ<);lQGer8J){5c1!=%KIhBBLaDeR_QazI(qZwWhgWc@Jj3 z~6MT~*4cJa8Jlw^JS=PjXj-;FO)t3GZ z!UQ@{>J~xfGfZ{+w+}Ama~!}(4-+|(XCs!77fBHMKl|?@2)h726*sCL@a`CbUM{u6^0hS~CBV+0M+!$UPC;wk?@GHRt&( zdXdnYn?FPPRugkSX7;LMdek;Czmb!Xxh+}e_9g`3e>|{M#amnEJg=2CiO*7q3)dvh z=@f>Lnb)MDzW}?~>q;4+%N49J3G*u@4H7o#=S!LlU>wlDVqpf+3%U zxe)Dv5J@wkk^Q9c77!zoH|j)lK(^UykSDJcmxJ~BP*lnggOn(LA zD&kv1hC-Sj7c7;DiPtA{Qp`6pHd&y}*K5W~?w^EknHdvPk2Cu#c0LK;5oSd?o~j=i zqs#%x-7Dcj?k-FtNbgb)s^uqoF65det5ijeDfU~;O8yKnlWQAmLa}`IY>A=VJG0~^ zxT@!pIGZu-W(Zm(86laMqAvC4I40`X5(ULv&>mV%LeomSxI7qyid9H*J ztg2%?D({0lPl2>=3!^9F63^kWW41hgHlGFKntD3X(FsiwwkTCF=cOMDnYdCVJob68 z>|5rtjI)~0zYtV6t}ntg{QvgOST$iN3d460oHM&P3F=TYOuq2$f_>27$7#|1XcHuK=?{vYv^ zVyYc3uG`)$K2Waf+5a+~-q?)sinLbn%q_%14Jgn`m;na^5r(br*(2aOTrMJTcT>j9 zc&Wn99u-}&2#7#L1d4w@rbN_A+^2z`wX@zSW+pz=Z*3^#Mks%F3bp5bqinA6-kmj5 zwTXZTh=2%)KwJb;<#72#YvZ)27V?5PZOi{O6NqrA@O*4mvG_W2Mt4ocv z_fCNEMaF`uvd$qWNJXl`4SUC~21Fn;1diU}@`;4&t@hs+ribO;SVNRcv7O_?K3w>QRjpwS^f&&1g&z`$@dg0y!06aYXef8C!+&48dzfU-h zEiVz^4nPb5u(kK|);3Tx{F|qSs>*#otk6I5|Ce_*i`5V7riGrpxPSj&!T)DKY47dp zkFA>*SaAslke@x4BeCor=g&>kohM+`pXU; zo(@=)x%b^eP~ zNC2Q|;y?7E``cff{r$b=MMMGv1BG2c_QHQF^k44(SKwcg|7-Yc*7;tZb27q@s3c#l(0pM8{Vq_l00qD!fGR)}pbIbrm;tN-_5f#q2f!B)2!H_I0HOg2fOmil zKrWyNPzI;~)Bx%L&46}54`2W=0{9M?0W1R60Goh)019vhxWrDhgg9h4)HsYd>^NLF z0yyG0vN%dOsyNSa^l{8^Ug9|6c;W=$KycpTB;cgtz|WyR&j6~UFoeT=JxYlv%w>xAor8;l!?n~a-{TY_7K+l1SLJAyld zyN0`udx{6ZBf+D?dw?f|CyS?or;BHf=ZNQv7ls#)mx)(`SA*AvH;6Zlw}y9scaDDt zpBn!@z7W0w{xf_de0zK!{4o4P{9OD`_)YkI_|y0Zd=&l-0T}@cfdGL#fd+voffGR> zK{P=o!AF8df_{P-f=z<6J9qBT-Ql?-bLZI|vpcSLLhdBqDY#R6r~A(2o%K7XgoK2Q zgaU+$gt~;bg#LulggJy&gk6MFgqwtzyCiqn?~315yK8>e^KQi5%)6C$JMT{2-M)KC zbdQLONS;WS$bl$`D21qusEufXXp`uYn39->SdrL}*p>JVaW-)caX;}A@d*hD$wLx3 z5QZ`8CQ?>X4pHt<5mIqesZu#mMN*Yg!Kv1%@u)edRjBQ$-%^)R z_fv1u+@ay2(V%gqNua5w8K*(fQqfA%8qgZA~las?O@on!^fbJz%3_d&K6-md@76w#!b< zuEg%bp3dIIzIUJY{^R@Z_p|T!-A6rOdGPE(z=Prk;}0$$@;o$p81b<7;W7s?hb)I9 zM>Go;G7Vt&|{%j zLNFnOFrDyo;RxYo;Uf`F5p$9EB7-6~qEe#nqGh6sVpL+9Vi96(V!y=s#qGuO#D7ST zNvKJLOSDL!B?Tlwl7*5#rKqK}rDCLdrLLuAqH`0 zAooNrT&`X2TwYq=%gEPY? zhAD=NM!ZG=M!m)q#+Jqv#(zwnnxvYnnTnW(nvR$;nYoy?m=l^Cn}0MvwNSOlu-LSe zvW&Kzwc@b?TMbz=S-V?z*ihKm+SI=!cxm#o^5vDSu5F3!shx&hz8%V5#Xie^-{Fx% zy2CC=5tItrc2smsb=+}MbV_sDbyjxHbUtuVamjT-yFPO*a{c3`>sIb|>u%y+>v7lP zrAMnLm8Y9$pBI}K*lW^Tz&qM|%}3rR!w2Q7<@?bO$Ir^I#h(UiOpONc21ErQUMaoG zdxZ%!4y*@Lf<3{bLHt2+LEFJrv`auxRpV-{`p*g_xpP{8*RR@i>XNoVc5K zhxp+H(S*!|t3><6;Uux7?4;Xd$K>%8>6F5Eciwrvn|-hR{!=PtYH;d$ns!=K`u+6y z^xqja8AF+pnMGN|SpivV+0V0EayWC|cveZ+$EW%cS>KCZj~9A4MJt16(5;CCVadu_bgxgr2na}LZ+gklBF^Q zh6@XT?N(V$K{6>t*X}8n_zr8>t)Pn{b+f zno!No&1)@YEt9R9t-WmuZH-@rzm~T@XwU1Q?MUe)?u_ib?F#NX?e^|I=yB><@3rY& zgqy;D^y&4D_iOck8&Dg74?Z63`lk4;eMo+&by#+|c|>}oX;f;oaZGBgaa?-5X+mbA z<-6SXwn^Y*=alkP&-Byjfgc(_MrL$oCTERif6iIXt^IWPxijxRk6w7SaJl$;iC`&y z`QCEo3d>5#D&K1Dn)F%+;wfSjX@Fc@w_o4i@Y}fBjNBsI%G_q(uGkUZY2Q`b{k~_h zx4G}Ve|ZpnNO_ol#Cz0m{OEWTWs2HF`=W1uC7v*zl>e6e-Fy1tbmh$B?D9`Mh7t4W zT=snM!sKH6GVqG21}79755T7+pn4$o_ztz6 zE#X5S8u2&pi|=wg`O-tHKZ)X$u=9-|BBrBfU}WOr=Hcbzmz0v0k(HBId8(?W{!ByD zz|hFp1Z&>dJAfRWoLyY~`~zMEf`fwJMn*-)#Ky&^rln_OW@YE(mXwx3KbC*0sI04R zXl!b3X>IF;_w^49ej6H|n*K2}JNI*b0fAiK*xcIQ+1*3`I{AHi_6Ku*@mDYGPVJv+ z{Y$g|q8GLjaB%VQ@$d=%>V<og5!(7tKNNp+m*&a);x9c!91{8{ zT07rKVmeMq1Q+_RYX8ve|4gxn|CVO|QtaP)Edo^jZe{+VHF+26Z=jA8=mRj2v}^3h`cG`j-^E`~w+*r za7w@QDpMHK5Ddd}21c(&Y_&DCO*MLvy3XA&|7g$-^SIaB%%pv=LN!%FU&s+-`X%kj z^i=QB3`qMSa+QJ#tR97V8;!nFi5&8+nuw5CFa-`KVL}w3nw?Bw%XPfSF;q~r4e7Ad zxfnR0aD5APZe-a^$udZXmUQz4dN6ez@+3ltGQ8CZH*7R*aK%^XyD=I_n=>2s>xZ%i z@x>~XESFppzDv@6QDeU}&GOSqb8SCu|7=SkN!JqTt6F6=U{<-eb|R=G@`s{lMIOyQ zNQS#@)P?F}W59HwGTb3DX!4O~o#B)&O#O%bxl$={l2*ow5~^*PgEmE)Gd;~6Q|_Ks zo`OdYA8t{4`T5-7V9wY2MM{sE;SX=-f(8kECgvnosQc`^M+62ym}hndwP{-n$~BIL zE=b>D*{iNU4L&nFNIv6o&yxix5=!Gr^)!=I%@ct!H^e>&zIGQk=q}oP$;=8gQOma6U`d8H{&@|6Wm zX}^5xNtlM~p+kw=Z^Q8&2gZTGIHL-^p1IL_CU79%uglIAS0RmIu~gSFC97J;nsEMA zMj)SZWIHIxUMlfSOI%%6qtu_^+oJFox<4O>S_ucPq$^}|>=d1I4g7N-j;yeAu?x*# zR&w=A%uTvp@zl_$ZOHhu>1NomdPe{DB-rej9Pvf8R`=fSus?|3H*q1pK1Q)pXK_qD z=a8AVtR~dtk_6(Fg0M-nOVmBniW5d=aEr&n2S(p~_Ju;4UvS=+`#G#8?uH77vPY+_ zS4CHCYnYUM(xLi@;A;2~orW}TSWdc}nDO2y{*FPNqHD=)-kU&mDfIIzDm^XJ zEXS;eU^*hp?Ir1HH`ex-R2W@k7sbtF5pk(}<>OByXC_hEpA>%O`HI`r+92_|{$$;_ zLtd^`!Fvm(Dg>!uQEw|Nc`G2&kl9JK@e9}Wnjv;%n0(N2MA&@`;c6QKt$k4#Lxn>B zfJtL&{IrX}z>U)od*fjDAvN3v@6;`ndz?0PLT6TUkZ$TAdPsfrjo+jNSKI+j1fbTS zw@`9m3+NVEDBQ5*HrLC;H}tE5f0=c`ys@D@*X8HU^@RXtCf|oAF~=b;)h4s*@jYC_V*A;WG~Ry9Y}_SZ`jbr>i1 z=e0!qyeC!Mk24*mxI*~KjU(;WMSSPdYx($e_Wf(ZY z{vQEJC6yaw&9Fw%@V$Ci`EslfW^9l*{+ZUC0gJFMch{U z##UBaddFOK!9jXzu;ej)z{+g$bxbVK=VSM07n%Cr53h?~e4cO*^5x_7XW4LKxdqVY z#g2%R8mSvF#+2(VS`682j~1kz*IYG!L9UA{kq^#hxK9&k!kXKcrn*8}r~epqoTY{~ zE09t5vnjP?-vV4+sT&@xQw#2CqQ7pP1e2lwoSA1_kmqndMB57+L%2a=bqM_Z{O{>B zMG z<4WVCf7xaDdf$27p%!iCdzp2xjIK4ngd(lv&p*B+3Hii1Wa5=6P3R^v+)9{#D8~|| z9Mp-|FO1vkBWw~6|D<}UDP@;|Y)oyOURgM8R$bOYPm~cxG6u4EpV>wv@oMcexc<)F zij=Bgwo(qq&V`5d?$>shR#eeh*exI;3PZOr_u{?3a-8%FugP{*7yQrGi>tlLJ`b1G ziU;O#)6(82;y!`RAy;rhAGTXx(EDgtgt%|NcAL{1*pzY|D04e#X~1c$vAwqT`QAGGRhghPr0Y~gG%Tv>77#@AqC&u0&x6Z_&v{ia zKfSAHHNl$ax(vJS9W(E*5?+NMS#|rA=%me|O$o3O$+|d1dwrpTzJs7)Jpu>clW}Nb z)a~YdJIy*fQD-`YJ`Ehz`|~*)o_JrV0d+#Jn&{hdej~o|+OMv@Nj0k<q{07C;*yLIze}`xC1q4c1+|DMgZrAPbsG(IN<) z4y1)PMSq*qn@%op^hB?q5^ErM;b zKl8%FAWSaA(2hK@?YhHPJmcW~J&H&H+ZOeNy3v|WALe2~D&pUz>gtlXab6VSkuRLD*-?loMv&(HR(5S^#V-e4HI--xsc_ zgM&;aK;vdjDbOSRAx{uXl>tDuaWITAWdvdfO&axb%gb z%_Z$8(I)Awvq(WJ;rlnkF{F;SfQh0*D5}>h#)c}ugVQX*rk;@~UUuWfLm5(uhL1{5 z$Tc{KCDI~hZUIla)XAmG`>z z_}CDwp@+K~lN{2W_y%-y^tG*45BXe%GgjjH2m4GF@9rLS9ddR|!F=#cA%XeER|UW45MIW)&#&{Y z^T4Kina{cWVqfh0<8fHbMuCqu>k1vPGaB~b3oF!+_}=x}@z zvFOM0i6hk$gS3prr0I=>EdIn+&*_4r3Goz)wO{SgrlSL?Nlc>Uj3-J@=Q#6g7CO$2 z4n8ae6)dlQJ}=oMfmIdoDed7Me`x+<=q8= zFS6ig@^RA+@0UnyMZU%Med1ReydOFhw$sh^`bF1I#z1;-I8u#-;=0s;7_FxvW27p* zQFV$b4f$Hr+)=Wqewl^Pof_=5p%u3z6Py$6se;(*kj>^xrDQ{=qC*vpqi0h`sS2>rp-zQZE|7vShael_H`5$|RUg$YKwz*?2-Ssy zcmS6(?=^~MOXr;{A7a#l(I4q#JQKEyA-fE9ief4Qmw!C2hv%{_LdED7wAM6u}4K8e4J9K*5 zIaShz@_N1b*6bD#X&2&lO|I?L*GZ4@DT6%eY-w!!T<`WiU_JbcYZG13ynF}rEXOa< zO&LwSMos{CI!~bl2O?@o*3hjTEW=RCFlHqrae(iET7YH^yF^f!K^~gU7A|WJj%TRS zgdWI-B1OSfDuXZgzYk26nzL{7Bo=8XvjMdc?b~l5Ox-9Qytm-42V>&yM^Q@L$cuo_ z43=j}?!qp*{6i;4N`oj*sw7v__9rDfsIo7zq}CjlD#EpqgWutE(A^dM@9lUnOiZ^D z6Go%V#tcJ`rIbfgRNLBZb=)G&ilcQIsj?Q3It2+&HLjnjgPe0e(G%1@Ixg5R>BtUD z_MzFSw^GCg+Q7L12iK7<1|Q3y2AbY_i6+tssv~af!{Qr zF@ksI*rlIDkn7w9LdI+gy-i4MC05;lApQ&B5;3JHu~yhc9$8<5ta7yLW`GZk!@gRS(Ou*Cg^Z`0&R-QSbzez`Zt{#c z-y}p&*uryYEgNSdZ$5vT@s4_0Jw!CWAXFV%-jRH~I&vD|RlP%CvQq z&t9{4CYhy7eJp3N7qxVIiy-A8o#{rL?{6|-%~Hz5fi2B&gP0$m!Ao4hvJAsAeaK=K zRpUq!0?I zJIF2bF}1A8aQzHE@GXz6W^((vCK{A%50tivy{PYDllrbCc_oSRN@-U-%L^45?7a6K zXjNvhM|bQI?p2OS(P*4GC~j{~bN{?F=oLt1`D8eSnvmPN)OAa21YcY^M zlR_`?^vN|-*uxO~YE4X?0^FklYhqH~r^S3~P^OH}CmBrd^VemiI5%?NpUCD5E5O4f z##@}E4J++1Uf5v+47C(;p6Q+G-;~{J5qyd|waa(?o?%YyzsJKnPA+b4dL{M)7z)EQ zBYBb=&FrSz{m`DP{R`VsKnVnyF=aW}uP2P=th7jOMe{f$62lt<0B;|0n2^)83ntbh+Clt=d8;xINVTz z<_keRD+C~jaymLWv`^N{C3dW(R%Yzi^Fd}(I$aB?RJhL_x9AZ8w6OwS=1Xwe+m>)L z-M4!`2ChToyAcm;=5IJ|0X-67?2t#3KnfTn2z}f)!H9{_GWr40`>ko%GKgHQUpW7r*CqZ+x@Ymvi2;EV^VFM0<&f9!l3_;uMu3iK*oTZWuGKsmu{ z@DPGs6hoP768TOPb7PnhvEH>q&3sIZ;;0{F7(A+~V`2=I*C`~Yd0@*J`AWYwXe`U651l#MO=Mvhr&}65lGhuMX_8Iaws9V5VOkawO&eYLSt_1;F zBn~JA+y89-5$5s{j=0uRpKTODh?LDu%~AI;ZV?i!|Do}5^vjihF)nIGLE^ooDp**< zh^(CIeYu|J!^46arITSM1#-j%=~(5i)$L`hkazN%6;iWiA(X$f(Oj@&vVLbHu;#Bp zzZawE=hAHBo^6aZ@v!(2PU-6)Lm#~gb>X09MoepWT6yBAsQ-1Luo<^X0cc*^@@d_b zns|-Zo6)*ao`F?1AP6ZiCS!;SEx=m&u@DNEb#4BmOXPTS8MqysFla44)voYqz@yQ_ zzHhE>(QJOF8mUYp5(5;1?grxrho$)nJ58G(X~A;BC#oi5>kH+OqcZe9pyz5DdAgiq zyr_wo&N&|VW;<7}T(VbWI{!;iMn}2~h&7LRw07!<-1ryp)#^TD6448|y?s;^@x5CB zRHS&~%?%^QJ`)r)pbs#|3XZiq}?b}M= zKS)TIyD$tiF;6Z&vyz^7`cWm68uD$c?Q6t}oP#zW=={jdJlP5!6hJyB z-#-ggCy3~`x3-GPl6rRS*vZ4pA}kFhRU)|yTX$>+=?FKY^W zfI=1Yrj7+`I0^@}n3E**x-M@7Pzil2q{!SWxjgR<2uQy5l}XM<%T==M)s$HQX#mlW ze*Tubn+(4SbkYj(Wz0E39wcw6tAiqePx!qE}H&%<}<%35=@N($)(noL2-rXw6MnawX_ zzO5&|j;2JuMldx<%P6o_z;#-3_JZNwbb%aHwq@{QgrFZNmSbD7 zE`G%E%?Bf2Qv!|eaXb$bAk&+K$9%4kNzUZ7qwEi3{jT?3BT{ttrQ^ zk_ZKalViSGwoaGK1&rvelTmq*@0mvzBYvQc@{rm#hO-W{2M50sU>*_&BVlccnZ|$E z(?WT!@DUeh$F7`xOQa{lr&q|G*6Uy zqZLCVUx-|5$e3>jD3q%+%S~OR3YGE}_yR4!Xb^oR+hgZLTW8LY2nw>T7#eER&(QE2 z7V3bUd;Zax$okcF){Z?042G~=mtQegKuj=<$jCgS$pgn0HwC#V`??vihY8*c9=7Zg ztwG}^_K~2QKNn)xGT^!1&IjGzGO?|i$rSAI<(jgIPr0=DOp3k+SFh|B=@=iDWK5@K zol!)sC}7Hehav?+MB zTBnHal+J=*L=`N_7iN62C^HdL;aA}R_R8jeBcdc?=0$(&er?J!&{K5%V;DRb)3O-N zxAoKYr)&0ePr53orvBS}L)$TZKINo-vjM%N2HoXUSLMAL)jm0P>Wvp;-q>A$@0BN0 zRkic41bFa?E-tg6rqDbUhMa3lA0rxOm z`6%#j9u|*V0PZconVuL?oM$xZO|!PHi}atG=?eNfSm4{Qus7Rm-Y|g<+%1J;+?6Te zVm$-IG<&K#-Wpy4D|=@eK}t=&%IZoFA@Vay51JExYnv}TYjFB5qCc}dJ(9U~G<$Y0 z9*_Fn2sw$p9I=c8?JYo7HUtQLHz6=!>i|tGPloEZ>19dsO;)IRG%qYIdd$x1rEFi} zAeD3xr{t95zDpqaoaVDL!hO+1$8w!0Qfut{uu*2W4BD)@jgS^NrcZ%vJ z4nc*g<-b^Dx&&Ly}2<X-qiKxDhxg zn3&Ek(!s?jT|3-)mhxIS(wZ@UQS+X=LKtXx(=0~e*?4e%A!e)7I7P`rcR{to=%~3N z%QG{?^>VQ)e33=45>3lqW#9){`O|i&Ala3dx%Aa}qYbtLvI5tvAWij3lb(CtG4f`V z8|081)Jq!(>H(O5SaPd*4P6Z&dlyGg==6-DhiCH@g)Uj|>5g8ttPbq#U9hJ4fXUaU z_kkhKjYny&*3dN%o5#6ZT z?hOSm&MaLmCjP=6ZxW~W4Bp$SDM_0Gc7R~UzD-B`i$5=@Y)D;9&V+o*`#nePmM^nW zK|}bw_=U29;=YV(hh=kHpU1vrLp00dG7MV}kB2W6Bv;kv0-&{SD>hNnNWlr5BvVLl zbpWkN=BY!~f{Xd3kmppI>#SFp>A9s6RY$1G!Q8v-53kN`N-_d}wg)f_tuw9@ZjQ{& zX~`C|C^wZV1;4i;4n9%!Q)n#LKJ@TU3#Z?u1!s|v($9J~8kv7j{%qdJtDdu5E$X%(#%LSXAhFTX?mv)Z- zn!bac|NVebFT8y^>p)7#>#X+U@rky?k=M^=WJN+>8-&lhxU@Ck-2)&@oZvo4gE*V5 zy{HulT5}eK#DO+R9{$uMc@b)Z`8GelB0+n4ee`su2Cr}b zC+yw(duuvObw3-vkLBm3Q)Bgn0UarqX5Q(D{8pBkV_Jp^Ym?yl=1|@3?X|%JYS><( z(ho_2Lt=-9`q|^Ez%j~&$wkX{xdB2BPs24{Jg&h}?Anc%+4acSTw;$LcXs?;V191R z%&@LgQ)%=`ttO@3b8)pUv%PC4koB75*A+b(qMk+CR>ugN728DsS4S+8>8`OKoFcknRyf zxVDTwmkm!6U%6-KBlT$@f7ucU+Yrr5)sMgE*z`0mJ)cI|z?GT8?S&jqdMF{!(1CGb zLe`jfF2TyZrE5YKePJ{+=2jwla}5O?mgwBUGa=%WflPU}@^a@upZ4$bmbZYu31c@Q zrtyoj)$1=%q?K3M#2F8rcTCj0r%W%Cncb*tR^O5g&1S2$%lq%iB4nBC5-eT!Gt}co zcf4;T#JZ6Z@)CxXCZ)=iFT?7y=ims}E2k+Zjte2opWf4xBRM!K2CzYc2?HNQi+cObT*{O22e8V#YE9MM z4w25+9qEcL!b$E3Wtj^$FMHMhD8F|x`^e};N<-@4yRq+{3T+Xq%a$Ny{P5?gausGi zoo1~;}HaxuyVTxlXKtgIeQ4Fs`c79u@hsuHzqxq=Yrawr;CAmBuXg<0f6%pB5DJT$~ zscX1>K0)e3?v{eQs>u`)|Mm&#$5KSwCo5RkOzH3i$zrV@UBt~HS^7?k^}5yoPe*Sv z1N7Ga=#cU2ijCBj40#tC#>m4`cyb+wzTqF$vo$!YS|a^DzjW= z(Tv63^PC}k5#;K#a57AcIO?rT4DL%G#->2M?-xxJc=U%*T6Iby$#eJAEUu!j;ejUp z&~w5RYu0V>Er7WG8OoZ3GH08Xl~#o$A|U`utJ%(d!|(|zY!l+dLtB!%b#06_Q6hF1 z=*kgpu!-obw$R_5gtL<1cGWX8`-o@jowM%#WvSg-n+3)S+Bz3=+B57rmzuj-)BPS0 z+nh;(tCI^Bp8=*W20M&f+!ra197hIHf7DO;_XQ?8V9T%6$@yZC_7Ob!pFkxJ#<$4= z^X=Ab8Ja(xjC0dce$`HnM9FSPKX|_#cHcp+(Bi$%nN7A40usiZzK8hY+q?O*DxCWP zJnvHJBM)J8byBwq(~cHv6jUB#WSr_Js_f8V(0@atC8SZ>*$n4+X8bsg7iX$!1@_pO#N}yn&IchT1GXZp3BdcOYv6KbQyUmp>idgTVTZ7ZzqE`cc9T# zhrGS$zz7?H>t#8k(z=C1$vK&0WwdZo%PS#t;Tu%5MTCVH)q;zuKfg5?u|(*15*#ojd*G`IHWRk$|LsKF`t(bdju5|2 zsg9LkN!wxhjh5TUo~(Lb_`Q}_?E)LwSA)yBt~7fy^?_5v(&meGZGk3@o8NZXq%j(( zBka4*8>Y19rqy5z%+0C8J*AOMjS_;$WRcuz4L_YSesl5A z)`nLu?yF^mj#vP~--H4%=#r`dT{L0WBvZS-26zbnwho+g z3~G?5QAEg&eIFGwv?bxr(2O6GTn}Yh8RK#5kZV@gb1B~mqk1b(5i==^C^gLjLa$-#HbughQWZk}6nCo#;H>-nhx zN3>1@b*(lUH~$p0eO%x3&V|23-%Efo`ss*yh3p5pls3UYwORAOirx;~tXzALjb3U= zzj!v*aK0Ym(}QDLxCYR*qyJ4oIZM?lCnE5cR4B#1vG=sEgLjFQ-dGpL2Q(UvJgjOFS}d^!iMb9Lyvdzy>X z@M^~h>iBKD8`5Th{w#K`lkCa^!wLoGAtqw%+J1OI(QI+yoGVnB;|sIeJVtG^!X9?h zUTbK>Eb2vz`FZQ-4tE_Q1Ymb-L2oa^V=*F8SELt8-n9vxRN$HH&B6z0;Lghv_gc;| z7yV>6bxLcfARLF3fIqd*wmeNg(RHTUI#SMK#Mn?w0zO@|y8V+MNY;x1{@b#Cr}R>43gf2Y)s zYIBo}^o90?I7}AK_hH#ANu>Kova=&&p%J`YsK_VUjg$bSA~i0sS@ZUy-KX(mv1W~U zr$Aw~%lxN`AvtaJypeFw(4i7g1qSZwGq;W_!Tel-mtrpV;R_IH<3f=vcw3vRvHZy6 z&GXEmU|9K(kE3N-aB`9Gyyt_a#`j;tGJ$g07@>h$I7@A;U;gpix?wL-ge9F$V zsh_2yB^?hQA>XH&Le}X%eyLV3LE(oohLuK@rI%qoeUdE_ud#OkL)hJLtF=cKQi7b$ ztmXmI=SopsZkXe3KS-C7sXaRm!4)^y8_mVV_Y(c(dYP#aeJ`aV?7KD3jD1`5gl=8d zK~sN;3!MKzRlBmAszZl?(Yca%*CDFz;WZUiyxDET<;sqeR)+fm(=tLV9sWQz78cDV%*hH+|D)+S$Zl)J77 z)uVnbF6?C)SeseHb{Fg)m(xqj7{df-6TG}=e3#S(OJwa5za-I^O!*Anbu!boyknc* zCOV9k8?KHoJq2=$=Of|=2bzTZ>^>Q%^OuWKEpOU7#to zqe2$Dal;P&qlQUBF%O3EPj=FRrzjY&q%e?Qm~ERMr&bC&)9q60&pxgyHTof731#iA zs6CAW{zbJWDoph5U~XGbn*d38UZ+?n4p0`QzPk(WQcspcpTzjql7V4z0WBfar_bS( z@ngTNz3f?JxbK*ga;#Fw^;O* z50Yx6MeDV%U{j54!UV?LR8A+8f-HY3Wro*rhRXC}KJx*bub3!ACefc7#%_#ZE_J?< zpS)sr`mpDX-Fj^PN%YsHTHU{)X_dDFbHJ?`e@H5%+}mYZeOoK-CIs9K^{R9+-&@Gj z`Xm^z=*;>4cfu;iFuHW7qvwVM)6s){z!ceTCU_a?J7nj3wJta?4NEc0w9Q5M#hY0> zy`8vD_cq*}1cTlVY*scmmI`{>m{)O}E-5Q-uxR~WMZb*)%3M5psgznskL*llQJ^4~ zxM4<+<|T^$bl29sCmW;OjjV9^d6gC?zSol2Xi#oKmN@d|+(;AEXS;7Syl+&_uq7L$ z` z1X!7gY&A_+3Hk3h7Ot!egoIEEzJhU@gBttCnzHaz%PlOIdfZr!F>_R5!(KQoMatu{ z@f~%;=d-r)qcG69r$vmZAgiU7nQ;Lzb%v%vO)+01&`8s;a-H7~du3Iw-%w2PhrZ`{ z@v8|ug-ljAqF$NUbxST<^>wv6b5ik}Z)h4A(#Q15SgGE$%Gf2Q-yTYYERfHM=Anq` zbEJJB=mAkAZroO5zn%R59>=T5WWJrOC~i{b7tp)t;RA zd=Zp>0B-RC4bD`?yOgqCV^_S0s?sP79^N2kw3aZ(hdea7ANg5I?8gi!3a&+OUBLeX z0Xu6{Ouyk`Gwsp#^Xv7w1-RV;Kq-?p@Eht2DQ}U)D}&zFSAheTdYVl>>BxGZ6i}<@ zdu_Je42!CiQqZM&UAY-luhVou%C1(5qv$%V9rW?)UR{>-P%j>)*ae+DfsHi6BUi$~1Z*Zs^3aT_cJY9y8;V4}O3gkd9*XeOV9DcBM*^ z<5QddgrGwZ@{|P2gi6*e-SA(CVQTxj)Vx@Ha*Qb`^^@^p(X^rxQGD|6-6##_R}2vf zUwNQ2xw{?|L*erhXH_VhgC4ZfpI&RBwnc=C!)!y6juf~+k7<8M;Qo1fg^{<6FD}BD zT;NYQ^_9#x@X0sPoLOCF#~;=dtPyEjiTS14TFb#23N2rub5>a*mju5nE`)uYrrhAf z*ylK8wu-g)E?HpWBYQdpPq(=u&*EQn8ve()_5=a7i$`4HQUcJ0v0}jKZe_dYWkhWJt80P*drjkD3Q2q(rF?aBAq7k z!iSCO2mE|f8~VQaiW>{MhXNwp6Tix%u58x3N}J@vSTOK+PI4ZQPSZp(Ajn86x|;Fv zbmFl-MXvBrwRKAInhk~573h+4pYj&q0nGGqIT@~r;F~lR*!EdE%wPaUTL+!T(q2x` zA!OYKuj;gf6UD>_rXq_)Tr_orz30vOmaA)<#)m4@_hd`S;5V`_ZO;5{txa>ieTo$2 zWKYy}W2`-l^Q!3$PVo@6hfok&Q|QjrifQ1IE0doUfieDK-lw>w{#cL6(svr&q)Sv` zUI0$k|u9u_uR3mgLq zITgz6jo%e=Gd(|Cr>djUphV+&f$bc!3ooAE0$gt5tsi!=D<#XZDp5`Nw9+Rj;lC8~ zFC|qBn(o`WQjCd*S&;CMYZ#Uiy)ZI#+?bAk^~xy*J7K6RJ6=;G?z9Ee63?r96}x_i zZl?9$ql_$A?u~wqE8d+nzhBe_s6DCQ8AN)51{mZvgEq}mq()%6L| zF>2S|Be5wGGgf-%>3!diuP3=)S6;u@cf8-9UkD%Ua*>ngOTsdhLEihHRR_TF4@upP zvzo`V+Ev(X_q@GL&|R@fW1q&%>zc`;#M$tIOVDrp;5mJ4m62d3KGRMbUgB0zYt%rghC z8m66tI8cb@+Jx)GziUKO_FdhW6Lor^-HjbWGW5$ZBYIIFBgEtzQR(P4N460f!RE61{5nNx4zkRIg9w+)y?rGL| zYUST(&ifYbUASPAYA&PsznHK-}irgCBj)%k|7B!MEK@f!nN?{Rx*6;v4=`4~LgU{Hva; z*;@h@^_?V7W1HHE(G!?R$Q0JY24b@1hiSw$7+%Hk$#f)`qXUmb^k!`+ZN{wFs2>6 zb`-N6&IGdp+^QyI}#9>#X4c3pdh!H&^Rb^k{9Y4ya81Y6(AQT73$x_kUDubm7E; zsNm=mA3WF%@vVk$6HNLWkR68 zSc!)W{ZRG?(^Z)p4X)9>I3HrXkWPb;w9_Y~xW7}#@=0G|N{EK^$18qn!i^{PH-UVb z)0pQ{$@H&5gFJ(i6P^!Xp%#$wiaWCcb~9;@boT2OR(6R8e<<#9@NwXi4rH$%6O*sI zRl!LLhOz9e>=C(>J*{bNMY|;a=zm*Iwwmg)Fs-?9N(BY(q_=XgtZu8@J``5^AAJ-g zU9~dWABwU>+n=gk{}1j;;HEqcCZI66JUF;LwJ~;go3ltM$ef=thP=X8HLZDBVVCO~ z**Af4@*QZI7?dw>O=MRc5}WOv=vptC=yenThTYldkc5G8!q6NS&S-jQ;K#4<^?2X% z{)aza6PLW4V@IkHZ;Y#AP`S<-Xdla5BmVMd0yt1+F6Ad*H;dn%Je~3d+T1abws}O+ zc0^R}DxD3H&5+X;mf7cdZ^rN-B%EP~OQ@gPCKpcXdr- z%Q&6|HTaK^o)I7Rni9hqaKeEZgnJ^7hKM2TJY$T8w5g7DODBpwE{b~&)pHVMBHc6j zG5t>BgQ=T>g#~wyrZQV&E(uuT9XqkO9~XIaCf)3_B&r#-d;Wf=bezPEhDI^=n(>tM_cGczia`RHipzYjNgN1yJ>aM*Sm5wW_NmE?OB?gdUE-P ziKs}}I%^M$FQ51j5Uf6M(!t$}pYcz@oxp{?fp1`pvr4X z`O6&jbDf31E2*)jbf3SOTdXp%sF!^_ubd0cjs-2%L`xm%EgT-qYuc`i?%V>{`wwYp zBmK*ZO`-87P@~k4#n+3ejbP6Dx;s~73IxUis_w%jCP4n! zc7a|#o(^J0v3m#qRDGLe{Sl+3TPq!tEi6!nV3xeHx*M3_=?#7Bp*~cilo#TDd6Wdw z$IWsO4UUuU0HYPKB*7uSQqGm|jE#&+hg27!9W%x`ql1Cl9GIQQp1y@B&<6Iuh9#9@ zp>y`0<_SVE2oL@lnX^#=f^u|qhLlbwGz`)+?;Q;SkmoSzy%Mfeu3wivfG~I|2Ed3< z^TKIOi>0z-H2#xjlFR#x_^eBs39^;VC{dRHz{*~>bD7Gsej1Zy zVEBM})f_JL6L0ClErD^7FVL0yj<>M#&#R4hwJQ4(_+u4sbo5cx^}{=jyXs<3_`WzG zpH#vkJ@i+;d>>Q%$fPY?;OFW1t6OUQZEF)mm;0-8?3?-N4^5}aY_~KwFM6OXIo^yw zp)uaLezPID*ssOd6N$cfsF_J3O{9m7_{_PSaRGR~8;S(#X6Ye%NXBDf@o38|*MVOI zzz4vXOwW3$bBk4lILA_`szv7KGQ$Tn4FzIj493j)cCww-Wd^221)@N`)AaMe+cLQ1 zIs;ulF7)0;WlEr{^1NPaP8AECl4|_lYd>kXfv+h4*9Rcx_3=}jEPYT-)6N_>?#B`o z+H2#vyyVN+N4Qs)>ba~cUmqeX#x^@y(9EN?JjRhmV4f??xpWAFBvpWxiqmUT2WZ715(6%UVu4>lG;*=E(XiSF0W^(u(5 z()Fu@N3HkgKv_|IS~hi%fTBW#tic;x| zb9EFX8795d+|&(ozO;zjJG>->!N+7BIF$du}>je;fWh&H}Ji>zN`k z7;t10@%Kg*)nS^)*}50tCh_Wt3lW{p4VG?2ar!-5)?Y=;7cEah&O%le?6xoC)`bD= z?}j(iioT%^-{dx?o0InUy~ctNQQf{QD6XXkYGA2G+< zAAlw{eVY_7_FX#-0q5;WgF+aK)*#2>CFkFTzl*XqTXh!BA+{cE-lg@`AWPI-V_rbz z2fzR31So-bt9`!t<-(o@`qHa=*JHE8l=r^|iFKF(S1tnD8YXA;C0!QGC&r#%W_Siq z)tH((hgnvTMsn&eau+0TnQON$sq{Jw>4|;3l|$6h*-T0)qDNEj3b8u>%T@WYcq^OK zJ*0wdEj2POP7MUN=S$lEcjU5>60opPcMi9ucFADLsZ#iUruU}*5S`OtWNrmG@zdVd zXYMmkS@42T-k&<_8rAregnHql-5##I4HB>erXti-ldSqMi zG&8YvDb{vMonGzq+-Af9@}`pb{2RVvIoUR=xzLwuek1!y|xXf>OJ-JXB<29LfoU%jVGNM zAp~1N`JmM|xh$l`Db+L5Kbp583(mt=P^1{N1bjOOgg zw#=9w0e;~BI>cy)-gT(1_nFGqisFi*rT*CcGXH55SAr_fpv*^S^9tRDeN{y1sNZei z?z102sry)6kR*>jT=NB+`=?&xNE>zg^j||eO!i5_i#y&J+ezmQ_5dKzWV*~e1c zXI5s=D8Q)Nuy0UEsvwpX?ofNby&zdY5QA_+3DuGt2q$LBEYms*ETUV|5XC4ni|D{7wIQ_pkT9x(qJ(D?felc%KS}QP+QC8O64#n=Qn> zYIX#e_ifQNINbkAO2EaFD!JdwoXUa-Jz7ZZFfiM;0n6`IYd=7nVqoa+B{=H*h$vkM ze;n#}9&wuk3M#pgB@(c?f7GQc`4+K30BkK8+bzVZzMQ|DGUCWtUy&!6!m% z=7^u-1u2M`d7VBYI~XRBO6y0&z%S0~;yx}6nD9bv%GVtaiHZqT_HpLWOq>JVHfGqW z+tH_P>^SqZw4Xondr5bWYRX4vEd(OCCRKDrgL=jG=3gS`gU(ozG)!+znanz@=ke-= zOfW$+eo3hJeGbR*j|tKYUte?l7KZS6DapW={v)s!9JsaU zKF}%FyYk!dJU#8!7C^1>kJlxjUt?W=z@-hTF=)!(pu=!&;eKN*oTqvY6*)?@RvbKG z&v0RRqsJdx65peVbJsN!P=|=}*eAk6io<63SiC>3)~;ft+1wLKiCIr){H5c#R^G22 zQNRG*6EKVYnQ`^FLYQ=SE*JiGx@V|txudK~DMh`#w3q%%ksDX7x z`1B=CB9I#z=9lu?R5ruQ;eGVIH9wwVD{FjUjymsMb*Cs`tQmbR)K*jcJpXtJI~uwY|dXWK?9k#^+0LX zF(tRCuLLloYfCSe>2^c`&pi{KP@XdB5^LGMwc0D-@S;qQW5+jqI_4{h2`+=Te^-UJ z^;}QlSg<3e+Yn|yRj?U~@Aq&GXPQbf)pw$y?%v2=56;f0hY`Wj7fn>@>^LtEE@_X8i_bNf!+|%i1LWn*c(G{d0RR7^Ww_EsC%t z)^+B4$omr}FV=r7K0a`a%rsAXXcCD4;s7q{(*WVi!$aFDw1$+%pNao>cugOT$)qo< zSk@EH@<`D{K5|oyKVG(+x1P7?B8N#;i+%^Y>nlgSVh_6T;h z{dD^D^u*(+K1Z#WEBA{hl&;o8(p#t_%X>p7+EB2><{mekPMKxnMk5*D`S&)kT*@|S z@K~LYYiUD~YIOAoN>u6;naDHPfIj1>20 zU2>bQqCtN_4Xz7`8D#0o>DOPi`Gx%so8xcDY3dFY(|DaXf28fr1|x0t@rqb9*D~1% z=RrXLx>`e_Mj0o`v?U#p%}XEs@Q52(3>1eBlkUr7J`oR+e(#2 z{Rru+ASsmBn_FG4>}fo_q7J35<7bwg^Daz^|2lxbpvJID3`yk2yeyEg9 z`Wp#;pRg%eU73(QF`O?WQR@dm3zlH(>joL#8+aMF8cdyDFx7dwZNS^{+ql&j za;`+)!q`i^Z6hj>3M1)clXm~DcZ15LhhuI){QsM@5+(K*?;tWh;E!w=x@%% zjRZ12{1D^oUH`1c)unbZ2K&-jJ&DT@esD8oV@Z6>p64cHZw1 z__wB7o?7)BcgMN>aq=pbKQ3F=WGCsg9+$}7+oc_SvgGWs{+GF4TAuJD-|Yl-dsjYd zq|!#^rtojYW=p>)YPrn7*-2!r*amNcq_4Y3qZRE)%lrMP;xeiva z947Vuq2ML;c_I^P{b+1>uwPSU4%o18Q`9`6E-g?%0_A4(g z11<2vO~@sXG{l!KXbC9;(=htcuK_#x!J*b^{ewVH$!;K@;AWmvenh4b@RI&VUI&ZI zq@+RMzR2*Kr{%I7A*OC)S>Vw6x>;Mc<&9I{^P{N1ut)eZYjToPalV>*=%SN%n9n_# zesR^iqbfh(oSPG4}FYMekJljhqRUo$XKz$WO&JNapYX{op?C<6`yG&U*UFTs1j)(ft%r`rPj46(d@Lfoz)Hv z77Om%A+=(c27z>~sVH?bjzK;Dk+N3vK+p3Fcte}229=#XjAm0hO-11CTYrb9Ajym{ zttATX=Ynf^Xkx>bYpTqRw*D`_kKd;XMC+G4D%giB0uFPUrrmNC03e=OC?dT?C5t-ev_3vC`Uj;Ma)n?B#uCM_3Zx+j_#=dsgTns4|GYHlXnEq7;zp6E$Ev_a8`y%Mb zoBdwTA+5c`f#Rma`O309Z5Zh@{P}IZ5RtKPM|L+jzWgFnzhP$1*=Q48E%4h9p)%yl z!m}Z>-`JTBv&LA!V&aE|;xJFNqLeDQN3-CA%&FeIuPeSUSB_yd-k~+{Qt1htX?`FK zrT()AnT|4tW)NMw@u&6c!-&G~6>OE8p^^}V)R4UQs||?lp8opW!{7a&(J#8mgS9{p zz~7~U|55`7s5m@w%59X#2!AL(yagI4mW+Qx>Sj9wb^n3t+m^_MbX+ z69ehY`58XO7mvr6njln-BQ_0QLPol;B)?D30xpnz=D|k?7uS#XHR`>8w-gZLy8TiK zO&I;KaORyrnP{fM8AACtvA@1D*Z6<~3||~KTy_55Bb-R%mHW}#(SG~d(ar0Um{+o< zE|VYg)C$aRCQwv|23$&c64v8@yl!N z{v#}>Sra<*ZxgdSlXEF=QR;xO2~>AyU38B-@4b*^T9au7vQ!RH7bVb_VLvH8dE8!6 zlwLaTt{ND9V<_j=!Qb8(vJc=spuc|Jd15#FGU|Dbt;Q<75V^IG#DWU=aT-zCws}4k z9&q0!jKmnwo$~#NEXNz{KH6Mas^=B->+ja=YR*cw@7<124v#Q)-l$l!>V}=EBy@At z&iGo>xSuL+j1O<4VjWWp-xtA54a`tJ`~hV+4}EUPZq56##~C(!6fI^*nT3V^(~YZv z*(@@Ab$EU8jfO>=%$(VR zaZPby>?^SSK0BqFnqT!po&uOK4sSZ^-tRE&Zdtb~C+xBm&fWdHw@1CCz*XIQ^<*@| zX>tLU{{s-+`3V-TI1EdXs_1QLhd9GLSY*(gDbNOW{=wQ8w(ucNYu?OlT9wo~x+66U zQJg%;R@C%+dz1iw0vTb2ackhyW8qJ6+3AtZA)knWyf`vPY6loQ20a?6y~z_80;yv= zP{ZLES^wg$zKm z*iYLDt{r#M`JfdM8>uJ50>k*`y}9hV$HP9b8~?iz6e3(-t1nS@dF<{I$Sa*3^Z5fDNrXTEmO<;}8a9=i%Ra`!+Kvt(6 z?%iMfg

YwvlJYCmw-GL2RKvNL*0mI|Oa&aPO^o0}X|4^r|f8*KqBPBAu}IGo|4& zM-fA@K1Zhf59xLJkrj4TwFO$fpx=3b^`!!hbv{Od-bY}b7*>M`q_$3fXJ`){Er+A| zx^%7Z!(`ZZiH}m^r>M((t~9IYCa_%B!bb2mm!HO=rsD}y2Pcz1i~ieIuZm**!Xzeg zQ_+*vll#x)X&EYj^w-tvut}S--Y`!5MfVXU&@js33sE`;dhafQ&9f&Xn-D~j|0`p% zf0GC|cgHa7DdPQWfWa&^M359a<87R3lI&pJu$RUIE~+c!HHZxI^ga0klTCGPrsrAn zxS%4H!eY8E11xcTfjR5IXrVD#DfBVO4xqetbB|l3EE1Vvns3ed?#Gy75Zfch;ac_o z^=)y$y5-=iS(qfHFZnQSOs?28oD2u}+&JJBJ956w6P3b0kas7QU+^bgBmnxqDd*`k z4W>Dm#((&w74e1)WL?da=f#_m(AJBWt(P?X`Vtp?tA+N_L7nW|K^jpR2H-E7E#Y+A z%}ZmvCW?K;FIigv4IEwV5QFvIkAu*R5%^w^q?>#cfIG5h+A@-d2^oc%xDMy+bR{{R z23&~|59~S|FgKpK0RMzOSJDGQe2q$fT|pf~Kd-#Zxg!XEwlL*Z%*_>sp#`g_lcjLgM?L~vij zB;iuyUZ*+oHi=?hZ`+^FS`#{wLQoI>(Hc?6jLPw(d#RE2c#T$G`kK1WPW_gdxGLM_ zL?nON!E9-qB##oi;E3FFd=l3d3v_Pjfm>>^qmO?zNHPh7TX9mYNf5=>_`4bx28sP@ zBMY;B_&X;WOhDifQ==TNbe8@4o+Eh1E9bWs^tPj6QHx@0vb^=OKz)bczTULmhIT`Xtlui{p zijfCv3D2LFJCC@{1)CM%2gOSMBYnq*r8AiST#p~Hbvz8ZfOy%?cS-hxGDW{8GGy{q9Nf*(?zG> zBv@T#*n?K$X8m~8uBzZIY98NW8r*xG@N~f1yzQi{Otkrm?-3S17cY=+kRatsU9|38 zX1MGID)CQlyGT9TG~Xg2JJ<5US&yn7HH?1+;hzt1epZ$FLjlfSAMRt3y07;2-qO7= zD>7LXmfpdSeaNHrY6)WY(OHO!Q@Uwz`jV&p(7i%3M0nw1j8L$v(FKF^T4kgLLChkz z3S2stEAUE}S+#Y#SIRT|NM(Ds24a=RjI+|%eXgIA>b|s20s`b!Xerfgx{ZPtv&Pbf z%hq!O4p(1J9lY?BFp{Abei>yRp)BP4WQ>Z+`wpwh_4HLV)h0)9OPK8^laDCXz-&)N z!D&dpHKe_&a&%YHNqSK3MMr`zEO_=qiL!{oQcFsLrBKL|%2oH$fPk9gzP3>B+oDM| zmH-2ed!B_#x|>>o%nh~7P2A8}(!0UxhOh!IsIHOmw7S`FCPa5)%e-MayQ;Eeg>V}p zi7~w@g!F;N4b6&5Rz}D4takSoE*|T3?FQqi%^|OK)@||~;!}C<(kQJR(;HHyBm>rn ziLf`*2o+-#wNVK`M2d#p+(Fn|V*Ts|)O= zG0{HZZOLSrN&17hGBFdBIZ_e$)Hmts;?(X+6()ewrg?oM_73;PjG)Y$vNg9Cq%IH* z%acx1bS7HOp-q0cv{Y(F4*F3$>|pn28>wV^29aE>Zj;85D!#|zjBsz?iVh zr8eYe$2%tO;x7l%dQc!Ns!vs9X2n^s zZoSBF2eGiYu)fv1{?Z@v=*qFPLb>j9r?Z@;f*{yFyFo^Qo_`_T?js4cxB zZWhD}?586b6}70d2hFQhR$g6Pn5~y-yd!0FC^~nDL1!F5$qH|?Y^$*&z9Np&!`N^aF3OWjDL&851KUW5gJ3|QeJJ7X8<-e?@ae0ho_@x|GgzJYc z43#~%Gp(v=^%wtAEp&?tq^~@^Q*;%fmunsRzh>*5FF%@jyqJ4Bx$x+RVj_F&5B=JCYYkUmqWIlz`HoYfYcD?vzX!@)oTMZ1|f+aDgObGoa=jc9}~IOl+* z@7z%0kGeg0fcE4u%ZMMnl4%Dr6B@-=PHe4Y>TrHWC59{6AiDiCQ2U}yBrPPi*Fkjq z#Im%<7=wG=o-HdG(F$Zuy?rJNu^Js3Q@SRaT)kNn?#T=1tD+3fxGQ@;&AiQ!2TSgs!q`=m< zu(Z|bzosrfEEF*UD~M_i0b%znm+#|Awz2CHWx_wqM}ck1qr56EgHe>cx$8a|F4iBm z64|AryknwkHHh3_PL&vU z$SYQXnN1eKCFcGr`CNz~2M(>5$or*G-G7o=e_wWXzX)X5LPN70iA}xPqn%vPG}pu) zGWqTlH|(cMG%R=i zj*^f;LFhPr0mmLEadJloOJ1+5CoA;2(Vc3z_?e0~ey^tC>bB--f5#y@V?eJ<3M&ii zAw}c2YNvk<>_As1>~A4u$!5Lyi+7e_MuJyp5;+varq(inrvph>M@{Y9xq2I*(DHpE z*(6C22`D(o`|yW?f^-iqf17o1qY~oIzfjL`-$oO#bpJ&+&eA#8k}h5+=yk43K!9MI za~4$Eex3bOhXkyoZ$*A;1dl+Sc`SY^o{BBp^HqKMQS2#C4bj0MMSv>9*_Y^)YxH(qJIDB30c(H&iuMiu6A2XU)nbb`Lwx_9^ojHrIoq+b z?&3yDdeMOP{&uLqkKBiNZwwLfa-QpiL zNy%dE81b}>@d$=WD4SUxRAEz0)S)?0c#v?J=5Ezk+W?#>a1{wW0vxVO|Ne@tt14vR zCK{eP`ES#xq_b`E==CY`%OO8t?f8cX8I^vYdc21;jlX?cO3S`l`F(CUXM#oczd!N{ z(}2JJ)EN)=B%>Mj`o))WIy6f*pqd`8wWxc*p9xyw(ebmy_0v8AU)3kCrYJtXS#N=# zyT68tO}bTU;+Iw3m~x6M?SsLo<)oRW&NdQ~xSI9KZKEadqa9E2BzA?Z%R#POQGzC0 z!01;2mv2tVf^;rqS+S_KJhs(&zDn%H1J;#lieYixf$0@heJ6(Q zAa@FlH%Wd^d#68mLhg^!>mJ|#A33`vSUq-y7gmRjqLdmq8RUR%md%Zq85oq^F10)~ z@;yFY*7nL?T(!vCOM16N)xX4;YCH&xh+^F|L2_Bd`uVxf>n)eO(UnquIj^{Ieo??b zB|TqzZAs9+VJ@99Y;iBD4n zR8`;vbjh(+S*l9KP{^fRrhJDfWDZB<9w05(?$}74#UqrQ{k7CtrMWQCpYE(EN_9Zlhgp^0WAHfa_SLM=<$vtLK5<8k__~tE^ zp8=$|c2x>H>zdc%YPXVXO>C#3VKzy%JsPacZa>dO&(w#9sB_$y5Y4WwVSt`MRXR3h zO5MPwVQS_Vr4E)XpH(nvKpt1V9%Uk69sK^r@AUOpbC^n+2&XD%Iasa7PBy_`rP89g zo4WG3x_j|)oA=n8a2`jQj)yST-gzZ{`Ci=aZO~*nLTB2vaN6Egu>HWs*m&7@`6ys) zR3oOd?&zZ<;qLyx8yZe$sa#XI$XCBTBy1b9U9x);R@0p;xNR~ds->8xEGQ`zWSyZI z9^@WI(jD`=HN>Cv^NCe_c{L3(>8wKzX+R#k{w(hRpu!G1GQD6`z2Q+LHvD$9zwT*&?bXs2*>rYzAE9%Ho}9-_1=WIPx**u(ftzHwRqIO<+>l@ zr4G@)OA#F4!|57}VBZMu6{vN?+l9DfFm!qTD74B`rLzL6lE}bdoau|+G*GM0^fmI0 zZ3|Yh*5{i|HjpyC5n8kKZx4HJB|xfqc7u|fj~1Xws&a@|7a$=D%>iQIF9_<-$1 zdHeQROuy_8RfZKau|cW*g1DrV*|3h-S&bSf?Edy8s9MsmyMpF(a`G~ljO5!G`;KCcrPzZYH#wj`s!7w`p47qs7oTKytbgu9FwNHgEawNAP&0^6!nQv(@D zwLCtkWVP2-%|8dcj|Gw*qaF}QCRxU*#b`E2R7y6>xApt8x+rwE|GAg7dh4>S9?7mF zHAC>&OD<6KETz0@BH3+LVj{O4{%fd+<(p$8J9NRVJzvue|MU0l2(DhQx=ZM)^u7s>%s zX3TH|g0CqVY3%nO8%R_kOuilG{#SNu9CQX(w>~g2To9j5o#t)@P4hTO?@(gt)Wv4Q zUGwgudcGb>!NIp*iWm2l!XCxmo2Ad=t0@s7*Uea=dOkPJiUDll_~tbBf8X5>5eVQY50Y&krF&_ z8ZR$f!YGJG*nL}i?)@B*7mX9^CITSyfR_u;9&%m|K4W?a+>EhrOE%Oc9plS@JuVG0 z^?r2z@V842tR{@HC7((jv`>rIWhZZqTb&~idGoifm=`mZP9_Y`c;m|w@|sikaUxcQ z%(a`w*+_uW?*?Ky;=u1XsVDF5jS6ACr!kL_T&Nw|a!q%V|rOqBvL}CAn^+ zC^05JDm%ASCN+pxd0S@IWtviwVg8MP*m0CWxSQuko7t+Gh#z`i?2APOMvtDr1E{11eBrhJZm+hDrg}$NWt-y_gPE#6VI0f?brWnP zt?IucwOmoKr;}?(T_J`numWr}=IEYY0o?9GAD31hYRL^8koONtb21g*jlNMUUSG&W0vZ{&_9 zTy8mQQ%6@|E@!+!c20>UvnoTa7}6mV5Wh-+VvVO52^~cGP4_L!|R)6~y~|TLWJX zXpwL05CT0`HN_8_WN&Nz6L}ZVWNe)JxEHXmqRbxBc;t8clZ<3Iui+0lq>CMV>Niz@ z4q;W#7^szl6Z%pjfdfO9ZFW~31p=9SBU={8=7uj5dXOGp9m;xxfDvyQbFJ5o&B-E{ z7L}X^>Q)V^xr4}jlVqPNt$_GT@n=^4B|58VP%nJRJtXhCRMB)b5#%o_p-HDCm!trg zG%K0xG2TwB-+!WS02)xj8mpEqKlTa;e;_IRhaxg^O^rbe8?oI>V%K@~_RYb{La1Ax zGUU6sfYKPJ!$TjZHy8IVeE~1*+~W{jb0tm$vr^*(ou{R}W@TpPNOmDEzwNDaLb~*$ z_|&N-Pl!U&Fvu=SpMeH#(4&=REq)55Ob{~gK}Gtne?nq1Qoohxh!}wrH2GcfAtlH2 zD}CS|jd}ha4K6eUm&aqZOTIv(ZpQ!MDQRV+&s9etH*iibJ|7Ofi0MaZ{-Hp5Q+0d} zQjT8X@L{J1_e&^=NMm1QJ+O)`83G#QGUdrZ;kDr4y{3uL+4P&7trbP*T&}IJha5eQ zd`unIF%=(6G!>tHnanMfO&8c`n-~D>7HwzDg$*|4QqO`7rX&mAKhx$G8O&l>u(Y7C zpx{V`31n}3vtF%;^n;X{obznD!8ztr+nm=E#&*35hbhyLss-}^>m=rNP5OsJcG3^* z{1vjN$~QKzQ*n#?uV)f3%$v;kceu}`h#J_uD7!nIgvR`h$l56D27Z7H-2K!oDyIKXq!)mn|DjL>L2%he zJqGeaL_?|r?mjRwI&e$(4B#ucDfm6D#^A`H$^6UdEar&M>c(*D8^P>dc(n{0flVv^ z9qMpxEipI(%vbTn{wMrNG8jAPFSlft`-n8*C1>0g5O`4AaqC?%U&V_T@}{eeT>`|W z^2xE2b+|t0wD;SEaKXbi%b#ZqJVdK)uvYR2%g_DK&mH|X5ev{UY}%dTE)KQ!Tw2@< zbz7RZHD+8WL#@hWoe|x=qmEXqW%I`L6F#GiXVN{oic2jlD`jS`YQO(bXatfW3Vyap zb*j}B124tE#zdYv6<>_oHXs?A_q2s_>dQr^@$ik!P_;$a3x)=SK8vYM;O4C6h*w(h zY2C!cbuikW&n$ZA4f%XEkd1$pvgK*HFtWd0(5WvNbkr}skhSLhd!+D^{RA?*fXI~l z^s%Oe{@tNTgmnORGU>%D@R(0OHS7Z}N)`Enyz8t+AOnqxsyIDnViz9Y?$0mGdXN(F z>^p(Du?b3kgLVleHR^Xg1`np*?r8$`D=md*FU& z{lS+>3U8-H%AMQ|UESyYQ22!bq`pDzC&GBW0C%=w2)S+Sa>Mg7x#5f!xyc&JH+?(yxNA-zaQ03 zirn@^CGT^YMHLjsu_KO(8tr9UF2ha9u1<4wk19wpWn#3{1upc%pJ0*5(lwh;!zwrZ z)nOki%hc;6hBA>!m9Z$-;-)>zwZP_E+0+CVoR1Zt#%a5c7|YaZd7uc3ZX*Z1>K0Bg`zIereXkIT?Bq~pY#2nwXvNX3fSCkiP;M$8zl5n%W zNK~4((?6^TxX>75Sct^+M-k}^)S`*r>|7bsb}*bkG(z3NJkZ}J$a%O*c%^OC*#&ux z7innA4ON#@()Qf^Z6k^)E8$Uw{`kSM4#KbYPvH^AH%i=`qQHR}lPyTwv96>>N*ko9 zv!^oS4~6kD>`?+l-B+C z{N=~S0K)r`a5Eo6YDd}mMrfanenhXsi48`%58VB#?!MS))ZZw9e6G)Vilri>o9<=% z6aBslaV)eSOJ#oky5;9M@V^uP>cF*;VycZmD+FPSdXpZUtbS zQMJ;nFh>+Qc%gf~gIVndzCm0jpFIX+Wm;+;sel#jgW6pvEZFV))M{ql0&mddn?f1> zO#R=p&A&&G$dTJ&^E99K-r<8<4gt<&ZPH%iHYcv8$5GTlbgIWuTq}XbXsg8BYy4x# z!2avD#iN#yxL#~Ehg&n+`Hcg9N?^>YUEA#~_GTiK^`PWf`oI|%&a}thK=p%x;a@5G z7`#R|iFaCY-*fSRT*xu)nMZAC`pP!~i1}Sc&7NBDV-p=;D zP~KyE=X6(CwmPe-PoltrXMt zfBX0qHbPXJtDKbg+p!14w8fWcwD0-T1*|V)<1IOuhCYMK!ZUK!HtUH=yOy{{9fVl| z&;kB<st4X~5bC~3BZT7}jWh3!61~ESu-dMKopE*Cad@7J_IseuTH*#g zJ)zYeW$MN5F~u?5T{hg6qdagCO2 zcG{?o`x*gd&+o?GXQNK4U=j{&8O3m7(Qm5y=NA=BY?CXZef*z+I$i>YggS%%F1nws zf;|rSGl9mhQgiM$`!FcLW1#k7_DKE||GxJp+n_j;z>9nZ$JlN=5w!tBO(B%}_80u` zUlHqwp1+$KE+J%qLv^={6D}uTJGFmoUfQnB+O4@+I4Nh>of7OG`ELlpSBo5Q%z@2^ z#C3!ZT$vWO+DQh~9Si+{$IA;FZO^7@DlNErFfaX@1nl7;E;>6A(iA>B4(!o?!X?cH zUa_s69GLMdVE31leVo=J*4P{`xVK-S@v~@82`Kr(K?gwxhH%>_2{pu{* z9h|(8CEmT)n~a3N0bJpq(VE|<1lQ5@JGQH~(WQnAoCaD<_kA}$x7kOijXJU}cbba#zPF{vLhfCQkRx0igV70L9yZPNOwQ4LxbuPl76ZA{ zT=P!(<^p*Oenc)>V~q+_F~ofj-B>@uS{m7Fzdec*nhN0Y^5Ag8%QQ8e*3VdM9flLL zjS1s}5((rdGmSb=1^K%kjCW1K3LQ;z`u-J|@8?YaH)Q?id)W08?Caao(In_!k>4fh z8wGt0n%w+X{=-u`An6?^_^V(xqe>d&imN9*J`zz8Y!1PJu6c6>qMT(DO(FjNv3#tD zFpUD2nOsGp>%$g z%ECVVcps)u!j1S_TX%*E+)Dr-ZPk>=&OtEXj=p@ptZExx7W|m)b=pHlxjTFdDI9Dz ze?Re-T9E|iBF~j9(vUH>&#(Ct=Hc>e)`q65hksY+*JG86?s8e5R!*uW55tXE>GDQb z!{{20g>Ce3jt8)g2hsJ6d(9oCbobtnJgEu?0;7J8pz zo{q)GC0iJ6fmRMj#&nbwt(BA?0A1f6F34+4Rv#}mpHnh}$Qoi?@qEOpNx@m%yp#Qn zN#Nw9$0A0%jjIBSjx?eEPkHn#9VX-GV0Ug1BvNPcO(`Zk!qLg_N3GYtqaZw^=%7rQ z-)vM3caTx#pY>_dgT^?g6iN9zIKH=Fd3)FH;^~Wy>VkxL42=sH3U2 zX4Dq;-uk8vVX!VVz{}6`lHauVThHH*bh~d{>*4+y6WK5Mh-+}C=PIx;wuggunZiRM zJz`lyJ8#C0xSo!9e{>^-5DiK(!G^j9U6`CBmE6#-mQ@uUqMuo8KYg9d4(1^Zy#uXx zT*du{DBAuT!ONQGzTT2h`yM#k#zX*(OPN(q~;UND%4rE_1GG-2THfSz+=85@3BX=<{ z?Ha=9(l(3a+LOhJZ&A5?QeF>u8 z_Svzgk<@ElzifSjOf7=}?JS|gX}to$u9uS=7N4*8A9RjskZF=H1xbm2ld}IK&vDbH z1r}*eAFr5NwoKjQos$b}k+fPCbTD8yf0EpLUXE$~=iJy9`b%T4|H90nE&G;sw~cg- z-r{8M45oJck%56$<+h@XaFfEIZvL9siahh0j8R+q2Kn&?h!mYcg#1O6m^etz6f_)_ z+M5y^@nK!DjqS(P&Xn1fx+)Dm+%ZbZEp?SCs9f~LT)*!UxOz5CmI_lP)i@KK&8LU@ zWu`sE!#HYOFQTJ227XuIl*aE3m&1$0Rr@VEGk-T=9b5INez7R3XBQ6(#Cl|{UjJ^~ zh0wVcaslI*oXKgOh~vI<^^9;SP5^+wd!{#RYb6-_&vk_}LyWiAeaH6(Vn$Fuy0Nf{ z?kzEdr;`z}wbGp@XZrM`i$VYFs83GpIp1;qg#c+Bdq!K$fb-<;#S_f=A$L;q!$PJgp;(js_%4i9{PM@hs@tNtM82Iazyq5?CGtV8$e(5rL=M{R@w?WQy~1| zz40d2D?)hmGqPkx{K7S`r(;Um7!I-f%a*SSdB18`crh%SH+`w{ z3q7s62_;Xzb9b+t)64HTxPEl}jgSf^0!|;!@LsTH@4O4irw1OdwrTctW*5U|_^f{n zDdf;tz^M+?xL0S!E@Q6>8bL;(PI6Dm?Oc&}5G_S&P$Ue07MFf8G6xblVE7h|_!su@I_F`)l*ud0H65k}#mnruiZ%><m*>4Y_wzh9nHS?as1=&;$$RE z!)=k`u9udR2Ix-4ZckU(3hqwQd4}?u#g#Dk?WF(r?#XiS*#ZWT%u1` zF-0%k`wJ|0CMGm*y=)^fu6|hS8F{)7C_PtkwD}U0nt$FUV$bTb(hH!8IC zF&GP0vIfTECzpMqgpM|M%!O%khdli!q{R+|IZW+y-4iPp>mgubu5K1lI?cP&-%RA`JFjMr(a1KfN?H#A z?WxfuBuTq71=}8u@ggl6k)jyJf(_P-oU|f2d$8liFj;Ns`MKc3M0G$e49a*AQoM@bs@HiDC1Pclj5%nX{Bg)k&F zLFun-2zrAx$!LK1Tt-6ouQB}WBF6S7KfqDFvnLeH*7;Nh=dS#&E7mODjTu~2*7N_R4vUJ_?Y`L9{4q)0h7kRZKop1txEsEE985;Q=Siywtp_OK%-kzQUYQ}o_%yz z?Ro24=`SrBW0s3vn0B4)?XVm$F65Va6htXB!booUj`rZWklN&;g+IsDyp!=}3u4+> zkf-vt3GM|06^q+so~b9zlhsXk zlOV(Yg}MkGJxY{EnC4?5)=M-Mt5X*GUIKt>|dvED^n5Xx}A*1Y~T zRVclO|Dq4gn07^Oj=QzaT5fWahXJm9fH){+K)}@N|aChb>aB!LiY_|N600(DfaqH;(v>Iqi&l1=UykN z_cSADXLW3g?hkp;-m_8uZYut5`}*B6%>~qs)Tj8J1ZBa}>w^;?V`^IhB%2zl`D&8B z@8AU2GbANrxJ621lDu1ss{T;)8kLU)xCqPI-q8{`mY)pj=2E=QSGi+%WeH^FALCaa zV2Eb!sdOKH40imXNS4eQgeCN1rE-lV{eAaJgv^4!W^Ut5Ph~1hstoDaWuFm}@FGQY zT^yv+(+F!-GrdLhY0UJM@XWhd_jjs!+L}?e!H|=1+k<%ENm5BcH$d z{!A7G0}W@2J_4(0L=P!u3WMy*e<1H_&i*776`#Eib3MKuk!-C*{IkjdH_vy>kfx0g ziS5wuwj(MuyJl!GW&Xe%RmK9!%9k5y7$8S&5hG{NuWJNU&LxA?_50Pizn~jx1`&(& z5(!0gVe)0Wg(4&*Asff_p5Uff({G8UGz(KDAa^xRM>z(djz1a^)Z1TcV!^7&4wfGX zC)dTymDs#f%Wd|64|ZgQ?;FPf#Mo|e9wJ9Chq*UTWK`b^MN^8@dU@6 zTEq}06dqKvN-EMyJM3xJ`>P{yG`{)vQ)5<&q|}JN@qrJ{<;B;>c)klx4qy+L4L+HN zW-4d2IddFPE$*J^>^?Xbc}lpM0&1a*8hf@ZovYuw$!IJ%zSG2{FfcMa<$373`?Jl_ zsmc#~u$X$f^COIV-NOQC5&wJ_q>&)>G}BCBe)O`wbcqz{*k$-nV9j132VCsqR`4o2 zTNb-#o||714)5V{pjLXJ46a7Fg|l@<1(z}sv&>`1rAF$%Y*0@}TNvn4PiyD84rwdr z2WYQu{2*IKh+P>Fvj_DUcOrOZemC812U?$0Iji^CUsie_I$(2r13g7YO7cPHhzZeD z;b9QuX7tE25eD`4pGbo@8#<#0tjHjaljamXs1^0Z z#5;<|z;HuzP)=uX7r$}laNsc0)|GmliLg6}LpRDtpCDM_JkUH1U?;U}i1t8cDcr?b zHJpcP@)cA1JSBLC_unaGVC&)_5K605VkbSsqnZ2kr>^r?p9pL)w!)ePNaI}AG zg4oqYj7m*nIa4esiWP`a)5e28Xe}ir>E%v(j*Wl4bBnMrG<+_=K|1L(7oc8x4~Y2z zN3X`{uz213U#dpZPJLoU8s=~js8z_|nkHmXvk#<4o#{pQYqHm_;VTnrczp$A^rh-s zb{hs}GiGz7bx^!{y+EvP`V_`Y@FMnlRresSlV zck(ziZ~kXNw@&Q2%!si#X{(PN)r^gZ#&EU!UAEIKNP%}z4IzT`vzf< zYq`&^L2+J`!dX+1rpB@E4FdiNE|pQLnt6-~EO)!hClkw`d7ucd^bo#Zsztv&ozIKs zXbJk=WqG85MbK_5j^$uOJ56yCNhb{4VUEPE8YDb+C}eNe74~^v&AE8k`7xr+bM zXsK(~nFyz!Zm;Gm@xQmB`&%&`+?j+bu*!p|`qwP<1pb?%{cl@C#Xngt;zh=pQh`)b zj*|%xNR>4E+8Df{o9pvFP-mg2zerP$1qCm~S&O2hTJ@-VBADR8@5Vr|D5-(OLLQm# zlEy~~0S%(Na;1By$xjJ`#=T>@1pKJpO14)`c4e+`IsZ3IFsw^>fTtd>2FfMU^ZR-V2p-B z@aCVH|0`?Xv>ZTil9?mELujUOL&+Z1vIthUkX005mW<_kRNIpF`^a=|-yhw$fzwD) z0@#JEspIW!{_h;KR__nGV%4uo6MR<%@izR~w;Wo_6#{iQYwqR{#hv3TbfY=>p_Z)M z77x-gwLT_PM|BpkOJ-`^F-AGk_~l2G_Ml5x642T;EJZQ-JSH*L-E7Rpna*9j&YKU92;DEM>P8-pt0Hz-+dN1BG%O^sOcW73cf2|-N9q5ENwIsj!{ zl(Ip5@_v)~==hRy%3yM2gfdfY#Byoy-J9aS{Vr#llNzcb!iRv5m<$v=wtB@#0_`E* z+4LGhrx_JCg*^9(DNP|K3LHq`Cf;*ouyN--hA85I9{jWEh`p}avq{``}(_bM;x15z#ssOg3`Xuo5C zDC(h>mel$jl7}1fTf#gzDalP$G3F4;&HMF<-439U`Uaal6jpe;up(1QYg<|7a(q9@ zxW161f6`{B$Km5nnkkeCOzAcmWMZMT^ravO^4|eTkh#v5fH@7g&Wm9Bw>%Ag_suk4 zGvnaWR!3{Y!e!R{KmQKVV~R3bZ_)#Dr1BMm0h$#)h1+5o^L69YP^G4+_MAY*AkDRA z#8;Cg0{jFB%{8|o*e<2u&TNBSyrd}{lX#E;*#2FQel-$wIN66Kns%BUjbXCHhnL`u zdGE7PNx&{BrLAEdk=jkc9{|u0L4?C=R zKu!rWFCfxG;y?(NsDYV5qXG?W#`vh&cJ*f!<0C5<7Aqyi*?Gr}*B=Wd;F&{g2b|s! zPn=kjrWj2hmf1UfNr7|!FlCC_zt00p&F_nWx>iG zYL zqML)4+6mSW-C)QhZ|kB%k_MZ{&}OFTUo2EX;CI>sKMDQ8J6dskrGWD@cJ^80NF96o&Zvv6|C-|DN2uMJSLMl%5=t% zZ6^O_b>sD~NVKR;Jr&owk<0bix$pm=-& zAWfBIGrR?PMq4r44uHNIWeI!q`jy5-F=_p)so5g#2;OP=s*=;qp^=9-MGxeVJ+j}=DC$kPr|1?DM@8!A)3$55F zXUi^J0GiINpVN(cfXU&spEN{J#fA3}rh(wd@vddjt(9f-vtCVe%b6R2yVv zs3=omq1`h7-0ME+-8D~FGVoSX(j%_$9R%S}1Z&2YD0;EIFEympDs3+0x?i>;FOyLu z6;Wdzkr(!sq>9`38!VokoxPhF{z9O&rGWq6{%zhib;`G(CzeWa-DhkoWOf3S?dQ3t zhVaMS%(A&&qf^;m(_cQBkkX)l zeR@lmG2hB%QERfiCa}t-GsOC{Kl#>m&YE^(Yx}Ibt)>NCxA4K@dH_de;6Kv&(jWS4 zy;b2?s<`t1#c1D*%m2ilHPg7b|9f}^Fe)SH))voKWiQkX00!2x9CgJ?ET;xfM@H~} zXF5W9IlCUVe<bysafIF|ef*6NK@2pfz_;k-Ty3dK}nm3&NSXJ1HC;S)4rNEFeRigB#N|W%k1n zeY_D682aJKQnJOlQvp7CrPY+z{<8IMt25`@qCi#*!o%_EN%m9^cKLCs;D8%09qoT! zMH2B({Hp(l!tl_GUdn>alWqzLJR=R!!iirew;QLLTHF-uxio2I+9qAm^5~T>+1nD< z8R!=nxbjIuz-r3#ay%rwxj!+D~87B5~ILR>`<*QR8D_tI@IVm#3# z7NBG755;hJ6%D<}QSu&2J#8Hqf~LZYvQ^`y%I5_Kr6b1lHOtyVI}5YBx-2`#Hx9V#L&5?8Q)B(J zWb?sfE$x-W25+yI$DNbFycju3*&<4gM%!q{-ADskKC}e&lWz)A1$Q$;ibsYwAMZ(X8BU-%bd`5QN8IElkOx&uaTfP@bRiNk~uxR_O0#T zN#sLyg9RSiPeETI-0!O*Ucyt4eJU&&Ri3O@YDl5neq6LqL4$3ChSiYevyy=m6;?pW zf;k!Ubs+`9(NE?w^fR{FoxG?50z1R4Jz7G0Q|(Fl2C06><9$#@wBy<$vs$c9>r`da zrtPT`MmxHxv$@qliMQ$N`KAwinW~dIbPpP9Pv~!@z+7Std$kmek`nKu6M4u zsFQ{iQkSXNxRQwl4Z|XAfH@!nU;729&Ij-P%kAnwuOkG6qbzG;YhD=Fo}gaX91Bkr zC>Wv`0<5*f+>b-J9uV!x)P0}fJtkY1>IeNIE}mnV*L7t!J1AGWlcB{;OZ@<`@eijt z|7796NhZd69EwQ&uGt3mrd(N2gi3D;165k3MlF1P11>6VQOD#md3rC?F(#SG#0b?w zqgyGkH`mTwe7y|U-Zn3AU@FySi82px>*{6Qw)H;tZW6&z1Le(~9jM-n^74n-4JGU; z5hHig?&}*Qp}D$1z=EWF1tqK*ch03m-gmJG`?9kW5WnQ{nd*Dto7KOqDxc@EQYHCn z0mq^09TFFo-dk+z&lVi~%*SO1rcNIUX?=c>^|bg+sm|p-Qm8RcYsDZzFZ(jRFBQqG zHt#sEyM-t#6R za0dk7;zd1cuAbxQM0zd;=3;+l>xoq?xh^W#4|}Qn^VnMD!dX#rM*Y8fHwH(qE92vY z3m^F0vHgXHqk^)cOv4`JhW-esBDOx4bYTW=5gXdd@uZSZ2ER7ZPaLo>9|IwC6jNDZ zODR8!a?c3Rii*sTe_lvj-w2bqu=nxw%O#zEbZ#4z=yAvMjzQudG8w=TYWb~7mZQ%Hns>)iHzxF#|7DKn?|sgyk);8$DjbWKk4L}K zRm6{h@m*q7ddm39IoTmmr@K_@(W2Rx`qP=hP0!4NqPsU+JK7m-s$6h8w%)!2KT2cz zOurORSs?aJsYy5g4d*7Ou0Hlo(N4rj=WMh=xryr9MNU>c9}EUJNFBPGmQ0bTls^5a z+MF&CF`&NA1hhEOHw|1yl_4%xmJKJo8RkQ*N%}HJmVy`cA?T*zB3Svv<07gnP3>^# zfJGSzg$?H!xYv2Inp$eL`$K#ET1r{TU!qv00SEu>QJl7L0$L!?Ko7DfAUzDUB%U5m zNbSw0%~{yD@Kdq(sO~;TFSQmEP?>p9xE8en1&JR%ZrI zoG0=tet9Zc!8zfmAX7G1!9LMFoy0^PQq+GQ!R~U#4z}SYg_o|VAqZR8*%rbd3LITm z1!~@Ahl`C^__0f3`s9)G%S`e8-?IB&eKwD43EXktO=nMG2y9-J+v3Q?3CqMDWRT>O z%^psx^1&*cffiKW8Aivslu)n2gLPk{d|#tMnFFvChN6Ln-5TlAQHvP!Y^Pu+i3F*# z**=`4R7t^Px6yzxGO{$ehFlHjz;3ZdOn4QS(&1G;EL*0I9Er-uU0IQ)BA*3E+Dm)+8 zp&HwS;zxWsS2qN}Md}h%znt=)n@aS*1#W`Yb!ku0Zo;a0x>InBRRe?T9qqgC(|;OE zvL=X|x!?tKoB1JTuCsY6HNbZ2EU_rRZul#AvL=QsC^ijUD16ikpp8x-%<#yb#j$_T zixKQPPxio&^6Erex#9zl0IxE=PjIIlzN|IlSlVUa78ru(>guEsgeqD`%v=@vk!8C36ZWAWA7-N zOG?emNr-`vWMokyWemEMWOp!NVbXwdk*Ib(4I0N@CQ=`Gi2Z)F50qz^z!?%rbc8WP zobe&p`3@n*Ck0b$^*513+gmLlHeizFm}X04IuyeDe%JNU5EulYnHj!UP67;^V_E!# zTvcvbOr_f-32s{8AujPV_#ow9Y-P)}Mj!r}!fH6Jr)8eb)Bv8?)}{Ks->zQ5D+4dR zEYD!?+rjKv-=WJx(-2}d0&<%{sRLID;;!8qs9|%x39L;?UEqkZEa-iw51v(E#sH%4 zh}ZoOjEAEgvsttC^L*p^+Z^3zg-(QdtM?*v$RU_$skq2Um@v@*O|4#3SJQ6<65*gl z`3)5qM_Y^)@*7#p{45vdOg2Ai;yE8H+P{6FLI`>wE{K(&yK){NSPKGh;sh7Ck4=_F za1)=#qH5N1+juUy3A z$QM(Hrn|%cLCsd-4bKVvWI+PCopGrIj_wV-IE!i$`B?3--!#U!K#rZ2FY&cuLWn2CN;a+SBz7ZjRf@GFj1mE8%EPpvNQKJDy_NO$Ahyn zs6nv%jqarN*Or?%&_ya~IbxnqiQ17;ioymJ9{~V|nVOImdDees+IVFxP4DGF1!Smb zNg%p^GeX7N#54+Jxwxs|$xU@f4U-ufY+$ovaQ1l_D&O|#enZ%(#woPNf*g(OWM^P@ zy|;9}m|XmN^5wmTXQ{&4!v78xKC=V@Lg%3gAWM$E;0^b@N5UUsSRQVd>E)=2hiWa4 z`d&0`xa=X4*{z=IpYpg`&8peyA2wT<5_$P*s;8FmzGSr_*W_qc&lcVgAp=dC~lk`et?S}@AlB{|2h~= zSOex70G32Na#4I3$Y=w{>p<^aK?quKtpl^^fZfC~@9CnD?_LF`KU^^J-oy_LqQL3@T+7VJoJfzuW-TUJ*uMa7g zsWp^ZgF&|wj>QVEE`D|kh1i=Od$GY=?ye&u;ZT-V=f}eh5h}PsFt++WFhIar;?)dM zb!JKFiKN^xO;zD;dv9&|L9CniEOQDA9l%u~)D{ZtGFe0IPeQJLR|I<@%B-yy&BgOz zA~g$@_nlfTU-76V2;Tbrp`**nrR2MV!BE=m2(JUqJn>*%({~t~r)H&*pV+1P$7u2^ zhGD`f`9NuskleY^=gj?Z)GPdi^m>vub;{;ujCj zD;2CHS2$ifPzE!xVMxR1C;2-yr|PxG_jF5Iz4G2GOFbWiMGtNQG?@Cm24(_V6i7AJ z&kSc*Gal1DixV{M9hI3hM#h)O%uXRW7UTv0P?Y_lsPDT^%vU|m!Ysn>nr0J{lw+{UUcnJOvJA~PKh%JI}t&zzplbxb={KLWBg58*t<)f;roUq zgF%LoYv`-d_EBr!ldde^Y``JS>cgz29o-tqdX(Q}P^g_Vm@k*;V$cIPbH2NW0Z;;_(!x!k&G7;Z0$>;$tk1&?Eq!RKP!}k zr}p?4yjF+iIDPCGHbw@&@hxRv{X-$uVcIUYQZ?Ez;m0L;d58QB(3m15T-asT;;#gA z8^->@Y>5Evj&gS;-}q9M+Kz*spmPAe%&Te%!jkl;(9gE3`dy<^r$DsL=JpWY#gVPON1a_Y6BQ~y+}!N(IkO5dckWM}N%TMnI_Q7cDH|Vb zcioy2b>;x*=f0L4=y+WU-v}%E1x{1a{$NofWPsC2uImBE0O%?}W=m%P}U6Zv1FCCIA zVXhm(*uhv5Rn)V}`<{#yEe?yrwY7X?nXi07k^I9UeeDBu4cfr7{T$k#qJkS^#fgr1 zDpW%`W#tp|?G6l*%~rvaGc6(_?V-)Hrx0XU9G9Ryd=88w)8MRN8KCs1{p-KJ9zh>j zDO;E%FY2@?7gfznjF2M9cmMkQi;Ifj6uVwP7p9G~#fIOfE=l3>6Sat&`p+Dn8SyqH z-BUwd)R!Kp2P5}}vk)JQ`X%*&$G8kLDu>t%@(Uc*nVwa5Y8qxd!fmh_&PwSwHJNl6 zp%X!&r)ry4rbA)YdBh00U~vr<{;`S)l*zQvY>&2NjiPj^L?9uPA4y&D>*CkO&=t>h zI@)E8BnVB}R}l*fofdB_qRU9W1|ZXA`lC?OjnVqvB>0{QYaK*;MCDv z1l$PT$wjgm|K<86=O$#OWv z%@)K$xcL!1A`;>O+zX{RhNzBbeJ_dR$SRDjPcSD;Y^15V_!erTi_N^m;Cm}~DEQ~x zr8eH!y}2kMjHhrbqa=qg=A0#}rg%Runl03d!zUZ;0Y@nbjMfM@<+fdUTw2v9>6+qO zsJG5Bs2uMY*MCyPvzQJ1%Z5#RTd4hp{J%^aqIJX?ffVF=MK1q4q$`B-%8^EmVNh9O zK!vq=O7@bCviWn^zQGuEiOZ)&r~9899wj|er{3b07=d%gr8sqH4Z9f{u3MRC=Fbi| z&S&n|#`jUhp>(x?N{F8sZ`+FTh{h)U?4Z4k5&T^*z-UkCVz)oc$9<6(9C$w0 zW07@}(I9`uBA+~zX0%=LrKmTvEp^4~*4mEul^9{Q6SXuNTC)VV8S*>l_+2oXFMerw zz~VIiMhgCD0lg8L3TXe2@PXld3lSm=@4oruYbIu@alUlLZbzI}mQtC%Ldri}ZE0N2 zC|>m0A1g20Y8y2Cr$5|Mq^c12(8$dq>TUUS!e-$x?_|T7NkMTSnQNx{#99#-uDfU{ z3;rvBCB5hQw7h;{$R#H`Nks{JRT10pn*Ra+;G01|!}RLf`J&20qiDT=;V;VyxMNEd z^_j_z4j26b&fZM0EVN1nczyAMxCXJgRze+`tU71URCGw62+n_#l5vcWW=7Mg4PK`4 zyZoV;`E5L=L|9m-_tsnC=sJsP-Ic;7HRL7>@20)UaL7p8)NF@pdrbbJ$b~dr$r1e& z*SWY)8=tk#k7S@m3SJEs+f1nIj&?HFqAhu^HyXPTM24#e4LuDOHf!b!^W)xcv()-u z`F6`q&acFDbKV@cD#Bj#h+XJ9dsn@P4k0D@XTDOqoYWLq962>vJ?pHRJx$#|XP8=x z-?k%s6m^ndi~U?-7?n}3qdsO5))MH`c@SYziW29wtboO4Lq9QgISOR0k^rcN^*ph zKJjMcr@Zk;G&A;ss1|*#5#7L^no8V< zR{Wu;ltBvU7@H=gH8;;JSg!={)_l5VB6m#YuiTl_)lW0ooLilg50~?@JP9{UWh&o} zS=1?SW!*o&r}2nf*l|63Rts-3k@uP_E$Kq1?JpELXE>F2DC8HOwIc$Wk9TXVIcYy; ze)3+o=Z5YMRRvCGH>Qf9u@{JfUb!G8z4>UI+1PP}SH_$zCzyZCG|& z^VJv}wunkg>Pv3JO9ykm8#ez?aI0i2_>KaeD>~a1C=L)?Te9*yW~X#cF3ICNRjK`J z6r`yat%U64fvTB;kvvltE~_|W{8D6_PkOsjNX;#I0IFKQj7|pKRq6B5pqj0T8noSD zA2sw#auXc8YI^99p9Wh2de(O<&(RngK>{pMs&X*v7`(FL8Y3@^sq#}MR>-) zUEg3Q&tnQ%COh9=41WMZf8jn&YYN zwMEoW2PKs911T|P01W2SO4=PA>!e}=skO-S2}bPO7-aCU{-Ka=fB+FHBv91MX6VKku%rv~xvZY>G-lP9mSjseSZs@E z0B|ah=|2(aHXP%U7=oFZoexM;p7IWV!K)U*5ut#BnWc$yNYF`p4>0$Q^1|i&m?v$l z!;8(tJl>7XiN)2Dk+q5+{-LJ|Zz2`Kj-4u?l4WITlTkaDnbkdgon8Pe3G8?+<;zUI$q~Y-?wEgI?dNYs(Y})N{b z%|vta8vtNciTM$p05{%u!`gE>wCx%uCKw!4xHg8iq8FU|R+%N6KlKmc!Sj{A2E#~kxQ9?h(7V6a6>bIeb&Da zy^zq5UQ*QWG0>gt>V44jmNiU;cKSwT2eCul|Rj*$igQYH|CSGNuuk9A0!M z0<$VaREqaYc}k?}r{}}KQ-Y}&#woSBB=|<9J`%c|>J-La9loZA8U%alMGvSxtNLi% zvtEpP(JcNZ(jPS$1<@r`oDN;zi-@<<>sR5}9YeCH7SH0+2Qq+|$3q%y zc^hn5YLO!X;3B@B&CDaw2p>Qr-spP+utV*&Xma1}%2_a^cwL!ZD!_vbY6B%K+)R#x>=7I3d4@hNNnAwayJVXOtry!?zHPeW+LA7HrLM3)vv7fh2n&C0 zTN(<=fYAj77j2H2Uuv|Xht`th{-hou{B(F%RZ;2EVI;HF< zsRKLJKf;zGRmlBUjw8^Jo1&lv0xw3p&Fd{|&<$Tu<3|yvFG;~3xJ&Lwq&!va_RF@| zWcRAKbkj;N34>PZ-I&V%3Lf+|DLi#Ux#j4dztR8FUXFs>v zK96!oneD28JD&K+YtE+5 zLaSv2%Ba6Zznzckop9n_cF3Ar^c@|SB=C--1EN@8E8I59} z&9g-tUJ7;+WeZcW*;A&MDqDs`xhnbipe0ueSG^1M>vV)>7uEXfIT1qYKo`sC#?Z1( zu9MjqZA`$sAwUOxT}PtL%@S^AkwR%-%7NmrBm~>XEt$F|6RDU7qTPMM8-+^uw|0Dr zVyyh|4ACctuM_*X;XZ>MlrcC@L0}nFEZ{6xh#Yu(=mu&@x2rqtnd#TQn`QD{`kNic zkbd`1R+`{P6?h_G;TDFHoKIy5(DyM&qD9|&O{5JT(;nM9j+LNUB~6BI=@1tA@_jG} z@rt%)rlk8**HdXCQK;mk^FtsjqL*$s0$z7^9{^2YO+USGl9XK+9`5 z(O5-!z~_ts>{<)l4Ml9aXx96_d*&s>}KwJcOtMa5#u_*H7GUqY6F5swYBjtsO13Yg7^Pa@#Ju**m z)IuC*28-G7I-UmxW#DY?s*G$;RYdpq>N2^GQ7if;O?_=?4-K75ICFHulRsQ5tHgky zpCe3TfD-%9&+;`h-z2~0lGI+9jry-fOCQBD`nz4gmA}m^Ff(=g?z;Sb>^eiD4(tmY z_9|R>r2`qm)N*LY*mjeq{1b(K55-&GU`|s4lpF3kz^NeIx`%%T-&r2>Ln&4V@bS$I zuQZ>TZg^~0v_rO_gGHZ;nBjV{19-or!9rV$e3)W-K*r`4lR)5de)VekMQ56};nI~4 z0e=}}Jrw{mcr9Gd#>5hdb~VuYS%`-K7KMDLuWHOV@M!QT41t*Tn)9dv-;;kUcVy zTNcnYh#I`T@;Odn45rbbEn!UgSj0Hfdkg_={b5VSUN%VA-@D^Et%E2Id19k}z473L zcIzn){YWK|EI~M+RcA|mNHWYL1SOg?8z$!CV*!jq;$MSoRE)NnuUdqqOS64se5R3H zHo@zi>1eQBn84-pD?s&$<{Fk?b{MK}Fz?9WndkWAeimreM+>|8 z1wuZAu@V9!L`a6Yqz`f9wF*pO4R=jC>O*Fpu(kd0GqyDdfXeWU>r9pkVD@2J4^b%H zHwG6{XdcLYz+X%8-;IB0DE`d-A9*y5wJ^B&z2sNT&#y|LrXSuvzA}5KZ}8dGu)w_i zMLwT_SEDV9kV+meAfx#dxYd4AuL?<-{xwx#k=iIUFs8ThaABRh+4P<4ILj`&p{QFh zjV)kB1WME!)Vsg5fZ5bU!rhih_Ae$kT75WV3|3cHm(`z2dK{Jn-@-gj<{-Wv0z%z9 zm@8G{4cXjod#R4ne-1}7*FSOEc*quPvbGu|?}L8yVYl@PbTmhNQX4k>eEv}ApdCHs zZ)Q0{Uokv#Gwh%ECT-Ocb0v*k))mh{sY;K%J^DT_X(V*1ZB!D|H-R*ewKvf9&9~bw zlgC^=8)B4_0_YTD;SR7xmQ6skISd`_vesY<)F2Ty9j4R!LjH%U_YP;f{loq{?pABoo~5l-dlRJ5R#8;cu9>2C z?G=Qy_STv$!L5YaReP5ZB}VPqk_fdElpx%{e4pbvj^FX*pZu5O^T(CXbzSHCJYOfY zYx3#ntVxA}#Iw&omwDaxDK8A~zyIltr$5|e#Wk~=)V|O5O+2d+El4lY^VBxVn`;?_ zG*(ZHo(aTbQaWDYLw$Oy@Z6HhkJ@}u6YF|L2m(JOICyVir&8V8x-bDkG#*R#AT8iE zQ2TQWJqse^l1kx9`!OXR3PMj!9SQ|smutvJJ~r1ZJnnu=OcJM>V#E6jL^kTzhU;F@ zyL>x7^fAs6O3&$ZE}RQ$Pfu^Gg8$;&X(6)M-64DSEi3pcsb$vN*wJwEN%ZMXnta77 zaa$p)g>obs7m};0BBn2U1?oG?P=^0(dP-GlW87n4zqb0AKlr@5arY+U@pdZJ1_XkD zH3Ud}Mg@-4T1HbRyRHYOyI|A#NGpT(Cr#Uk%L-}O+h=8ZC zw4DXJi%V^LSi48@{7l4A7jYJ*t6Uh6ee7Neh!Ud$9+i*nB5a5%cl<{~n@?MF2tNJP z6?%|St}+%JEae@vu!O0}*$#2ToSrcF)bO%K2KojcXRLWVBe0zwO>0S1s+7rxH?HF; zPOB@oVV=asm1tOSiDp=-tvG=@;YuOyIv35o*L;81>V9~46ZiYPq=+U7UrB~ke{^wj z>8XTCrYFy@*t(?b?_l6WLosD+Dfsz(?g;t13Tk6f=F*^!6~{S(wYYw3CNo5JX6Q6+;Y9-CQf(9Hhj82S+!f8y)5S(`Rm~=whzDF zF8ug&z4hL%#<3mzZe+1{q!`F3OHtqNNu)Fan zYdPd?v1S{jH=gxawAkYQz80UOpgV#{LOjB>$x?HNvoYn@S?gpvv8O=}PKN%Opjo*DR8jk_cEa zU;2P*?O82}vllp!M7|y+PhoR69ax(KUBAs!pOLR6{?e!rxM%u$N}mMwVU{|dqES+$77H} zh3PQCgmE5^^o>4OBP_drOY^Ub2(i<+r92+|t-t2!z}+oK@@D@S&efH&`~WBSi6SK} zGV-0?S%8VjQ{ZiWs5oM}dG_;8O|^H3EjL+X)z0Wh_Dr3G7E~yYLH3^>8(Gsur8Ok= zp|)Q^UzQ7mszE+C?G9&pf?PKRwwU@0KvO{GFh>`U(kH%1tIhF+250Rj=UH0!n8e-z zo?iJW@YVnSddMAd!+SbtPe;%rdX0@fuqPxC9Xr zduqtB)>xJ}V2b?YAm`Qard-?L-1M*ayw=>{(z3j6WlQ@ak%=0nl8MhV2>3Qx)Lb~@V+zbn6aC~Vg8-(9n*ZW zD@_Y;=V7|xm;bKZpIWtC=d=C1W{Nb<=q1d>f;cRKd$l*!F&>S9^KSE5RP6aOlNt zir+8*9;?ui!Jgpv3T8`lYsgJ8w{ocSuM@9Gp>#Jbthyg_P=+h){YjB2zBaSVtrfs) zrXOym0aPQs3NKM?5-t}86@sHtPeyh1)1?nWEh~4wCw2{DI)@WFn0!3v zpU^qF-rEyO{-BPyrVw>f_viU(yL}&9_?IYzcTnM=hR%A!sZ9O$I9`ppPn)sIv=w1> z5(X;R_NXa`gvr#?#2tyft^Fsp2FaHWemu|U`+o5Q&B(7~z><|SceKQ~Z;}CEerUGc zylbqKN&>Mu%jZ50qYvUtmu4|e)RnMRnK=%Vo@wh`XwzBfX6gb_7cwgn_1Z~GR+{^> z&e(ype39wvi^Y2WJgPB^LYDwjwLF%Frs`_A?sJu1EQP9{oqR-9z!}IjqG4o3{?ZCa_D?ZNw zLuqY#*}Row<=7Z{Y3_dPeUUF;kPk(61KZp>jYG>p6(lQuCHPgJ&p}twmVsh}Pjm{9 z>|zfOb+jwARKB>Mz};+hmNX1BoS4%57dlfK_sS%H4L1AcZaqz|*}Cc^4-kKHkJPh~ z3|koj$&vlRCBE#g_V;N&%stJNftJo2XsMSr?>0c@|GNSNWpv%LCk2qEedYpr0`13! z%CT;TqFl-oux}?BRvyBhES~3Gx>S^&_eIVFazcqU>@o2o665RlVNqAAFewtDupSW zuKe-GA;EV>>N*7TECM!-D$TRh0!!!h=M`~N2v4r1gUXQ2H*o0_0Y;do$JfCxaF^wJ z$*R1Ut;wfgQvQ1R#$IC|FcqOhU=w2DXNdJK7rT>Q|p;Rn$YzpmNDYQo*JcB>dPk+vjo*V@Wv)? zr91mIx%%4%LALN-xrj*+jkne46~B@LmmOMQ;X};ly79(TKbn zP2oNkawWK-si_ckw#Zqxtbe;MdMLN6@Uj!?(T~tiBJ!eYR91)C6jBxXpsd&?y4#u4 zQMHV{xlf(?tiR_2}oaKgwU}<JFzjbVEH;ic_=MXwFDhJ{_L=qx zs0a^gi#}L{R9uc3;$=8sZ!Zc>tXjvt{>nt2O^>BCKGIbh(Re9SOwlAOktBL@?LL;f z^EiJl-ejRX@#gRd^&DA=Y4DUDSA^3)6KP4m{NE*_v-8rF^xu_%Q6AiW@k+dnSV4!j z39gXC2|lMfaN7j4ZSVLV?bFOljJxAdM}DC!$QnN|iTy<2Hh0mE_5WmAIC~g~(S3<> zl>PlyW@}OZ$m}O5ZJOebAEWo9oUk87kjidk6X7>DpdIycy%%B1tNUyK^?2XYY?>RN z@%4ysX$GpRj%b3^)EGWQyg8J-?AZJj%X)*Vp?!i3sjpmJff-YygJaB4lwDWB>`PKm zW!R&VQtOtR7uq&Ymjk*iwXVA^aL9t*yuI5!275B_7oZvI(<-g`z8GA?DpeeVG)GL+ zre!cOEo=4i4H?+Zji~Rc9K*NT-`8<#T!mWngt#!S{Zh|CD& z6ynQV+FSUVzqB7FP|QGrV+GzR$;>rl_mgYax~SvG-6>9WtpUslup z?wASj;!W{Gm~*lkmxxXEmpf5R(o7w#0_|x`mJi=7oFx#>0yT!vLaz<=6wx8)$^3`d zC3GY3!(cERmtgDUQA?01)rnkGK=CvBS|pshBmk{@UM+SDp+=jYBw^ncWIrkJbylvD zt&AdCs@yRhgBCL<7CexvmcG~H>%}BfTE|?hDeN|B+95+5kzS~~1AotrHt5T$r_y+( zuMf&ca1Qz9Qn*oMzMS~Ot(IJXN>50HZsDr`s7${j8$mKKLLB8=ElF+I(`1PLS!Mv&WuH9({hh*U=JvHqxfhNTvBamfZf4#sH}>guB;ihsTfj5TqL zoX!l*J-~cJNJRGc<}f+P50Rh$O0HKUlP!u3n)w*?>U>f*ECo_8`3Zl0F4=t^@zDsZ z0}XN=0V|0L1-D09auQr$ceNW4$kMklb=+oPj_Mqok4+kDo}t0e*9%%*kXp zJ?t(y5Sw=0pxVw|ZT7t=nOXEV9Q&_QZL&V@F3(9H=ez^?L~}w35}mtTh^xH`t+k!3 z3Jh0Asm)g70y$^U(LSpoQuaY&T2k*aF&->}MFH66@_%D>{4`Dk~`*UypwUE^C z-VkkD^rxTepT|;wAkwRqf2co9QU$3qMWNQsT69$VS1Fo9hhRS3izHFBgZ!dhNVcQ@ zi}pJe*lp||hl4WOY1wa-ji}?(37}G?`}_b(V9w&$i@2Y#*4c5c)5jozW#c>>tqwhG zU-YP%%|&c_1eV))O$nu~yB0Vku3ekHoWTRE`?`dO{3y-IKnIe)(qM5^FPcvwiFBP= z^XhvPI@;b)N}u69YP6B>uIS%aO%n*Wa)3k)WLPX>7<{7-MHhunE1^l@p3%Q$lErvu z7_h$;;zdW_8lGxi9NqJ)K$IyGiHS~L>a21r2TQdJFhWsy&J>C_o|@c)X_LCD!)u_; zeUbLz;c(9Eg;(OY?kDQH+*v?Z2tGIcN6WUD{irh12LQ{E#8R5C>PQdC4`mYKP%kUC zq+OdujgimMg^%2tHpEj$4VIRv9xNT0I&t=0hw3UU;~jwaYUB{q<9@PWbnoj$RT zEEoiKlZ8jdoU|Ql7hyBh927j43 zZ&t9C>rQoa{_#U)uGQeV2rz6mO=h%>c7WbGAL93#Jz z6ZicErl6FD$`MPIk*Q8XO;(CiMY0~ksh3CcS$AV}d2gc?Tlo}1q`dV&S76=C2|MgT z07wgtk)vX$WYLYpEkUS}o0w$p5mEVqfupp&k4wBGu(@Xczp-m8=?pw6&g4?f!=D8X#Z}@z7an5*q42&0Bkwwwy!OHI`px3tJ zpq0soIsK|Ng3A4-J=iVhEI(L9S4h^HqWo8jKJ%VcJC!(JuFvPRExB0&jYwL7!i^QZ zVU5@Ta(fgg#Zu~bvvz=6rG!ezh=gdwOxq*tWBrRy z9p0ogTp?O!es*BK6PX{^x8V7|q{Zzcx6h&-^~9VQirJ$QdCvzbsp{KHjC&-r?^PLs z(uCKTOZ9NM%M6%QZ;KrxQ8boFt;^}6879tc@HmR;`4m~GjU2q1%~zh4&(Z_HMq_RR z=0_PcLgn9IHaoUt#8HVO3cc`R>iOYK%jenEVGg7Iu6xd=<=|LO_CD1;&A3`)KGJ%O z-lw<9Zn3CQw+p4ip4Y`JllOK@sLIjo1jsBn%l7<7e~C{a2s@Oq#{0l6%rO z%PPA*xtJp_%pb0zoPE+=sPS8LwSQn>Y<>(U(}%%$H*7|5ke;apNMm2gd|daYTW6n- zcuJdmC+HoM)rHF@3D3{jYj{K6jxAMmi`+5$pwGcMBfWE?9@a6dpL;^JeRz5boTZU8 zlH91hYu>9~OsJ8GfsHvqG+1ugZu*J#me?Uo-_EJDd1B+QmgkMQm;l#+ZQFR_FQMol1%b(OgM?OxhSUe2T_R`Wi(JH0o$6|w^q zEY8C$RsHI<9qk1_-Me>VaUm9Pg=0tMbuQtjpCl&5zr|@TjF6(+5B8&$@b(&J=`Z^l zbhlTgFH$lThe;tbPLj%u#zy5P*%JAF?SmzIr)GuL?ZTC=&7R{VhEl{6ru!ySTJgjCjBhg9 z&t;=@EtdzjP9g7A(Hauj_7=b$f$inD5leVMy-`D%o5mW(?QA0CV2pGnWn^ z@JVr7n8~q}DQRc!Iuccm(=Hldp68m|5Mt7z?$^1oNM zEA}D%{Mg_G-f^nDh$1@v=|+KW5o#5Y(Y;@d%M97-6m5iQla_LT!gQs%!O1!DIr5Er z2>3+zZ5SgqjnVI?3smg2Z%b%{8(z#AKsA8@-fD><0cOQ^nOi26V4oRwd)249%Mwm9 z+7}3o)hs&=GDoS%&GY{cp*s(cD6?rl~rZ6(i7a+W)RN?@EBF;E7p%<;VNgpLmu@7mhT9!*T!c*nM$|{=~0szNRLJ z|MwQJP(d_7SM*~)T;6B;g){rp2#O;|uFZGrg%H2a=Krp!zdELXDs!EtHm5EqZao8F z-G0lH{Hj)#`Auv6N)_p+v#aROHP0COs~ou5gB3)*=pHU|0txJGK5*(et)L z|EQqkH=V5C^=8dOG4&J6`!kL}$APs#tD?lOTa%f&(e8os(&HK5;jGg--pa7f^A{1L zc6`Ly7$qj=&Fl{n3w_qKUxlRV^5|j*G4GyV2{?VVL3g$iWB1TGq{cUPh}uh|YnE%Z zk`*>+yVTG*yF_)1*<7Zcsa@QwAAN`ea%iUY&18B^fA{xa(*=v~cD6d~Ao9pn(;2=8 zGLZsJ8ZnmwZk!-?l4n-`QgvMdmAI$7tXS|5ztKN^tM-{HLyzxX6{0=wQXx8OjMnpn zY%t=xkcrjcMxMVuv5;3r8SM+c5?w8O0n| zY*$%0BW%e01RUT#)q(eRyLsg4-ZD&TN}Hyj3wxQYsS9Dw)9!%xs`j_!81T;1lof?u|-jpQ;!&o(6U{H*Jk9*m@sZ*`1uZVOQR(1~c~N zzp}qSTvXEf_O#W?vv+pFz$0L)c^u@OH`~wB+2bg!|J>SjR3039F`@eBmT2AB@`Wxz zHbuhE@*y&uzrZ8lBItbV4-Lw+=*bh430b|}m1pgCn+)K(d98n``8Q+Vn9ygHyhXaZxa9$s@cC*~Gg zv@293TEf|h%+sA;dV8i`o9oFJvv|1pb47yhV@5;rF(043wyb- zPBch@%z;4_+_Mh*kp1y#C1@5Phf`jAldhJ2W$QNggYLvXE_`NK3(i>_qd>WFPD8~~ zsIOnNyS9R7CECI`hA^~0y-mGRl7joX7;qqZ+@e=VrgpU`(7?UMw6%EOzgcl&GJ9JK z+F4yw_TKh?7#t$;##2O~AHYeUP@qaOYcX=d=Ae?ah3cvMriIkDa zqkuER4L-A@RANNPh2GJo3^Ty1xZJ85zk~g3l(%7&(JY?Sl?O2+aYG$(%D!nN57dr! za6(@3W%HU}rFce$o&cnzP^G_dXQ_#tUPm^=dGk^ezZ_KH>Lm>fL{dTD0$L+s3M88T zv7NYy2TkNK{9Vyi(Ox){yDUV@?JHzk*FM;(c+PID)`JI}R+4XJV4>a6*3mv*OG!KH zCk|}RVGYMk9%6vvq;?*%BWqM;9~ATt8pt1N!}TLZ{_^u@G>XyB)V47 zK<5c5Gqk@uzDtb)AdR+$`Ig$b-688+O?EJl;&2+tKo!9iAu(86a1_;e%4@i5ZSKK~ zoPzyyhS&d0x`aD+ec*o@@AReJqMSO1= zflFDpLrypdN*r{|w;cXpZexs-!>fegffsTVA=35U|E?4@$MG}ydg<^`F0a-c;Cn$T`^6lKp%|^~umT;mmJiS2m;|a(KfORh8=`kZ;ENMEeja z@Ei4hNPr!&Ip94E=9D}@kaagHre%eF79Sg$cNjo0U_Dz<2;*ZJA*_}vf86pyO58t9 zM#9(KC@47-l2L~hXzbpBkX(8Po@B4jc(f?(Gtd1A4O;N4Lw$9pCR1g(^%~yaca#3Y zpdc$C@weyM1>K+RBLs0@Bir>Gv_f%f?ex*xNuDLAF(5w^LwvvK%XO=%m#7gm^ZJBQ zn}u=C)+GaUzsK?~-)M^X)Soe#A*w%6&&&it{B6bV%T9f4PVtW^VvV;-FYn%+LLSZT zpw1utfqd`YWmvs1G$SwF*yw}P%#Rh5>#NicPMYvn~0@cpajkK7QxOb)n6-HC;XG0(50^{NxBX~)?NzkbGev(P| zE8|AKEn^ZK)hGtmz#>B$$gS;PsM$f{v~Qr;B&sl zEZ(q_r2?g#R-&2<_#w&NToh|0^xR}}7iduhr9%lY#>J1tly>;SsXL;XuX1bI;%4Ys zpRts_LGHlVJ3`FV+41@iibR3Gls{33rG9 z-3_a1ofnD5>>Q2U{B(LUYHb z%hsA5HRr;MZn4 z<)UMKqQMu(5R8&QlDloEYhhPG$YNLitCIodGk?_~w@}5dP4j^tGmM&vp?{R;3y|So zw=7hwGA$+q`}r!py)U!LZmXjvM=yW=p*Dal7T^7Bh8-@G?k5ETrDYUw$qUM5Iampo zmgF&o>V(?MF^GCd3{09MhL+70>l7DdlKH6Qzbm8rcc7L1kYcb)U&x-f{?)!YJCAh2 zCy)TnN;SeWj}-pGVaP{`9BEnV1i72M)-#RMLCpSG{q~#w1`iici=J1OZm(IzWd)h@ zSo)#>$WGj3xJ)Qs1{w`)*d%RpF5-au%k5KHXegXa$3v-ACnfdKRzlJvk+GYbiHJ&l(yv22z#I?8ql*(0x5F`UPcbVUAwc7?UK2+U+M(-_s;pdAbG< z9xcykuxfa1YrHSuZ%fiAip0>X73M!s%sw&t86A?^GmvxZ$NZDmV4^DEAKJ@7qIoxu z1Mv{;LY_0E{kJ4b&o9Yt3k*7}hb?af9kjJmeQ1uL7(f~iAU3&<;)s~3ewQWg7o+x@ z%DwFTS>Dq+J-ghto~Ec~s{*}*L5=ZfJHGbj8K4IHl(Dw?GpBzf-p~l3TTat4}i%iJ!K{7NHmO$}~=Bb+*$x zW_wU5x86FyeRNmnMD$qeqNW3arw06vi-|+-oL2BOpbXJ)AT%eY7BMLE`)?8x-IlS{ zi#URVIYBVuE_cxC?(24Vz5<-KC71zU_C6$5lun-)rMi-U5PU!StukBV)elF7VK#}$ z>~zE2WF!q#Pk!CXoghQh*d!g9|0E0ajnM!KVp*9WvHsq74(OG`;v&loaPkyw-)e6A~sC7m)bON9)e>$&0Z;D4dzkjx*lXB1>#NB#34k3aBvk0jP;fcLEtL zB8&7=BpGQKj5{IrPnq+QA)Utl>!1I-A_<~y!0{1+(1AkI0J|^0sBHff+Tmbq=TwI& zX2|bF^X;_04rQZ{PM_QZ$_cGOjAr8EY!9|E8Cl?J-PRZA+FyoT|JO44f4(&S8~=Y) zH)?;XS^6VMb?rb=>nnerzfnn+LX~sf&l&!CZ;kn5szinWWa~Gdm&g#rqSwLWpwqN7 zi+gm$BjEJy(fMeyh$CMiXUxb3*Ql!9gILFhx?m?$KXLeamg$eAZlN;P`Y> zD$ue?`^z5nv$hw4=%!FE9>SDxtGUqjl00MFM@lG;?axHegDH= z5V8K*&PB4RRB4?%({-pxy3{&%UFjQJYX#;v_8Zw`LVvNDkqz@hC>!~s_T#OM7Q~nE~ z?Up-75jFZkyK2wbHwz?4is{rA3J68HYpTYIFt_ynd)xC91%bQ>=2$SVj}T&(RLDu7 z^5&D~Vl8sC`FpeBaVR5GT&8JOsCxmQFq2bA@T7bhJ#k45Zj7O5 z_q;CGVPLzJqLzyN-1vY6+VLZuG_RtV)9Ry3H&y%Xg)+a?_qj_eyW@ z${-{XbUmh(*r&Tq1|!6_XQ}t}t}ImLyCQ0OFb+Hma8h1;}VflJ(fm+Be%}t z65+1!>#n!q<>W$?z#S0lGRE<>?cY*j26f$3BZrm8wR_jCmB?{{#0pE#FY1hSjPHY1 zA5}^I&$fOvN)~uH4B$;7?-BrDzA*{_KP1SD0g*#z|$!;9;S<&pisdtC_(huH`VY-isHzV=DNxO5rWY%!GcL5eBS-mfJ50 zwc6Ytnyn`ogem7X#hrBjO6rr$Ndcu$Xnq(E?|-sy0hd~8H*B?7Ac`Q|;s$zt>sETe z40n}MeD$f}7Uo#>qOyw?W=Yn;-fEEH_%mJIHhD#Du6q;Wv;Z&_O{rsMdu5c04KS{1f8+?6B$5H5AWl9hwtC{kI}GSejthjnsCP=d8Vc=M+h!~VN@t_XU0}_Mb3FO zR)F1X#OIYeG*K=uo!}J|>hGHWce{8=Dt8`ojg0RLmaU%d&KFr1w)U@&te}0rrO@-I zSm+o~`)65TXmjdVDdYhz-F@7my?#Z1et!q^tZL!K(rmhz3zKU= z6^ER+?anH#MszVhkZtLfmPvJktLb1kFk=9A8FJeFJcS*6+fpLn`}RrTpW=^HgnCjtSUw5e zY_saL%?nR&56;>Ng~w)+6QQ2*L3qsL&Qxsn)v(oOn!9PL3lPy<%(*;bOWM{t!+U&w zcX?~O!?R{%oloa&WR}%_wm9Wr{U|FVW69srZY=v8F7vDFE?FStE6`wVm~afhwk$=x z(-peI_-d8^GV8R!W#CAbl)DlAwxl6!{_M1LI=fSOc9|mhh!jT?neysf@1@a3N-K40 zq#DqzV6NLQCDrx)46aFL4#c+qGbPmECz#?Q>F9Txd;4QlR&VU-)77jktq6lp&^R5% zJ`4lTc*okN-=VgY^w4Zmv!_b+z52 z_p-1E71EJO;(g)${h8TgXJO0hDz+u>*ggR6y-7ucPNPI#A$QAy2%e@@?c3kGD!ucM z)&p8>o#oC(o)JcdS~GVAx@N-mT45*8Pasz#eyP>Q0Y9?s38tLf(3LIm20Y_!*-WmH zEAV~Cd$=q}T%pMg15@R-%s{_HZ|scW5+u#@!R~&90(zN-K*bI=9sh=^nkIrxkRz3e zUM9ga7d4261(V&hxbDX351N@%v?6|cwMt1s8?~d-|#)+9IS4+9piihRW?j$5QB%Dw- z;zqjOGoPIiktEzzS8DTnQTz9U=U%(Z+(uJpm59`v8X^>d>nZ&{Dx7O`$F#<&fCH`acr{sL`|TBSTg`O!3>AM&p(+%8Um8{KR7^#s8z-gx^>RDP9fVHaAMyuou=fG@ z<*+*i1(3*|4qPXgv45S-pYNt)6plWaN%g|6Dezsv%~zpZe|nWJs}uW7vb4+G!s+nd zWKq%gFdd?IAB6t$F11AM8k`EFKt%|5%qlUM{k7h{{_kd&2=VVyb#z7W0u^%(^+tmp zjC;+CTo6i&9;k{x_g?e93Cgi-jw+DGc4*;j@b~dt1cX!paa2GIxl1sd_NI{`30=A6WP7qFfEg74wXd7QNLaDDy=ygkQ0&!6)%Z1yERq6-f zLyx_j|L~zS|Cnqe>19xgPWA>&CVd?Wok}9~z20oZ2y+kY7|u-|`~0tx`Iaj`Yh9$O zXNN|a)#k6~q;fZw8Kq}_hMET(%dNWa2t?33-7RGEOdFQF~n(28I&2hYoZ_O)be zsiixIsAXwl=j=j&hpqO;vn3pZ^v%Ra6Yja%O1yySAq00#wS7tgo(6$eB9}#7ijq`l zNI{I*0;*`E9$$7F4JPOM%7iMsrp$;tu$wtP(cdi`!jxQX_Eau1N8G~v#px*bNWEl| zLNQPpRKr-Ha>-iP$X0^q<5vPoh3G7M4JoSDP(dOwVaLIO}b7U`m+ALtJ%{{ z3)J_oCf7eES1ZLOH-;;qyJ&tX-BmClcE^`a1r%~GFS&94f@Yv5ZT=|dM6fqBbxfAd z-0PZjiaeg@p1h>SNB(^5;iE&rRCg8jgz>}tM$tb3Iq&_dCLjF3Lp|aT5gh6?h_&A^ zWtq5dpWfQuUTbY|U2lB2(O4JYD~l=90q-^Y zo*Zc>fUh7fnHp{xfvpqx~;FsD^z``BDHP`xaMbvM}Jn*5=S zo}G?7Y(QxCED9@P&>tdmBTQPlA1A&6plH3YE;6qw{if&=qIo+mcIx4zu~8ZLwl=U$ zxacD6h;>zlvqi9%UJ~|ptbXw@`OwDGrnh~po=@8mB3%T@Es^C4PCyh0Flf&EnH1mP z@qMYQCG`2gC6;1V4b?D9vmjm^&8R%T;z-wan@!fUwysA|P;mX{U=MeHM4Y5BJ&FOy z;TZcWQ6X#MYlg3<-?GZK=b5F%kwz7HAX*+Ii*d=`0O)a50W%0@V(2mqKm z6F6VoB-5tV<^i?9q%4plyD2PuMq_MLmk#EsP2P1@GGR*xZGM-V)C;uW(06_=6!v>)fZJqQbXz`;J7;?2t~XVs zTT*Ns>jbj9A+4c7>KSEoqff2#$Gno|9|)~6AKtiS;w2k;SeQr7N$|jLZ?Jx;`;=>u z@9}j8VclshRH(gpT3cPaJgSlH^0zL~Uq#o!W3s(6!m8faj}O5c((w0JT5(uSXRM)*|$JJ*Nj7O&I146k^Oja&$*SatJW@Ibv- z0(~u45?~C`(F7Os!%-qL0&i?pV|t3HsrG2EjU%TWXSk%%>HMKaCxXgMSo`?`dq0QY zo-zt--F9vf2m6-GyhnXj5t`1l4qn!9N^-8hHjbicx<Big#QQ4Mc8 zWzez~8WOLxDz%QxZJNpE&oDoj^~wv-z_lmJG53>X?l}C5!^V%+>y7)EN2R>*bnEYz zKynmhhXuD#Md2q@g5duJ39?=NZ{q(^dz(Z3gBku3j+)+TUs zZ*Jydn6&!Yxc~ ziU5YyjE-f4M@Pqse{V*xlIgJCyBeec+?L8B~>-t6nxwNTZ%# zO=p9k0M%i9Z0qUIRTsaV&azOKBaLGv)TIv!1Vds` z#>hlu#u}Ah5W!O*hDFF$D%H}qB!oeG`Kh3^8-^D-9ruZvmc;i&=gcC z%8m5`)^mNN*a-`+Y zKTodaY;?O(O*n>ePVu$;uf{R%CM8Gba%FEi=L{^hHz_JshmdTIeVIv(+i^v`Aufuh z_Hjeyg^(J7A8_PmHXYdKDm4Nk{csWZ!Qe% zMQm^zcmn!8oV$j1XZ0*>}67&vOJt4>w*+(zX0?qJ9k z>?XILJZ&QoypSSG#m2`*Wpw@07A~U4HPgAE74m0q_FB}p$u{Z;!sP?sH{P^8^lc}4 zD1F#9ov)|eNkCcjESj8^Rz}5x#*~@o2!B}-Z?vx#`@Ap*&Y&bhoaruKN_e?DB^r>$oi@~Le1}$ASN{4*@M^8!t=gl! zR3h`3AB>TGGTr#cujuj-;SeCu&SmMhbDS^^jN+x zXL?r}YBlZ#9k~hnA21!iBkd=3(M0^VDjNXUx2Sn_`+v2x(f8ufSh5k*X4zY|`6pMo z=k|%Eg}QO~lwq+m>pk4cHNPkA z3sd~r;c=#B-yv77#>AUt(u4cc+gP$>#gg(0aB!e4zm60h!AQM96uUeWc&$ne6f&*W zS9vH;*l7lq4fvgY@b*^qMKySt7QKBFInedE<`cCXiVR0ciZE8WwK&`r-c$VYWhUF$ zVqG7DIbYeJ=VT`{_iu|0`QGU@L*X}`Do3{p?m(35l2?(##m-r{X7hPSHk<<{5kjQt z6SXBnYM@b%)75|Axb~y0-_pyX0oWw&>wB>PyPJ#UkUxC&w=|56F7S45F(oR$V0&%&xJpa8+;LXB~l^%s`lj#(!#N? zj}E_MS>m94E}NiL2SLp*nlHrZZtlxuW8-iY3v&x&5S)4vENZ?@vJ=C%gyu`KRZRKk z1BRIObJZk-Ir%L`D|FQx!`aew$c@xD0)m`}+ZD$@CVM*ua+C*+@Tth6hs|t*u3f9Z z|C9W|)_=5TbR~vZe{2f%MOik|;}gDpQi&^K+o1gr8L@2~lv#4(yXhw3HUHw2k>iZT zM~A`Tex7f(lXfW$W9Ak$(WdMLIp!}PVIfToN|`z%bT#?p*D-( zyha*_r}D_HAq}7nZamX?+4cB79}bD@@3L7X^`*=>?&=vwCT`?reOW45>HN8uf7Gtw z4}Y^VpMzuSga0nZ6Uli(^{^*oF%PMxBC!j?4^EC1*M`i7*K7X-0<(W`Is9<${!v(# zGu|9c1%T^AjgnWZ9!aXulRp|G%O~}y>1xzyZnJcP?&X=(*JUf)rjL{h4O+53-BBUY z*T=Mok%^?q4z6LzzsTnl2V`k?u(^Ek%M@x~S`wNjoND6J(s;@eIh=DXmyk=5m#-y0 zBCbI175vLCbofI^W{$c~#X(<`nog_vB)iRT0jo7Y)fyK6A6M`F&jugA|LU!+Ql(36 zX^Yx>@4Evv~?bS@1pVb+Sk%ai>Vw)U8|gG$h@I16J!phrnt?@BtzN@nl{KRk*B z13|GCt_PTasrK+=fNXmH3S8P4ggYMDMg%SN8<^Mpk#ed?ebURut~m7X(%JjV#ra`} z$woq)vH7BY*zDST%Vzlg-g$ME;&`ms-sptaXzkg-rO<2%Z0NAny2EX%U(lat#w>yH z-h1u&A$5oGy8v#j8!U%8+8@r2d0wxsomlIj#o(ENdyB4O5sQ(8((f*0C6m`?N<}TE zdo`;yxj*)Dv019adL?i-a2O#m<6c?sSBLZ%Er$>7ODqqCj=Y|(|7M_w$SmD>E7aJg zQUI5|-`E_23Php87K8TtppVvDm`r+%GUeFHoW|1;L8~FMyRzx9h2rgrdANmTxL;-` z2d&lVs7AKyY6rOCero`V? z4$-hShS~+Jg+n9De;rb5HDH40q86&DNrGEr)i88^DrlxiYs$c&1Hu_D729(*pdcZb%SMk;xDo-j4-lU?pw!|RUQGCzkE;P zYQQ3bCBkN0EKhcC6v+kBTN`@>Wa(>m>jP0J2~2?Z^ohZNW@kpmEb>JwLu`(7d`<=rrf&V zB2c7ED>rqm1^yu6`AC!4x#%YD+LpVXhZmYEv)p&njpkwj2=($YE_rUp5WM@>E+yXj z3p3x?ns7G?^;c1;3EQjIJ@$hgk4~!7eo{}JZrZ;oT95Y_G>xn&R(P|Gi1Xzf!mfNoav`tsNJue9`NuG8>^0vc1Y%bxDqr#lkivw^O%@Rm8Wm_lPEIS}|~ z#CBm*?{rwXkI*$8Ut_~vjM0GfHg4^lI=bXx^d<+-=lP%yJT23~2NsFh!S4u>y;4Pg zhC+t4ps{_K*Qa!Jr9+Q%96h$zs59rmf`*WNJH3i2P;Ip627iQkW|08aj1xF`aKfPw zS2*#kmrLsO)%V!FZ%p(yt`ZxDG(o={hZbqMGfdhr>_Y}1+#YD#TO!l$q=LlWL%(`z zlB-;msmhrE8D(Cu7<*}NWj(d%+V7!Ps;$NLO61Ea55)&e35yWv@vS<^_BBK-UIJS3 zfJljCOGTrfYxq?bk$r^4=r9Z!A$N*X(R=}I1kXo$X_@p8za&E(^Au0^bM6k~)WJin zQ3!s)8WB0ZF?}l$*-;SH;TQu>)K{wa6QFBGM}*ewonZ92cL%GXU!Y{s#dg3yU>Uqz zVM28R`%ca9?OtBHYMIX36Vc8Vr^sG&zCPOZFcx7+h$H3_g>}ZpbGdf4a6ji8sHi3> zGS)^j1R#{n)KIeN#w#VeNVYOtv0wG|x#xiG#or!@{?w^8s)AkK)jC5!q8IhY-owBP z#i^Y+SG?6LF^{=l|8C41$Pf4hzfNU#SR{!iT_iQPKO4BJB8D@0$omKz%MMT&`^okM zJ2BTEC!Le$9wThJY9tZS=PrE9ZOX2}yHIcL@-sn$jT{y&wNDq{IlBH4GM3fk@M~-p zbW&yBoPn9=Lrhyi1{dV&>fG|Hu(-1OEH%yxGX3jZg2v1RFWKj$>>>;leidmN$o!X^ z9sD!58aLN(ey)IV^(R!oU*v+xu`}BC z2TSn;!>=;1w3ErC$cv@j_O#@G)%-%?&E#Qj^7qWPAyd+wYLkzze`cG{bSpIK5iwmN z0sy=>HzZAoH#c286egva#~hzK*`V0G z%j)%j0fOUDKUh`PD5x(@g#C0kkVTHdw# zNBEq}BnR1%>U#jtkqC;fh^hk!P#Nf1FGW_kdd=r+-{rkLn@ zT&p30XJnlqH7Qubshoupc5h}~rsR7pA4)pNs;np|8Ay*G~?rVIwIP;aS#BOmOK1Z;C(6W*qOXeG?8Bebp zy;TDOwHXdEsN_N|6#az?zA=Fldyo8aTkms!!JLP3`te;BLAxPfz1>V77fg))ndyN{ zWa3-wZv)mgeB~wQFG;qIpN^6t>bB8cnsWSHnvB%UU1}5Y(P*$ZQT0yyxPP6oBZ{E0AOSPOVtph zg-;z(LEO@t%Fs`8UoQdHAbDz4kE$Ae@Y$?sqv35E`;B00?}X%(2MGmR!CeqevQ~s% zH;-8S-M7ZiwaqW2gysV+9M?w+EJ!tyIsi;TbzR1@T&uv8zx zB3f|yP|#6Yx2|EP*71GE7@Wm5-6vcl)wIa|<_D{0cQ$vJKjSt_$LV$d%Q8rRBH~8V zvrbn_`@2%IGOTc)Nq`jbM0~*Qjm>h@0CBp7^LtjQ7w@g8bnY}n zYWSS~BOQp_48!gX|6YuDOaqUl^hucnNPb(KBBoIxrMpU#C}WvIBZ?H+VG#KPOJh{M1+C_DEMZ zrYgRX3IO8fgQcYxDFlkxk=FbYTt@-Kmp2a!$yl=-@gNWRkvuY8SVj-V0JWtMfxCQg zfdsQ8El)3>X07*=q-zIjf220=)L7_m9EW4-Pq42j(p|(dtDCsfK%Lp<2|15NeV*e* z!(e>o(V3@bO}6Jj54$Lvq%fOvy++qTEfcd{7!P%l)__}gu1v#Swfw4WY$DbJe$3fc z$AcPc0>(}OD}}X1?~4(vYGN)(msDtc%X}^Se_#>Ks`1o6sr=uZTo|?fDPd8h^L~4y zmyVWOQY02;+}*@*9#R6U5tT=brNz{MKTztaAEL9ZWNI zl=*wHeQr2TCehp@zSaC>Bg{hivp$A_g+ENa5+sN_4igAS!9h|e%!zo$t+FRz_q0NT z#MR)NCB=b!sm&Q>@?+nQ%t1xrCd8+iT^!EG<*qt_UB8zv1wdjV<$Ui%wUqy1<-O{~ z=6?B$WO#X7s!p|W#z5-$cAE0rnxVf6Ag<;m#oz8y|yFMw03GC;iR>psJO$vUm)*;Ic$ zZPMbLjZy2@WD)#3O>6g32W@t<`gWV*Ub$egj9r|$MOc0rLGbJT4N9;{S{!xKZB|rlKK2j*JdEbN%d270%AOD zfJ}{!V|K5n_K`*B+Dd&nZ+DG`v!pS0&YbGma(#b5a{G{q&py|kmzotU?pWO3eEkDo zJYEE@xw^~GS8p9E;=dpkHiuG#dxg{drTG{NR>5C`A160>E+5_%3hKX_pCKN(`uH)n zTUqg!`PG0>ierju*q|b$xMK;SoKu;@nYff@?hWkQ_OKhR8Lg*;5K_jd4Hft95|tz- zh3j;Y;_iW)NN4tb;J9(nDitZEON!uP9)VK7tWB=vCK>d-Davx#|Hd@kXFb=4d#jR? z(^qMS|Ly#MIXzT6(;_81vX5rg6dHJ)8T5*oRi~HkM%W|tJphM)X_BFCDG4D5s3;U; zps1SmaIlq@kX1oh;ghlCDLt=2_*-dz%;@WAeSfj?a?oaz7`A zy>+gB-u^vgG~D$2=ZM?j(b5nR2gS@g&+iz`>lnk_KPeefU+;G(Lc}B_PI^AnRo1Ap zoZa$0mg~z9xY@}zAQ#e$)6E{lBLcMfN>y_k-6*CwI!ABk1d-41nCPO&8zd zLiUmL)7b_XHoGhZc((Y$bn^1fVn=@2e?&xUj)eNfLfMk9e_)Amc)~5Ai zEj_b?KTJfSI`?8C4CGwUyEerImae%$850=nOv z+R&^*)(m;_aZ1ybNB?I!4f7zjUsNTBNiqVg*vmpebk2EbDWy~zU(|=}Q1*iZ zQpbR9_1K{@RgyM6|4<3jW=uqE!=*+rj8d_zSjtl;T61&!@M3d>+ z_!S_hyTVoei|&1?w#j=L`#5k>qGe7&jkkNMw`KsMlxLA)5w&wvQ&x|KQFAMazD-IA zU15RuS9vUp1iN}*hq7rFlel_0RJB*nwp})IUM+`HjC@0*fleSXXmfw8;0g=HHKEJ+ z_z$4Ewo%=itdZF}OFeYas#pCt8J)etpBd(EoT3Xewr%Aw8B?&{qa^L#aG(sA&y`ns zp^Tq3?1$>9%@}?8-sVCcsQg{T!G#62g19GUNO~GCboll=ONgDmPJWJc;}Q0hN2(OW z(TO<#X6vX{c1XPU`HrFCRC!9{$o@8r33dYJ@?yy2VTq`=*_m^kukn~QAHz}YBK29QVEEch8^b#gF9>SGU7{p+oR93DTl@;a3t zWx+8sQ--4>*aduEN#KbHf`el90Yd10UhMwBVk*K|-_{L(>2;#k(x(TwxiML3pN?^r z{J!`h^3jV{?sDocg79$`xKbXX4(ggIT#;C;*LXm!NjRqb)c3o~KQCH;4ZZAx zlXl-r*%&XkJc@au6!EH%lS|V&{*H0S&}eFya6(pgRf2_a)xz-nr{xI0#*Ti5jeeX? zKAPTNp*d48xH)UW0~)-x_=yTypNhKV=n0M}wgaL{=^u)YJ^l%vG`J~$ooG>@rtF2@ z+P~EjuQbIy+U`&^+F9xh8vQxcmi9~rz7RI)IZR@|Q|P(&w?M7nau6o)Egr5i>w_xbN{ z>NHyW;fy9PJUxIl-!5q)gdksMx?Q_Mk{Gi&l`hXp9d|rzB^GsN=ZdooF5d2rfE;%O zu`a{WO*>&B2YQhVoxhMYsPH%C_O3hwo>zunM7Q#e+-Vv=2OMG-Y{QZwVL)y!4PnQxr zQtpEARGyJ1FVQtA+`D)ylOtR)^>~e2rp>~9(tMVX3_R~Q&9W53f$*18XS^3&RLhW; z_R9YDC@K!suk@Tb7PYfE zo)xVWaYD1~qcPJI)-&gsh*z~UTwcF!hHsb_O#}R~nUd)=jH~mHDQA!1vIT{y$}xQ1 z@(nr!LmGU?RK@ci5Vdlb2Cq0ZjEjlO z-Lf}(DTgv%e?4(4M|yKoVzsjZXlt11IdM4zW?j;_1{TRC_;B4yKpV3)v@9xLP7Ra3 z?YS)L(S7PzF1J)N@Aok+pO&-E_YEWr3K^g{y!v_pgAnluQAu@CXDet-6F&^^*Myx)t0Kw29F`iy((%jeWJT$X6i{=fL^ z|0l~a{{MRe_p3{Tp=Ko4$m)H@jbz@5Kf|Bwugm622hXos+q!G8HPO3a{O|Muf%LCV zyl&j2)?V)XyeZK`PKfJRYEmFcaK;zz3OcCDk?2_La*U5*May6nm9h6`JdG0Gy$?0&-kccwN(bV9U11}-Hd5o;xCv4aSa_OBNXE)>@>O>b` z(w$@z#C$Irm6)cF;V>&S@{pMYMiu#3ttSO4%Omf8Wqb~%Y@Ii3+|Hh@6sOW zmVZ%@d?=;j#1*qW_3(;)H^9&aI9OaK{3Srp!F|*?rI~L^bO$bniNPe7c$HE-HoY~x zwPHB##+J7)t!mFt>hyf6&MOKVnW-1?bU97goaz88%cZ^fXJk*qhCo`nLbf1Z>%?5n zbQjDT6*;dKY6g1(A!t-~=INtsDAwGTS43jlet2KWn;V?B-SN4(^D0fn3N5@jF`3r! zd`6M3@U@h^UYm_nB%b3l;!`ASJs8t5C|F$^!Rw(WN8QDQtE3wZtTXtV`-Rqc;I_-q z#UtX`Y9ZKf0BWUOPs$zl7C{bhUQo=ed5r6H)w{mAA_2yM{M+*HePn*oD%zh^Z3Hfh z>t*gbFaPe!3i-<_sS^bKy8{H9VyTN3lQoxzOR+Xgwj#J!Y?Y8^$7_%S1}Q!)INka4b}QbBsE*CbY+`cDW9 zU*+w;6vmMe$6xdGd9`%B(I$g+@pqGW_xu=O4AU7Ib%@eQl@>1^@)qbg5 zRdM!)09T7|&$ue~s8bYo*<_aY9^AHFrk5i4UqwjN_n3~sXVE$Z2p-GA0aVzoNQmI# zJcu`$2&dfJCrrh8i?Vh%1R*?sSc$&I^*kQ9Kl`Y)mG_4HUFqwGV-QJ^9dh9&VmXHH znjM^J%~E+L+DwURt~B;EugS%wd(9ytLNYB_{YWk9WRuT5oN>#2Wa0WeX{7GND!^%_ zME}YBk>8|+} zJIY3@TsM$cBBW0j(6stGD|bG#%VTdmTLS@~$vS*RviRs(17-O5+pthuHiV(W!8<+o zKd1Nqy@7&r{?UiBlfUS(z}C%tz7_TuG$BM3xQ!1Rwo48y)+!URYulUb(LKZ-HjBQx z+-?@1)2NN{svORr-}!Ls5jL~frrn!rEW?QEL7?e~+||pmz<8Wo{{zunrM3ki4G%qE zs6Ry`7cW`&&V~EJR>{=+1#Ew2qjWz)gU7>8W4J!gB*Qf%{4Y(__g!C^%!X8xiIOMv z=9q=aOjH?i0z8FROU_=Rw)Rf?inQg=z2tbZ;9pY<|C}SPru}^OpC(H7qt3T7;SYH7 zZ5&n26lZ!e&QJ=WyOjC!pW!Lj$-ap_qzs*?uHP`li9xq#V+rxAp8os;D1iuNJDtX= zgWya0FhU!C7e97$SDkf;wZe)G z2I8a9I{0~e(B7`NhmIWNLJXjGQ5sI?v5ZbqF3a}tA5!^KI^(rwmWOEexBfXnt(@kHP>$_&kiuT^ zpR9~oGxtHyDjm;)vXfQmrJX@MxlGu5-m=ML9kN&4gaB!R(6Yu=@wNLVhlic!TA(Km zy+*t&?`WQi8sep>KBg&_3x3#?PochgnUL%sLqolVv#pjO>Z#6!Fp12VbOh*+#ix4* zdWc_mja8nP&MY-Furch10$gva>eDrw= z0rsZCRA@*y|HpE3_L%0TXP|8;yn)(i&V`+M4Z^cPrLV?bbvXX~o^|Lsb2@=pa&=7uH4Y@6G$GJby9P2;>j*2n$;zXvF1M3A)JnE=+W3HEjncO(`_q z^sA%j9+Mkp7qlleZnfMcJGOo{#Lt`K1T%&fbb|Z-6YL0SmPF8k)R+{}eKN_scqX|4 z$tJ0^23QH9WDLpn?4S}t$XQ61iVwv&EjFZQ>uUVE6eaiPkyzxY6_&#Jd5^1w4o3a_ zf)k?AA$q{-KPRvgOyfaMH=Hbl?l6pQfE|DFRx4?a8ua>wyw3Q>i-v|~ww21|DeSjj z;JHiP*zpp=F|=RTJXo#44U#A!f3qlHngJcxiH@WDp+dCbJZaZ10k0_8zUTjs)JOa;6bsC2Vn=jUluT(-`_e?HIm z`0JQIbgy0}4nm!}-id2k*Kmn>m-eLE^qEl&xB?>GHbXzA^fY@GR+|54Sod69Q%qpa z81FRhoXilWR|huVOYki8Xf~@2#hr{_M3MDLg{@H5CWS(BigsO9E?NwcTdVqRE9j%2 zg#hpN>5|2%3VwftDzT|jE0BT=fj8qzV!p@aD!Ut{^RpdV2@H+9ppVOPbG!##dC9}^ z*f%pPOT^PabwIgpJ^d3(w+C5S65tX!w3wV7kpzUrFjtlrz2GsIji@q;9{{ zE~0jKQ3o*fheEfkoLcxPndx=uk1UYZlcc5nTW%Wnn>;vri`0V;yZWE4Koc zT556ZtWT7(JiGgIRX|8cE=0r@BW6qOf;etrhr(3pTSKtiuEsrUQblGHMZziHFi&z< z7Mmly_G>b;D;C3VlA3r_es>q%&jTG0L}%t`%Z;BpR#)9>J)B0ry6*jr6dWT=EO7oK zq&>5cpKg}gWSXC*yUVvT)#!-~qX=}9qdRKA-ZEgJo-aaueUlCP`MbCi+p_BBtdti0 z@LH#hu0F{gef^@&+oOFc3>i?PAseBnB9=lKni~YV_}! zjqS*J^62mae~F70);5mT(sCreB#0(05=8lD2+#uaZU0A2f4RZ#$4=g(mX}%04+7 zF3U`kT~1%;dZPa)MdO=Cmsn{<><(<7nHQe$VXw7M>ROVy(GImJ(qqxB1pqRaD!z&u z@HDGxak9oD?V?|rBI%zm0kLdkwABd3h&bF68eKpQT}0ip#E~PP+6t>llG9$)kAJWD z-4vXE@yTJ#X-qDvuGTeXazSvnOtn*xULU&$_?TnT!DSY;ydb^21x|$AOeRhz+A@w> zZaO}&`fAi>c<-yvp3H2+*E&2=JSmU^w$*0_vMQ8_fOjq^MQ}>nUsKiUuRHlD{Yu~d zma0ifQn*46HS%fJL*0GPbOR(h-yV7~4+xU-TOXZSL?x}`%t0!NocJe8cZS+2Lty#%ST>FUp*lC6qeOweZ;B3ss2)WBP zpk@QHO~@5C+j`FYb;%*Fbs}BJ)HgclRKV-`{4zvh7)RFnk)4vgP)~$T z+15Q^ej%%cO|Lzv`P{uFnF|CXK`c^zGOw=XIJ{q?e0TJ<(TgrJltF)XZhHR7s#`O4 zO(|#7+038I0GK|!^@lWGiIXhpLu>_^1rqya8;2q+fV00YqqMi$6bi{-S;5X$J?{o)(g+2)LpO=##d=Aypqp z-28IRF|9mdD>PEXKHiW!zx*=a2-_JR!X_-1yT(9xw}wN4?=v3S@O{^1?dCgFoXdVH`rki(O)Ipq=9lZlsm<7I zA1^CLIU$Qgx8Lc`vIG{2x~+|{PNOD9@Mqy3Zi|=>Em8z*@@5mu7!*T|e+`7xf zwml)9dZACP3^RqlBpa1^aJWRepIt;L1b=RB#_rGjc;CzR zOrA2Esi@d5d74gxxJ#JRHRBPn`|~6wzN<$Hm&o=`Ec&mR=8e?Hn=FXjrUR->;k>+ z4xp##70rMal!%?Fp#2|@))smRV5?$%0oWLZwthd;Mp-BV#KKq)?wldLv#qN~2dM1;vZ|h8y z;ZqsT9}`91Aa=`1!Rh~v7x}eB5Rf~gUZUr;mkhTE35zir{{#-Rx&=Max4QRE>iNNd zWy!saq^VV$G$cH^(LmjMP?hsDDual zs_ob7oK0y|+Z}s1iD8MViipnyNiz?EOuTUMe>ug_CbRf8XoIfZ)|$Ih@`RF8)^$S^-sM5DIlOGr*}1a~<5cO?xF)x~@Y&Ca|Jn_pS@gu*PE*1x!@ zuAv4&mP5hGT7D@HO1z#^;VZmc@2RWPvVYrl{H{Us)UPfTQdiaIBJma`?WX1}4TZrj zh`r;ghqd|smwx)zZ%81P@66^)b4zk`0X+huvrevL~=T>Cz zJp0t7llbqav}%XCo&}%Qi{DpR{wUfMSV7b#t4&Ob!)f~G4}~)aYNT;kU@X83lf)|)FLEb7M?)J=0)oG*Q>v^q7eY$TG5_l+J`?q z2RocIA6o3Hs@ZS*B3*w};kLFHwtItiaUwOtTL!nNXX@6$l)jV68)RXDRdAc%81u*w zlbzU^gV;@E4>kHHVWqhJTmRCuL_}b@EVk=db~cb<=Oul+l-%0g6Tr9)jJM4p{BdG$RU$57KIt#GA7+gf3fMo{o zZ0`5gvUG%OF-{q|a=}5fSvr4evee4P+K{Ma|0{E^@4on{yngXfd;K(?tX#ikCIA3c z!)KuRQ-3D*CAxf7?OE(fSv)lL^P6*Um9x9~m-}j*>a!O)SsIKr-@xsC1{93&#=lE2 z|CnD7Zx`n$!f4_t%w5++adM~5VE0mtq1iElvj8Nb5CQ{I_tMj;lsjFX-I~C=&5Pn$ z*uX9omGj2_;)@1#MG%%joz2}k)DDH}ti6}?bD8hd;oY@!!p~kdDiyr+8f5I~KGA}` zC&wcSFH9D)K>qn@f)Hx!W5_Du2^upZ=XhoLHJIYI`zg6g7POAw!(>Tvkx}5!v97k- zDOK^cviVikAD&{Wu-ySDpg|xe-0Ivs+yz@+(^#L;w{H}}pDsIi+lpVq|DE5PTL0Al zc5OSTZk@B5U*+EbQQ_A|3hkMr5+AWLxEp5Bx47QxI z)Hz3b%%g?D#cY}!0aT+zu>wQzgl@jcY9)|jTvd~mxv7w#v6R*z|7odk0?_H<@Kf}` z=%*Eh7ut_7Ab#e9dXf64HX@7wc$vk4Dtc4HggZwRaBSS^fK>h*K;W=DIF6UBMFSNE zK_bVa>!;D}*cxV)L2{o`glJZo0{w2qeWX@)$AXV#TzmG%HFLNqT%q}r(~6h682$*k z{B5U3CHf2oFPokOhhAnc_wMiVHq~ZmC-h-luhb5aj&2^l2i*L1c;ggHcjiv!Zs)T2 z;-J`YpI9FxBYRd8tc6n4f{Y@o*9r}`t;8*m$0sHyP>gEWk~%l(=0`s}_2j#GMoB~E zg}acZJ_QOb5w$<= z2cp$o4tQ{r7o#?5)vFB2emDC4cSo?ZTpE#92KVT+3ZS_rt#u|T)k*GkZhbd1%|Oo# z&a7q)8uCXjQ(f4#X^BI3<-jEgl1i=>vHOm|J5h;6GqwczT%0pQit7dMJ5urg;NM6!|b-|o-EW?d~c?- z#)@}BT@3hA5f6EY(qjKH=>N(^oJH7wP{PA@++ec{rP7THurNNQC9Ll(hLvobC_KAd z+Yoth?F+vvACY+v_ODHN{xRX<%G4j%C_DM3@{lBkI~_*3Rs-|Q9=_)BBRm3MhC zWs5F4bB$RL8tFS^Fm;VCd|J~VHk9Lt%*#3SIF2Rv8YejzzE~ zVaLbFfgHC9cUuLU1~nK8nfdJ~gvzOi3AUP`LJYYR62gC{`_$w(A$~v^t@S-mJe*dE zC%c~K+TpTf590H#77pTY0?O-8gw_yVa4i}CBul>Wo{Hym)ZNmhH@oeLUVJWC6Y5Sh zN)euK_-FdBfR5p8EsEP`@FY3QCWVl~aD`C{ z?XvAZV>Qd4)Ce;drLL7XPmhA?H{+vg>Y$iYt&#LpZ)gK zNI?c``|u60KWn>EBDkT&zZ2Z@2+yX+Lt;+n0WhQdbGB*lOB%aQ25fx(i^hA`eP6lfGvrh07(!JKND*AjZ!?u;jUN zpJS_1(9_J3jF40U>8s6)3t0H#J>a<^iwU!_;;V*erE`0+DN%k=Y><-+xQAYr@xm(fGHrcR};n?Su#*0n|N$2wV4(G_Va{VRyZe3 zzMvj3{Uxu&#h8>%l`!jkrK8 z4H;@VzH)w0Gl_IyS(cWXYdbdh(82YQA%{TKSR%cVourAD&n<#0iXoH8&rYiLUsu0* zu`VGPEOnlxBm1%v(dIHfL6y<1M}gHQ!C|GqRB$pX0OyRz@x0sFPRo33FvrA!ECj`NRc z8a1_s!!gD6oUj}}k)u*{C)fQP5Pl+HWjtaf%ea}^V(NtQDC}>j!MWRuRxoLBIR~R* zi||vfaiZ$23bN9}^E*=y59cEM?SH%>jr*3bBf_lofO37u!3MbPAI+!|3!8bV)YOJq z!=6jdp+yz#bdo~cZj+pg1XUh>zb?Ri+qqtm=1QueVh@c|*4ZW3avwz}K7%1X9o~?o zKf4g5pT95muHMtrJL0ZdDO{u^Yx4MhT3Um-#krv#5QtgXU#+gkGLX;4@Us5aGu3|G zscKEp&!jW71^s)t9Lp59UZR6PDKbI0hVnG-FjTMLD7 zir#nH4-3tkoDIAri&#qeOG5}=$ro}Fuo}NJ&JGSfWwGR62-Bb!Os}s2B)Dkk{Ccn( z`cPidUm6y3{JRl<(;O=K6BcrR7Aw1wp5273j8C32{8qc~MzJB8N!1O5j17zo3{(d( zs5AKmoEYSM`nRWtL5$&Jd_dBP!qsF+WgaainZ>-OHw@&7_ni|d)rAHI@`jpY&fd)t z>lk&e9{i^8xSOtzQ9^_9cEQ5#pRi5utfxOgIPJK1uH{YfB8_@+IHk7^_1t_mfc<}N zDDK01SQb-V>!)t6nfkvfxo2@LsbfewYHXXn2+3bEs^gC0AL%|;ty`9=cMdf}2!C}y z$}cv_fe7|VXm4fh7Xsmf)Dh_LID&}TDI(D>XYNW7V^oH3ElR}gz9A(cKS<5kZXVhR z<$*HP^F>R0grDv9cJEAGa9s`<=3`jFryVwq%L1R|d_r=$ zFBvrNQ{$mKruW4x2+E)@xQp2LWIo`1A1*`KN1)^7WMU)18b9BX;_n>? zzNzPp%gyrQ6wJq+R8J0(){X&@8cg9=hzU!7X%g+V<5k??PaEr7GF+mq5Xl`%cG~l& z+A3OFDlF)9{Lteea#e!#Fk08_Nkw{*!}n`X>Q_HuPHIA%B@h$uR>{eRl}LA_ zQNLSfyO!!0f7g;OS(N6(`ksqF&Rua%fO!NRhXhn9!vygL>JPGrX{^@&3ADP_zKdLk#XbpkEM=-^1q=DHDq~M{5X8s?q<52#HQG?xp zlrJ4h7vg}`BJ>&v<-x@x;@4Q?`@TlH`wO00QdkAygxT!Og-XvpQsp)vG;+zm zi_tfMYv*mEGAEz-@g^fQ>@(f1)BSto6b|8PGbh}7V?%KB z&aP`g|FU5}5T4|_o;1?YbHAmE)zzr6Pr7+F*eJB7+IC8>WcosvEI^DOYxC_w*}QOk zaHn~4jgPi=;oqimc6P^q#%(`6_R~EgSrLk&0KsBvW9Bho_Y>?Wmcxv zCY6LOuDK@jh)>~Psmq8U%=Gd5PrLjugTlZ4Miq26(k70_UO?_b+n&j3uw9O}P>G3A z6cv1~NV~!UCr9;JaP*%JNam&JNI;_%`T=!DZ>fx@wrQtX$1gz1T1UI?XB{S_8<;v} zO%(pANa2Or#XpdwxqLJsX4iXVMRkuF3hduVd5QxGP}5ALb{Nuyl~88Q_|O( z%pu>)$*v_ya-z89y59DLTf^s1J79sMIATgG*Lkd>h+6BK&C^a*O)l0+>TSEleC_iZ z8^xLNetF&86X6=hF;2$H7U7iRNg2_0M@c1xS|nFr3rFCa!Xxh;&vOQaR&V-^OPTTi z%%{AM$ouHLH>%S}$0j<)CR(0FQ34Iu`}$dXP5gS2NYejB)_X-YxjmWZS?bLZo+)-g^rWh>C!8rA2BsCG>zu3B4ET(k0Y{j+BHNB(VSd-EXEl~f2q>1xz#);xi4N4Ote0Sja+m5vA9w!BjNfo z2WZ~<>R%6aZnAdSmQ5fIw%D4y>D2%s!`We{`t=*f1N&E(F3>q0;zLXqJbGx3_wlSX zJzLz;>tyDDS6yOXwhjjq?p8FemN(hd5p250_`25{lhp8K{Yhr;qAZ{1nrX=(gyoTK z!p<%OVJ`c@AustR`2IoWBk75^jR0)QSUN6EYAk*Uw7l+SUQ}+TqAND^1Y$hxFmr(2 z{9|)XJ44|E{YTYEz(fWDK2hL3Z$nxw@a}4t!!da>ZH}$cT7pLJgc-;_8W?{Jx%p3U zxXP1EB$s0jd$;LVxYJvI^$x}d0p->*`CwMvoD#hXk$#yK;}v)0Pb3gfq{;U%a}_EV ziK2r6K94g#%W-MQ-y@{N&4ToS$^%yCUf`k*1-K{0`|#(mTRIktj3g@s$}_o3_Db^T ztJ@k0Eb!_^7}2qA2&4doRjLn@3kE*Ud&jCXA&B?AV@k~ITy1xchnRDhURir;q6gco zPRuQ=y(w5mDiV!2{+g-V`C>-IFwsRn$5~H!6l!hJS0W0|UTy(OAuKy2$+RRmegzwY zH~u2syRc+#L*El1MQ4jufz1y7Bk;BbG|=w@ioP%k&bt0FE=o9zY?X_*l#J|pu9(ZN z1Deo}snrox;vDSP)%R?1oyyWt9-kEMmni96rWzIXVV7v0S7g-lr=a{ zs#nkZC{BMOJ4~9@`6AJIYfKyFcY@HE3*{8I-dYnkdEK3oqKV@*G_L%dgJH6uH+a{*#VSFr~ z-S&a#%FW%}2y1MKY?O|OrL$$1Uw^^>!R#-(M`=REqmEZSbbqu<)RU8H8Y9h9W9Yf|#;pM{HC z>PXgjwDPLx7+OjEC2I7bA!V<=c_Km$$^K!$4!7?*k+9oT;d)C{yp20tO+(Y$e@xwE zE%)y3kd@dhbW=82dZUN1bQgkIQXwDP6#8`Bc538#sU9BcUtD&%16~TYdhi`GZi>Zv zh5q6xlq-uh#h#!bUoLe_B-h&yn(NQ4N9hT}APY#tVn0o~uhc0803SzFEcWo3O(R=8#fEo94IlP2nje<{INrao;M#_}d`ehI$l0Qps zs39utA6~v86|M$H)!!y8mfhOz-Dhq2wveXMX}MKOouqnfqrD1`o`-X9)@3+yP4|>l zx%3H#fxT-zs|${5mu+@ve!6c@bYIIlUwHrNd1gdN&0#myVosk^4}dL}xmOXf`)chr zo5TIcdiXvoQCmNA&UD&L=*y?1!4gLmVHGDaHg>*X-bQ|I_ba*~nDnYOS5NnoPMpC< zeg9rRVb8rZ1J8=x70JWdIl#7mWJE#)71S3onP^!}qig8eul}p_jgH0gcF|HcsfxT0 z4{N*1g*#KGBtRXe@1c0twX_m2f62niO%=U~@>PFgVQS6|R}7)Q|MHHM5^N+0F&sDw zC5QBrWpL+=bEC4Q`W4BEZl;#Jd^9?gj5V_jHca(RTwGdH4)>HXqB*w;#y3eb;7zNU z6!E}m(Y{BT@v7uKI;P9JB0Y2%{qSRx3ZIbyp{Dh^3hRk$z5{i(aZ)o0qZ;`xn_-Q%pF@*XYr60sA}>A-@5 zRrsLxRN+9!J=pU#*i=u|-(wlh2#2QT0pcx7Ck}cG=4^W+o3UmR9UWWg)UXdH!%G;i zsBJ!v4(Mx+plIt0{T#u@5z`Div)Dl=fs}Bdioi7>7Y?C(l?kLw2vnx*At1kN$lRQz zC{D_cBWF>HRf;hX){YZR_@Dg`bN_pjX9719IX>3&#mrvcZ=Em-jJNpB2pX`$7{?e+ zD(I*>G*aFtPmoa3;p>@7DLpSw=}M;$n_PP4D$m1LhW)FktC7yXa&%pd^K3ucQ3wmX z;sSm31~-zsDeb69{M5-^qpHdy_y11I75fEymMhvd2x3$NZ;;ej@y;>JqL5^gc3j2A zFSoBAx-{$=qR*hOhb8;^df3w_&gF8bN03!Q@dlVVy3e2tR3t1iCM8)o)~bT9rl{9< zTP+kQe4}=LvdL7yWw?R<^yBz0P5!#cR`w8&sl}DiYG@?R35EKtx8lz6MgGrt(k9_7 zzhDts+nf43kN>Lgx)k3r3gGQ(1T=NB7N^>q#uZ&LP8=9QXyt`Q!t7brN#z8fr{F)_trvgHPrK_ zMs&}b97|S7R(YE z)6qwXOqJ*>3unEx6y`KH-0dzBz$rfitX$;jbVJom?mD${WlH_M+OB{yF1~A2@tisK z$FWBf4vtX{<1$bFjG}0qk$b_mte;U!ccQsj_fJLLQZ^WO z+#JMo&-I+q=X)P(b53NPGfnb{{ln%hbVPh-)4}aLS{%`|+^~Eq?wWriHNhHvKGQ#$ zc#zjz)_Cn6Q^qO!%=6{3xXlpdc-e4eqcd~ixWTJLn4w&&bXcEDAK<6a_JfS46+9>^qh^qO^cTEX^YL2)6iOM2x(LfgL7!i+{(<9}4Xlna4!2d5vTQZGBs z5J#B_Qh?%aix$oGhYl1g+i&>1^EI6nVPVa2De1ky=Xtka9X63*z*P^y}WobO*dywLxxcn?pQ*QJ)x`bC$fH%(rFy1k<&g?C^G2D-Gb)D zB-h~X2lsqUVjeSgecv_A71^yt7w9M`GHRHhGP8Bih#3tGc66_D3a4IeQ~Zxgcd8Jf z*BD~jT@=gChFBP<|Hj}@&6C@ttUk9nzbVWV-`5NU`I?jsv(pH-)ETWPEKHt<+Bn-& z40Fk~6b@)Sn$pq~Fjtq}B&gUV?XcjvJKIoeWg>R&c&xN{A_)3evZCBd^$3 zp?W#DUj+5swx;Ei{m|*KEk(_CSR5FV}wMIMOG)dzj)3s7mx{SqEWW zOG;{3$K1^t8M!QkCyV1H6yYCRDjw9N;p_Z9oLgEgHF%Ap7aFRUuJs}S#fg0C4YGn(RviM5*7vzeyC1l2;r4y4m*aYbImv&lP6oC!CH9 zhR)RQCIEtp2R?OdeQfeQB-Cbze z1b9W1a6J$&@EkhR!K5>gDKuk4WNym%yXC6cuH=(G_Kndn-7mglj2M z{7KH*`G7h+zSR}vegmO>Z}&~NKINaaKX_?9VZ4#toL(^Li5%z5;ov6q^v5SO{$>Z& zzZwG=c6S$^afY%TD*r?=ve~*ETZt$+7BmB-A~eXV*?sMgXBA@K)U*Y^_7VHlcMRwAC&h&$ z**=Mt)0Iv7CUa9-%PsP`$-9=2*fjr8F{uK-bTLn}V>6ML;@hbW*O>3XA7>r(P}3ho znpg*Z?(={9DZ1a5GFExe6A2|RP(}ss>?6@e9rT6Aso$Joy}8B-aIdZfz>l{U&@C&D_WmVJyvJ$T>d^9JXb#+rxs3^bVjQ}1$#a9up2wj`K5c0|c(39Icm zAZ5tUzd|SaGsmO?WHa%?!fMawhbpm_a}&pkX_(OBv-#T3fQJCepi2J&kNuAdX!NP3 z^N9$rap>ElR^Ru7{SeOT8A68^A9wBGQ@qbMQ1ak%d2q?9Lk%Y5c|^4H zLvkp8CpcSD9#`e0`yOAHDXG#@V`!wRNUK z+`Uyh_g*l6e$K9O!=vKumpVB(?2408wJ{4%Si8$T4o#s%e<`um!no4kQ}rS!x)i_l zh_#t{;IdwtQBhO1^dkB1KSD&4d&Jv%nM5A(=h7u{C9%DiruBDU3F}dgvLiXhEX$+))cs}auR=P{?!gUf#|Q4v4%B;?vN>W43M zF}KW-lo0eXrhjtCH}G3MJnX^OoQJ^XnvaV)|0a)KBd00k8R48~A&M4pF}$`uAr3X1 zBTTGYB#9FC#2@bZ73p|ivf9T{Q3uXHBy}rQXjWiNNMLAH>tlUggO4F_S4uz8Cn8ya z^ve0o-_R4p3oK~=Uf;KSPYvF`(|&{zIAJFTcUl6Z1n_YInu4cQu2$aTil;l(V+->Y zh2-!*08${}UaJ|J3%sD!;HvAl2{JjWO~^{|O`XAnc{+B?Ux&c$s~JZxbt4x2ph&~i z@o$rXcb3fU9B6(72#9*FHopC5ka|<)rd>yVL}sfe)9v=eUn94fmF>hgNHHSaKV8St zau;+IcrBDX1M2Yy}p1*@BjF5xYV9By( zLHzeNvR7-^9qE)dOT-8%ey2dt?ir>vHw!T0#f(#*>$Mi>lF)om?`kJgcmMHJB%(>R zW^;49E~vfP6*Zl_2Df~Wysvf%{vDc9^d~x3=-ZHEf?VIX#m{$fpPx5uis^!-fGQUq zyDL4G*^D@*k6gxddeI!r5b5G3N0(9MiDboOFH@}e;JnB9nOcI}9>@D-hPOURZ9GC! z85TliV;}{U!k0=eZQh*N1#_vPGg!w@n;!VQ-9RURp|0&Yu=bV0Q!leD&a{yzdx~qZ ziLtI`BlDA;Tx8bub3A~R$aT(QS8C@Df|?kliw>3o{nb`bl(N{#-9O0VDLl=j4SWAJ z|E8Ijb6mPd%R*_Narq3_@mK*2+k$>vuraGXo1T(9W%Kz#} zs1+H#jX#3@ew1`K-8r(`7|o-;ShOo53LJ$=9b5`m>;#OLo;(zK$PbE#yzeXeQsg!z zR%&0%eSZI@42-9SOR$+C(nh!!x~JuzSP|P&!DX11u7+Vl5lR;f3vw&b1xw~z#JRHs zu}!&tyX{It;eAPvA3`FeU|Mo$&CA4Hu)Z1P>c^}3^H5#)%*PcmPLnPw7ZRpRenI*n zo^a5$PMo%<@tz|XyGG-7IkTFgA1I(yea|AMGW{+I5NGbNa&Sd^a%;8`4rc<;;j68#k}@2}+7{uqz* z-X=SKRZbpx(f)lckgmQ77TccXy*o=h?As#kjh*b`P!)y{1R-I>H%T}X1xxLr#S z&Z9k+9|wBhcma@8rWTXQP+2F=(P;cyo!dOfaLhIF57?dFM7&t24Og(R(WzXHwcf(? zSo1lD%!;K$%IDDI3J3jnA=V3KX0B}wK(7et>t$Y10wl4nO^X}t{>qgO^j@&>ng6#M z5B5$+M=r}Ri?CnfSB|SeX1NZ(ve-peiF%P~7HO`7=*gYofThgufOCyI>atnd6xZ!T#Nbk`*S;DTra;*PWd;FT zC4HUgfE)yW{CC%-cEgle9jk#u&98u0l$H*tg%U202A9+FFdm;IUc9sMODwKlHL<^S zd(3@)?EafHKJ~T*!3txwhhcqr4@sH%i&&^|mkHo*J2kX&$+ZHnp|7$*bne?{dKTAX zgaF3BjJZ^lWbJw|@M)oE^UO*|L4^FW*cIFG^{m1+SQ>dXe-iYEf0NALn`y#H9Jq&T zEJ=p?{_LBYf9~QIL*JyL+Fqn6LaFSQtxkYH?C6H%rQbZtSmri zpWh@XeD{bDml`OqW{pOP*xJ|(hMx(zNJ#9TENM=GruG8Rs>8skO8MVxGFY?uoj(Eh zXM=wJ6XT}MAo4FSjUxpfa#UGzE7i6nsEGYc&ys}Fw(UeFtF;O?%Czd0jZpeZZ6&&HZ&I3dDehyN{9JRxim7z5ld@Tq zxW7Tgo#_%OGg0j`&`lD^{V=YGL4q=zRt885iPBAV)R4VEj#QLUd)_#36{!jwYkjEcijw8W^ zaXG_`G5t94O;ek_$|=4yybPC-1pM;!gq`U95e6Z&M3d!uh*2KMM5vq;#lHtY*vsw) z9PN_z4A_%0?6uYUjN0u_+m(9pP=gqfoKolNu|zdjj;(FVR%ViRZ1tC)BLJV<`Hr{x z+6(h7(X*N1?yjY#r?K5w@}))Q~5W^t1slFCgWoD+^tX?i5xTyF;C15qA+f&$GHvBI@mK{(H1! zq;3I@a3Mzn-kT^Xa7c&ja~5NQ-Iph?_p9*BRb!*t;7jjktpA>IcH@(lVh^G(>0vt>GtXhuZ&Bag?ZgPK}s=l&6Be*tZV*pJxNYJe^gbzM6YK# zGFdLw-N+#$+hVRb=Q}y@s+AIh{7Sr@G;g(*CK#7WDu{Tl+$-86%6WA2i8LiRoMW|> zAAft$@vAyNc>h5sR3o+O!5ZiZirtuJ#(gq@U!>`BGBLt*r@BXY3{$IvoL$jAMDg-> zTQXWd#CtTLVT_=-87nDZ>2b?)k))bn8x~2In@j|+Zc#Mc-Ut6tVMi1> z8vL&cxSTMMCCg~P!8^=PZv10((dhMR_}29f5wWv{TZtvpeBEf$;-@w)R-%t9DpP(_ zzEaoI{*qQ#KP$9h!Pjl}{A!NEHD+ng;9>8#{^)OgEG1Se+9MO+t;6Ap0NET;)9c^OmvkT@zIw~*&qWy3%s>C2GGS}pGnOcQLQxi8BtZAI8?>b~t zNwUSahvVAqa0t6{ZAP)!`B4<-{7HO9)(TtF|C4 zw)%fN18?7<=KVUjbTRw1kKJ-j7bujq2~KzQvJt>6EnN*FYYEbyPIt%BMf=5<lq$%*s18~P^V{LaRe!>=n1$d9J6}owwJh_xz*3yfsomsODwTyR>K?9yic3XQ zgj0G`YW;azUY6_c>b5#~J(ONGLs8zLBm@K!n}TRp%Ynu;53peCfl&@#ZXIKw{r!y$ zrF8br^{5D(y_D`h5K7VX0&`*22=v~kX!&-mwn+gmc-v*hTeBU-m zMZ4qkQ-#ZT?eiOAK3Ij_yfPpg%< z^CWZ*l_p#RrA7rQPt{;U8#*jc$hA+Ldt?UKu$P-&JX=xGnucmZx;@p0H6JZ6$4O{-6p?#jsxhVgoizgo>v;`%zlU zXz~-xFxaX?(kqz)Ip-@i>?NS2j29Bk_uDLUaiAqd<6tkn?UeL=-qf>Ng3&<-&V8ry zK-ymO^~dlmJnjjt{wrqH1gg8?H2Sx9uR6Bh_md=QWx7{=<)3&Nx|afH@}KFNY^8Dg z7gwz)q-VDxuwTfv6m3yk1pmO0$W{srbEG5+x58(SH$59>>Q)K>pW#V)LZsvpvQ9P* z5#@af3^WLst+*Mir2o1p=!TVPlU0d82IozC#?Ru{NEjDRlXaW~X6l=7XS&6}R@&WC zy8R|m#a#6GDe6$g0up8;X$hadrl5cf2t4;1S3ZfXx;PSh%8x2k18jlyoDFzyXUkf3i;I6?&Bndi;dCj68oi`_}aTBYaD*b0CA0+&;ib zB6h(zKJ+@aD#i3%*|BYba<)sYfcuqo^Qilase9FHsXs-vV?+i;`=!pZ6#&?{1wCDUV6BJ#8&NGvC1V!Lfe`EqiGEV_~bI1xXY zL-Rlw-X5v4z#2W&SxXpM^osWb9ny<8xSIlv_3PKiNn+ajw0QU@0E>hsGfDN}t#`Ep zCRdUt<_@33$D8YA&%m~w>-&%1iPxS%NvtV812pZj<34pOGvCtOx{X%R5xQ={evx&l z-*x&lnhNuWPfS-|Bi@m?AL5zrO%=6QL?xOV^olXEzt&p=-DXPCZOo>zd>elXGjfVWT9w@(- zD|^QLu|e}kayUF*iUOa~7s&S)r))Hg?k-GRPF6oY# zn!~zDZGTfZ`vbUvaeQ%hf@;Yqd;|}CUshiG_QzSML&}h-Y+STsrPLBdL70V|&kk=LoH9KBbBx3SP{Y?v(8NA#+N*oY9E^QDK#KIIU-k(q(IPci<_K0AAsRk` zCiJjAP^fJk7aH_2h26LK*uVL8&&xC0aXyIpMr1FZXxc3A3Uc0tbW7iIhcjJ2a9z0# zgO^#5es@ufnenC2W8;{f&9d2+h5_M~3M(5+jW#C-WCA|*$!{)9c5H~ zQX)F^EmP}m5(j0j&k=cp`qbMUrD{}D?=qRFV&^OSVY9-zGOb)UP*C5?Kh;0j%jOvI zu5*9}l2=q1JK}o}B{3zR%lVuud(D>KcwlX}$}OF!oK=MiO&2$+P*Sb+@@!IZG${`L z|E2~0AH>4M|9?}aquP|NyUYz9(7ZutKqB{(IbD!-Hc|4j9kAc#|55Fw5|4GK>=WK@ zg5%59>JuF9hfFinu#;;~evJ?^`6eQJEB~XC!JIig{YtXRb%M>lF^e!;W1_OF@y~9q z6Zu)9Iu$0;g>lGE{=<5ybQnYIxU}~AMPc8!vf&w~F5tDY$fA-+&XItvjwWp;P~a9; zzG%axczipu6MGwlv$;WH>S=C`wldHn*hB|hp4-+Z&Qztkv&~a3bNOo+3}w9-^X{|! zk4loVaJN3iGZfHqIl1<89f;rJTtWN-bL-3adK)9fU4I8wAt-`QNa-f0#{x(0CR9Yk zmU4Z_#S_DJi5_``y4Kvc9L^U}F-fRw0?5dw8@nxA%vw!V~S9 zI=IpAWcvM~p-oY}Do(3EY9+j0=ByU-yfli+6S`NXWsq8o6Rl{scI3p2 zR!o79ftF-@r|v%_XEtBF znhO0ocTk>ukl?kYQSfW7Qb=VcA3`64=9)=Y342LfUbTyLTg6|bxB=^{s!kv%PFGQDZui(KQ!mbBg~(ty%Efp06M`u{FAY)3~l3Smethq5grkw($C&SsQqmR2`~AnZX_aD2mP3HR_WAkLaU z22_Xn0L)OzyZsm}a_d{;E_Bd?3I6()_i@KZzoD-~Gh$lVSy6^fDJ>RD;@0PL?%~)} z9N*p9QJxyQgz{&(rotj+im98rgKj5nXe9rs@DvEwYwUYuobK>Xg z_3vDF7BuV+puV6Tn(nK0+fVh$h%|`WH4OyJyDNq0@V55-U&bzxa z1epYSwvF#Fto3YzZmE~h=*52Wv(^%_1;2{QMnYxQc1SR#2+qU_y9?(73;BU3N@ z6Z6wb8IO{1G1j>^_A|&#alU|Gr;d=^m(Q$_;w|phvzX#`Sk3iQBJ~qW226aqQ0$BK zP?4c`Fs-Pj@%llEYnx*GEKo6QF6R0^7#_?fw5-S7VVtZXGxS+ypcr@h=yOM|lcg<# z0@t+B+YQb=WW`Kq;1#5|_K>w~)hFHk$}U+$84$!ei6!f`)E^eM?3c{{L3XV$o*-$5 z&qn$&QlEI(-wb$}g{Xhv#Bh;G)jy8&1V`k4G~X*RMu`mR_=ye%w0~*7wz>*v8{g1W zB%1K`rsdrj(l4YP?K&OJOGfYLLUB8 zb-;q>v7uhuv0pFIEld*&6KpMfXfKp8Y9-%PuRC_$bivEPWkC~{B$T_RFS}{n{2Md+ z=L$P;aeCF ztT6~Rpy|ARgf~*9i&7U@i!GhTrz98_((VYP*T<)YF9ZN4Y^XKUEFZ_{K%(?JU4CkU{J?X1UpXnYL(T<3>oV-lNNt4;fadYwVo_SJ}chjpa zRG(^~hM1+UkWc>pC-FS(ozGKs$Joaa-k%~8EP)ww20#1(RgU$kxvJAnIS-m^Evwv} za;rJkPn<6>_^rK+HEYgs2T~Yk&BaTXF|<0Rd{5KbJFtXiC_Qh^8=ZcEB5sk{q|Z*j zlLl}P`EkMTdaw)7Xv4TO2O*K5QU8qyVx)*?O&agV)C5~h1ah@H5}L=*@1$rG#EWaJI{SMg1h8no>nN@KY1>k?fefwk&D*+s-ej+_r2;{gkcr zrxAzPdDdoDT0=zEuW`Z*K4O&8T_zcrE3IFDX&Izy)&JXdVx2`X%fSa$;;_UXx#PV6~!E|P%$HeGDIURxEWC5^v z?T?!&UV7vgH8*R+{~7FJzkaWWOK9mCzk44TS@OU)gO?dmn_$o9r|A7+vKHulZoRdg zr_x&czEz;tXZb#|_9J0Pfyb_pW|&?n2<>p9dv5HBHULy5&lj(jL0w04@LG<_nE$9`FwJGWJv|Z=Y>L*UwYP_A5Y3={kJn zSR3DRNkVVCTTtHjG9~As6>(i1_n^u62`j$WmKpY!O;kLg_H#+ER(W`D{5iIfjIMab ztP88SL|=r6s;yYHU$)z>p_D-)qEB#ek9M8EXrjd92GEmxdPAP`o^wYV|&hfRTeJt4|(`lLWqXn*MRHe0O3%!uPq? z?xgxVMJhulj}+y#l|033bk~Y@o;-d~zd9B|9hsIdI#%E&6OS+v9xj;JKgLol&+p;2 z(tX}6zgK;~?#gyL9+zpMK)2dAZ&zbrmqnL&;m?z0mM`v7(4y$?`4M4Q1lrGI{ zX`H$*w~*j%|51TEv{r5$0SY_*+E|o~p*URUr%(*9x4Xss%Q&r$P!+m^E%SrextZZb zxIKgsTG(?8E$P$bCtTO~uJW-!tyk-DTvyz^{8lc(fKxCQtA7C|QVTEI=U zA$7|w^!^u|_`chuVpiW@SI+c4*Z%!^k9{&MIxli$lf;JQ;zIHOfRBaxF!8iXMInV< zd%{t@Y8ojfOIJhId^t7Mvm97%HH}m(vx}{v&CRgHJ+SNE{f}li&z>jHLgrgt&{jeoLb_DSK z$uE$R*t4P;3L1u6q_DiY7{LBN4|$YV)c>m&{r`1IqYDT5V%nu(w4}1KmM)xhB%DQn zc$jd2TaoN5{siN|uP`hOW%xulwPQT}dsSbXquc8Ihnm&1qBB?$*Co7kO&P_IMkb;V6>(?c(k7i>TM*(j#sIzX7-J*HL`lmIR}6P>yB?k0iiT z%ZOheu(0w}npxTYJq(O*t^QO~=VOYzr!2)I*t24u$R5+{^bLP~AOGOQF}7DXkDK;W z5+ubb@cW;}xU@2e3@WPN_s>9kbHGpMp7GdgR?<~I6Bp?L_!q}MpKZrP{g3^<`Y>8s zdpd|@Tm8~ii|aY)!y1I5zvRsxjjlCfK5J1DJh{n<5!BGw6Guv`9u+Aa@v|f$f7FCN zb3?z^&Tquh@pAA@qK7WWE$ckh4{mwVv=)q@db(Yd(g;qN?>tqk|0iy*gF32r?TJ|i zHS7E9iQ(Fu%&~T}gr4a*ibA?;SQw4wvE~~7g(u8x8}!-|=>p38bS1TqI?mo*RYxe0 zWv@*d2S&| zw%v=b2)`_aV`oUIB4xc?kpsBeJYM`VUrFkks6(A-^F}b0fuOYSR9#TRnrU{aC=*hGhVXc7j@sq4ym25I;K3`!GtWT1}X~0i9*L)NN zO=yxjX9L+O(x88$>hhRAN?+7C|Cu);_vuu+%5Y2d&}i~ALf{bI#qqQ48s+fvlu?*^ zo9;|`Q6?ePMlyFQB~7eb>SS{xpzc!9)9h5|;?&*#*h{suc^ao0aJ4-+SXZ~<8?~^q zFB+JHU7is6y~1$P<^_(<<6Jk36;M4G!%ZLEc*KWL8MwLrj^mV6qFHGtHzO=_VWZJ#33U8GS{8u{y4> z?Xm!aDYMajG!W;ZRUVW5&Vt)coeJ2AwNbCRc=jJv>B`H)qGWnIA9-7((?s`?ei@fm ztxyj zLiuYp(HzS(1j)3}rLXnV0w1ImICCN1+M?aSvwhejLlGi&AgZFPRv;Y6F*QX+)a&du@E%0oa{Nf#)94l|SAJE?7N zkJ~#R|1>A}3o2*TRL70NOdSZkDWO^alt;C+lf={xp#T=tp--cG>|3AX_7r8Roo%={ zF(Svp!U6|Z+w(=)ZRE-W7_Uy0!KmMm!WA~qH_cY)l!ThM_%mmfyahhfB*w(UJTIL| z1(SccbWn)+rJTAE#Q_H92IYi@`LD1|bSA}e6fN`LWYqnaJvn?QMqO*)P9Hz0#fhQ) zCUuULOe~bdhjx~Br<*Bwr<0xmhIoM=>URdqaa&BDp9WpKX`h>cP{z%eLo0y|_u^)c z@ZXn~Fh5WJer?bPpTBF8@RHf@ZWU&64p4L6hz=3__Jl6dW^Fu@m#@-Et0rBv3BoMq z-yw-jC>t}^L{|-oS|6NQcIcfL5p3-n6_afBBhxKyX3G7KmP*H>%##ilhNM=8!!NR$ zE}GW(_yC_Au}<1@D!+PeU;vM9b7za^RtzPqo?|~$Xo~y?;Es=#u5PymYpbbn9W*I3qS*#X* z*`?pY#dPbdbJP%(_*Ua^LYYI|#+{+N#*@3udTxp>ZBv{2R#N9dscCD(JYi^NG%i#Q z#Wg{BrdLvELH8_<{YyrQ8uYw_T~$OQT3~;XyyOkzW;eJ!)MN*Og7*8*Xv7q&bWK?- zs1rB9BSHf`}ZKAa-J!nARyfFaWf()Gz6N zC|~G+Z}M73%Z*X4Bb4$5Ko`?|wvi@JQyzB92BIp*G9&>YLtVI)%%mHH)k zYC)P)Oli|TX>Opb7{h)0HFz|VV8kel-|F?=a}WC}i9SfI3?lT~W5GYx z9_0>jiYcCsTXnv-!Kzzbs^;U8|B^8DQ4llgmUs!O-z^*REcf-)HD5N-xzt+9m@u~N zK>K?CJb&2LDs}weXIX4D&?MLVyFptTzhIb46sqR!JmHSTS>zD0knLFqv?5^+}8#<>h5sa4Yib!D2*xhDiEn7`nF!-8fn86+Xv zH3ljX=q8hV*#-oMlRF{%w)kFr7M2jrpvucd4hx{$l2FZ<_yN|avem?R9Ej3GaGBl z_4r@#tBhx6U(!9v_1fINpXCw@6GXiKC=-~}tBx4%KTqnjlQB)uxTB(O6f&2S@6r!! zZk^BCM~6GFNbF4GtzW$? zVNz4?{Ft8U1d(b~Q&uZ=|NhYSTFuuLxG#cX+ovotT9|sYbZ}YLasN^FvS?8&DR00QWnMfdBChG|@rU$oI^G3Ku?66we>A7+LhSTfkrK|z z-0=7fiK0NsD{wbJo1sv)N9^mau57xn@MRl{(jPV&cvgMpG3mB{G;pOtK%52pAelFa z=n zYl2YfR<@PsdC*4v3}(`@BYCA^oC0LgC1!jHCS0ywf=jKI`_EDq&AT@5tULF=jyhg{Oj4Jlf!v~nq zAOs}z`XrBNF7h8$^`Z%$hTcaJ!hnd`#Sw<01cBiuDe;L2$&0e1HiThQLl8!y8G^O% zjKOt8n?Q8LX8R5$*WL{>*2#DtOJ_(F^p~<#iq*wzKsPT6hMhBSkTdTebBfO59|rv<}{nzhKCsF%V!)YE@D_FO6GLc5f%mM z?4}huJ0K;$oSt|8LcW@46}^=^-EGB>bN%)IkW55+c0? zkc0#w6zNqUiGYAWLNh>Mp8U>p{?GcabJp`JZ<4jX$y(Wa-~0aD*EPIhSn5+;KB5py z`*~igy$;l)?j`?l^R+8=ETHc31c{s0BO`NFPCN=6-t)+H-H{XC000`^`@l6{9@_9jZ^hZl5(IJwvXGhaIpi+2?)l2(vdYM9R6dVG_7c5Jm?^gvWE= z>HMAHDWOFx$%P{2(RDOi(VN?4Hvmj1-~3NtNLjxgH_bO%0a-&!>yL5z#Wm;5xFN~R z=n>y8jCuD_%^@-WpDi7;mT$=B*ZAI_W8+b;Yalj#YVAUNZ$Gci<7F@B1nu2k>oDVc zBuP;1k;7WBz9py-47eM(8%J+_fmkWv+&)qBg!l@GLAhSjwM?V2$t%rvI4B_<`VvDK z4UbQB?uW#P5YUFCVbs+)+_Qb*G61Ho=xHVjbdw)KK#kJp7T!O zYS0nosMad0S}LsQYLyct=%=0})S6GR^iK%zT_?o4pX^QC?;E@H@jKcLk9J>0F;i!`NHnkp zDxEA$U}Zsj0`$GV4yn|Hs-~VO1m(Us{4`fL3d_H_(axs#=vJe<570RSSoNRsbzCRW2k{?rLN+S;EK74v= zJV~fr#&8jF6vKupdP#r>j4#fmKU=R6`O(kK1%Ha(vuWbKdw?u%X^? zwL9gsO6*Ft>)kY@pxO*4AE;iIonZ7JN^n{d#M}IRBV_vbj>35?X6zDr{5oRd*lYZ~Tnb z9r)_mqq=`Gt@2WM3dzKKM9VVSjrZL(CzUMlMHJ1}ZpMz*chH|i(}-(mx5wglx=wq%Ffbuxa83k$IL zep}5TCkJ2VbqDAEuS0RFzq2geAv7nhzI!dCz2nTSR6s`wBn$@^W+ZA}by24r<Gsy>4>fJR_fcVoJ_PcKDCyT{2sE5zQsM&v*-PfFwHaGJ5rBJc>?J<4i7`DC zkbLK|cMX!HCo;78OnUT5x)#XjfwuA2xb*zax|W!u<@#?zz;3!MwFYrL@K{K)+{N1U zVV)qMd1_7L{CBcn!iWf9%&7AST+Y3A5 z(~M>-N_0Jz3;nRVKeyIsX5*LRbZv-EkV&Z~v}dO`SGza-y;pSlYLwS1`n?$2Rr~|D zLBf@PM3%CYON;kI66hw$GNYm1gWYbjmEGT3I%$P1o#5ENV(&uU*j9vPm24?iZq8 zhZ?4HW#$~Ltv`G}-@KRYEj5IsE#$kEM(UD$-dU0Cq?;k@Nn;abDg6ghr@4W z)q`t{N6p?pC(&;L0N0aEc$pU z>uMOed`$hKb(JnSBxUta`NLvybD5bcq^Lsu%&Ub9#Hn&3WktH&JjX^yIamD!l5!F@ zf8Xy{sViAA+0I4oQ^x43Np6Szd}VfwakX%mz~Hf{lid$t>Ap}%tkUVU_;20WaIb-^ z!NL36owl2?x|5j`?(^40rE(o|;MX?{tSk5p#=w8|^2C~rwOsJTtmsM8>?w_ezD_gT zRDNrxXnqS%Sm2;%hS6zv7RN1)G#y~*Wj-Y{Cx9I z0P5GL$QNO#anD@Wrs9fQZ*YCa8OjE>#s1kQ-vV}CF8-J;nN^&ny~AjSi%`~OlR^YT zw}=ga=F>bR_;}9@D8O4+e&`5vx$uk!??rxEoO86#&3eYCv{-5SnStx< z`=TxT_v1@;eSv%N9ZZ}gAJXq1JF`)?Eo8HUsDqq|@JSRo%8(&Rz%qtQm;*IjQwAmx zZ;x}Sb1;V->9ZN6iw(B}tRoaO>C9a>Rk9|U64o8?WY)iMec!;tW9gB`Zo~#^U-UeG zyTC_HDaXwi1~RF!jr8*qSyA}*{yg*DcYe7{c0qohpiH?4{|~tpzQM>t+qOY@-nXZA zsp>m?tcVq(OW>}SFN`M@Da&7bV^0d4lQRuSDQ78J%4=QtX7}xv{H;89OoT#+1hri! z46c|~sQfFp#Y}Csv^&hM3AFc1c!)NVCxF8hm{MBIDgmM!u;?^|}Rshb>= zz?VyHcu%cS5n>JF7A|Gru1p|#!fb640{u;cc;}? z@!sPiVBvL6PLU+!1Rc&gjV+XRLI=c`(BP?DY?hmS|& zVH2AJazL%ncp}0fIW$s&8D>ytK(8iY+8&mgv*IKR76`*T$%_&QE0Wh+kCwHLe=zMI`mv%tAJj6gescKj`7TCEBC1{Pdz_Y}id4WBn4K5AMTFQ9qFTkO-8= zk~WgzY`RX?vernGEKue*mpe0RcTBJgfJmofyI*Y@BP2&;xcMYXt`1;V1IMpuZ-3rw)6yPC^$Wa7LKG<^sR6} z4eMi{$4r#o{4@>M`KwhB&Ad+AA2W_KxcRBGpbDX83|qHXP`K&`>cz)sLIUDOw61Cp zVY7b>LMmYUFB_{Oh_Awv3FSvyT6L{(BM|YYfli$+!>Bn4!aNMl0i`0Yaeqgg4;~s) zXEOZyKAoySP;yE4$--sQ6^@@dB=FBBhGnfk+mz@y-ATcde$RFI8#@ldSmvyWJhnm@ z=4#`u4;gp{?;c@BuLK}V)YTJZhREWVRcUEtAd{Cv59)HRidtkNEe}UwZ--I6Awzlk5Asfpl63JGNM{$OiLly@9_t zUlj`?jS7rX=N!Dz3d| z?j_=dGRdh-rglV6lmv|zr;5gFrKw{;#!pRKdC(@q?UJnN)uNu#lmv&6tQKqu z|8ppE_E^IcL%)yX&{DWN*ht@CPOSjT^}8Oh0hGCG-A_`VLSJ!IN)+aa@)($xL?0;L+xsau((5x zG9)rB3#qLxYabG`aq(q~@7VdgjK_c*Dng67bSH@}<`5RU-hGHO1{#l5nm*4m!2@sJ zHnP9ho-O*pqTg~ zfl22-S390xy3C=9KfS~G`jR1Kan<^o3SH)9s&YL-PD-}M@y zn|q!B*K()iA}N6!!3J6zTgnH{J{^e;JH_tr6Ty4I2hRharYiTkYfrv)ss33qT{k`c z?JfBwE41Lqj$LAQ;9;d-SWVQ=J!H$l4;qsdcM#DlH~&pG(^ZxX1q4xPn4#*=n?o z6!!_-`@VL0V>YXI;}fa*I2TwNOXE(Tk-UlYnKY8U2lrK2xvMwe`|l+^YV1nOzn924 zQO0Fs3>49$(;3N&SVns1Godr4jC)oY$1PR2vgBN67JtD{nkkjOtU zYHphun^>99YM`CwC{4>u*Glr&p6yc27c|!$VZVc|57ug*?i8opS@oW15Imonpn zBfeh%?8a7AhBs0h(pdAqmOMQ(cgPjHPBhbNj4|@6c(rKP7!KqdZCdgVaDW(_lmaF# zvNYG7Pj}pXe=v#}H*zKn@na78Y^S29vD&7&&MX7z0oxs zAF+TPxtFDK-AFek;F?hF&TA&QGx0y|Gme>b|-|Xz-j3lc{9V2&R;lRHNFxv9K zSJL?SHE7TN#GquY@p5eR*nl7dpXJKmuD_4l>@qn5eyTAy4mRp3%VM#K@a`kz$&M15 zq7@f6T8r}ahk~2@P9o12Be%atn@}oNHBclICaPR(@Q9!H%YeA%m(Q)!i#DFw{e6k4 zIONNi{zWjA6*tUlm6l;7Z0$YMZ+BXi?X)y$Jf7a|&}lLvtGcSyl&SJF|CVrLiPyvK z$ezCDiE8Q5`?6iQ)*bgKT7}EBz5KaR?*ZT_1dAOgDSYTmdV11`SG?pcSl|kqDzYw5^n>==ihuTJHwEv zn5z_h&u`9oF_B*Q%6MsZd296I*Ovx;-EWvjzgg(w`itCB#pU)NZ@jf}sVrss_mWHR zN2M*bACB)0xGN%z9i(vbj($J$W4p>v72J|55)w?!CF-PHHy?sZjI)ey!U9GlzBL=K zP+q=2tj|4@pj-4%E>cLkZXjCtY83d^;?nYuRu?_$#T%m8^9#((>9$$)!#j$g()-yj zezk@xJqomYfn?qJB2e#CBv3%rlT^i0GFgK1`3)se7Od~xv>X#dOt&w;#Z5EFx5DyH zF1KOTa({W*Re(Y};8HU0Ky3>bs^k?!<~SMKb8lG7PII)qNNsq(CP!+WN6YPPQ^xO~ zU4yh>BBG*f;!dxaI6-kZL)J9xboHa6(qi97?+xhiGTMt3f!OiKG{(12%Etid`QQf^ z^$`>t`Ia;`2P)cK)B@kq2EwqC`j zh`Y-Q?Zry})@kE*bW_2yVQ`8}`o!O#8~srnk!~5mbsf>;X_U+^%s0>*JVeMj*r8 z3RLQr7KpWa3zrocLD4T$uP2bs@9WbZiDCn;j8*@5^~<5`t)4h!27@6@T9(u!OjfR~ zKuUwEX$VZd%bjfFnZ&yNp<@T+aszRG&c(~l5_f`1EoJkdYZq*YF4A1I$Q;6iCh4z3 zw5Eh$Hh+l>MRxPR3OT*#q#xXp9*}Q`dIZ*4Y-mvtqHWK+z(G0ma);eX7$fCdO^@*?ox1uYp&EfJUyf+H(`^ z-%InDk%PZ}YrJBgv%0Z%5G=|D4IHKf^#>XzXt@XsR-Oc&jHL>6D+nXgQ-gjnB2A;A z4Lscbh+XVorKiCsdeSkI%Th$hczzOt??=CdJ=(TT1eejq`?d6Lq6#rtv`+XEH&I@U+uJs@;4W=fFPaLfT;}3HnN$f{$J0OSTCv);!J#=%Zil*M1ey z9~xX}M&N>BCo61&aZx&!j8DpdQZrReye>kaPiU7(0ZFlZdg4&oEX~dy3irg=`ajEU zou&leFoaA07W_rxI{tLw#d|$l_IJhWJ+Z7L4!cz1s31vupZGE8H*!+w#_mv}Mp-L7 zg`r|t3#vA}m4q~Z5_9O#)VgsNzuF69h|tE~7GER1y4{(<3Zq!Vznl*w4&MbZIARIK zca~(H;E2AU5{=3D^g>(cN)@naFFBOmkf?~wpy_Fy*p{f!iwiZ$B zWm&?8y@HSna92wC9 z}21PCIjVHE9bto2ialU3NmKIQZN{zto~MJ{s3KL1|Q zAEPM!-?Z8P4qXEOr*HTFlpwz0tr=bmzbu-jk&hUDZ}TZ$+a@#&rly)K-d22f^br=I zQgIEkW@r;e9Hz*se11;3jRLa^J2QXHg{oH7PQa#%tIr(5s~?@9YFXPF%GBrg{}yTg;#_uOm58sU)C26u_i3TjGsQ1>2Euq+lAQ1ftD zT%=_)fU7-%v~5y;8bFh>(w9OpB!ORVP{xwbl0oEJ(X?e5svTaG)e+*0jr?aqZ4=-c zUgNDNGU+*u(i2;vwe<_4JMqXcQhLafmTBYJlYH{`cE=w$5)(5mlQ?$udy7`n{iNjg zOk7y?k%LG8FlBYAO=?x|_x=rmDh{n0>Y$XXs_-ly8?R`>#~1VdEc|jj!icMhwecX} z0%t{{Y`Ln^;eS&lEJ{d9 z6teI&(*yAY(;@A|upHM0>j{`NdW00D?jDaau9svwFE>EyC*}!0Eex}+gkN|@OjZHCywllrwqWnu+6F9d$KJ7G$~BoE#Le1B-*QEJJ zQT8FRNwueJrvPB6D)T zXPGUq>_{OxQ+vBF+ycc4v33ZF1%xz4?_CXvAq?7_mu*wf=yuz~y#7zJJPK(_3ruD4n+~R5qLh1$Wy&-kJ-u`~{re6SlV(mi9*=fKB zBq77}H$7mj6;44SJ=YfBKD>67)8TP^JJsy9PRnB3(H(|XW}1NL zAe^ACgWy)8ASgqhCw`Ho*`uYq{Q3sW z2C{$UKRSZol~Q3gA6iW=IFKj3Q|^`z{uIpxwkdwz?D?a6ZHkqJuntJx2a5Ni1=jv7 z=`pL*41UbSa}giS1GPf*F=Bo)qqT7eel46@UFnEHaWQhm&{r{%kbkE7gGypo5P(18 zv>$!)-7?3GwcfE?(9$0a^>3cF6CL>Gd2CCa;???y|uatdxKriIpNc|Q_V=d8=htW^l&E7UEr2pfT+T&8+1k$kVWjbZf?nY`yL`^DhYX^n)jV}{*^0c4M+8pleLk(M^lNKkpih6GC5ebM5e=$dY+4@` z9?MEs9c&WTFnK+)`JKDTX);Y!*t)};2ytV|EahV^=+LM*8mk*%=J1`W`>+F~AU59| z?ob~kLH05Z00?}`>R!B)7-N-;k{jDEu4V4mo)zBUUub|Q653@iJ90g`S~P{UtO>%) zIR#qg$$YW!UWW9Rr9)WGlIKA_yEwA>P@P)Ui)>& z3sX5m&lr;2Z)3lhG2K=ic((0^4$SAnr+b-OlE*4Euj9M*S?#ArRZ0~S6%t%*2uB5& z<`3VdwSPiTm@%3pG6`1_i`VP~rYfrI@>%4YCS>;~>H?j|)fbySj(zlU$eCC%E$m$M z-mY+2gv2d9@co!>xl_@SxM9&{bD?)?3xVTS^p{qWAXYlW)W3&=Xif~sN4xK}wBca% zE4zfJED)ywc3}lxi>oqog|wf#ruB6QN7f^tuS_F6r9wKk!G$|!LQjCoigk)l@gb_9 z%S4lF)2c3NGb-#Z7r8e_rwc3iy@3Ptc&nUus5u7!`Il97KC^vjHd$jv0&5tM!2rOV zr!`y5qey$N(U0y@dQ<$(^P?h&V76_V9d3;EglfNt^ugt2#n&!*Ri273$D?RgIG3B0u?&Db$%a8g zOG4XthJ+)W^xn%&+M8a3f6Jkcu#PE+Xiwz^SE}UMo-7?C<%J{@l$%3dF5VjsPAz!9 z+Qe4c&B9;f%g6Gh-zwnNqg#wwa~ZWoST!*6R#sE0$Go{W4yxFHA}ScDC_ojx5(MTn zR7T``qScczmUx3iZw5rsL!>UK-PB(YDU-&j|8eTWiTgFF<`HJ~^gm`Xg#mE@=~WaH zjTKX9vpMA#3S{yQ_Ra&p)Y$Xec%0?z)SUVK%V0-wtCC7k!uLTf<2=hka>%ejNU7(1 z50K+i%K_Vg0Go^0oJ<4qCs8I;%0T(}9jGxKwF056hqWV8+Pj1Xpy2~hXA%>STOg-g zUI4D(r-te+!{4ZCR8V=+Qzr?ITq)yjEpsEQuArG?eaHI*$qA@FG2P8zJZ$GGZXt40 z5SQ5Ht3LftQiPX3`Kd(Q)7_WwppXE$VA%l~S?S;G3~vP<$?ZG~0y+*WJzXm8HubpD ztR?E3^qL*s{JrxfEBsJSkesd6AQ$*|%~-jFvzxvT5&~@q<1h zak4_W8z@Za3i4HjKekR4vOhX_fp4Irf~uYD=K-DhFsLpuI>2nUxx#AY9zW6AWphF1-G{@|uS)r*59tkQ=d_&q>x>w{x)3;BlnuE;Vz^7iKmBdQeo;b7q4Qtx&8oe3-4E;L zv+JFZv`svkMl-~B6X6mAK}?r70_(`&_ye}C%L5?u7G|4OJ$W2x_2({HSt&;{v48F6 zm|L+sZO)=habPvDeap`n#<|>6d;}52qpqsd?P-2K_bicz*3K$PHcfkUO5Z(IO{xV7f{qAaS%5kJR1D-+J zV}e*&PuDfqs`^!Vi-@Dg<>0f2nez7JrjAe33%e5}+?<&&0QBGw+464}zXEe@;w#d= zDBCwT0X*yrH?&^riE*W-Lp?NQ%ilkD%_F-@Ol^bupV_cXHL!?`wrJxkUraF?4R@ds zpH2E!xU?8k{H6v#WxU=kGKU0V-_$%TwNz4NxIH-0FZBX9tlI*yLc*{l6$Xr=Jl&W< z3-e@Ys8)#a2B8`NzyGh)CGdZHPp|yvgmSsOGpghlPhJQ(blLO7m#BRlmozIih{%q4PXYhx0X$TBYxiG|O?*OWb|GhNt{1TPe z1kk&JmP{R^YU|m~Xq}cF>z(J()u~aqn44653mK`}A0tAsOXbY)J6s%5wWjQ)F)%0F zBbp|Yd5gGZj(7fty{wB6g|UY%O%tKMvA1Z6mPjxSVbzsyQDnt?GnO#0qkH}V5K{7t zmMw#!g%t-@`4&@-{BNPatQkWGdcuSIFbOdp&6J_0FV7jXaoY@YjQdLipeUeBA!$l! zUXLR|&QvKFXTz8@>g5FJV9q(vx?}BOAUmwKwKC4t8l*ua7H2viHP zMswA_OB(x{O#mgZ) zwdW6prbUFUJz~j$cF-5@V3FJ-yP03><*qcS7#9E#3#lr3@XWEK=PvIo*HC?G@7BQ2 zchrqU2G7t(OGKE&B5>Fae%)9vIrhnVjU`vhF8L!tarLJMZ`keQoZhyNp4<%q{iO1L%e+(T8KeuUY1RGw{wIryP`xN!EBT zQhS*a4l9ItZ!!pRlq4vBC2V^F?Qx`#r=UF9TS<8$iM~lAK|EWl-sT^$>({Cmla5|9WD`^O1tN@Y)-TcJ5( zMea^q-1A!C?NTVK+p=A__V1;B@FgckGm8^>^bLglYxanpPrs~x+-IRXDGBf(0x`ez z;KLTmoq_u=GZLNOI4nQae8h)GhZDzcx&q|C9LQ*)fxH_hHvTv9>-J`HSa}R7gvIG@ ze}E#XW{$0==Re^Z0G2b`y3bX1{lr=4sMz`Azyfr#kfhMiJ* z2IGu57I#obkjM~I=(8OST;jv?L-W(N*0k6>+;dkC0Hb+Efa}g_qror@RUU(S&o_x; zC$)^s+`E{OSl%MCe>cfdk!9Nfp1xZiwKmAD=Tks9DXLf)dDHUXciu6ldcA;O*dIVL zDk+xAs^U~r6`SkoYf1P79nW>Kh{{rK-kWagT3enOZ#wrmRf3fCsnY>N`!IvB*L|eG zf=H1G9-k675ZT?I&FRY}))}GVln@5K4GDQNad^gjH+Q4^ZGWoZ zGb4fZ9+6HEu z(h?J$ozaS6V)VpSI##y)4gBHLFLEJa(JcZGDlGEw7{3J2`DKI7&eYzgoWg4{Ieme!O+i+;I`rDUyAYO z&ek^{0qj@-{%0HX!3bu&-E?*3Ovdhro>zx` z^JG)^*i578pof;brF>S`!MuT=MR(|q^n)H-Gjt}75?p!Jr9|y>u>DZ@v(={0r*BlFN{knFf%G2CwTwZoLRAquL z8y>EiqK-7!nsI!*^D@s~9&W4Y%VMx^ce;2OeX2rIaj;ip_JB&3k^nFI>z(%E4rB?YwY1?#rTcld8{z80qu^6xpA1zK7q=aCHd0n%rgYr|R zU1ahCu=7>Qfv>DSeWKu`zjF0{x7I^4m~j|f@Fwq`rz--&WvWvZ zPdtCPjSIJe#5?C(H90Gucb{rU3(-Qb^xvA$(0v8%+LF~;V$E|^w!-4ZCB)X#jfdP? zA+iILxUa}W{8TxZE0qMW!mMkT3JU1TM0hx|iHE2Cd+AC~o@jGYIz47gi3cL4*=Hy< zRO*{OJx1YYQ)kO)kwd8AU8O-pxl94MJ?4zh9*`s$jts#nT@XeNpdy?}US9`QYMug2 z8@dzIV#A0#K+8!rPZL%@7qRO#)IR@T3&r}ca;DUc+_J6E*Nj9r`TPT;zVBYZlb8e7 zp6H?-le5gkU?MwZu5$l}M#WPKC_V$677$HtE@M5&Ka{1twAy=7KSc zS>7ie5^NireeZyuj^AkUE+iA$FR;CnJqxzpcgR_XPA0s^k4r35XVa~cv?9ABX>~3S zvOM@Fo)3RdJT*R;egtk%UNq2*=oe z2DlecF0QKJ#VzR$En82|%pe*e_(XsBrxbF_Yy-3`f$F zcjYmekGtKQFrV1=18uHbi!Qp}x4tQ_@}{^kEPXRd;YifKYb z!~TGj3yqnVp3bs(z3VjRe`qlwSI0!!8Jp}87^cJ6a_;~iCtiyqcC;WdV=P>TN+_GQ_BvjH-vZv4^M6Zdium5rx;r$I7W~V$Vd% zZV}t9ESTJrmf?q0 z-?&}eIHsjfccEfhGU8i!~u7Ep~m})3g zx@u46H(Rgis7uu_bnv#pak<*}^-ahtoR9;{S%2uG+QC&%8aSLJRI7C%4Y@wLYeWb7 zq869BNl^F6!$Glhv^o)d>l;`v1-a$N-jj~la(LOMgTxhD2xt9!X&m_V3~w6O?F3|{ zii$oV>1gZmA{8!^ga@V8A;auYT^-;S`%4=>8;|)Jd-JzJCoz1b5V|cN56e>>n>FLW zOxnqrk>1;a`kMqTupG7^)ML zSX!WCLUDLdMgBN$6h`DAk(gTBOBbvJvX;G{{f(8g>UWX!TEYQ1@2MKtn-98%r|M(z zKVeAlW`-!EoJ=ZD{qX$<$%`?x9Q<~3Z~}Q_s%p)=(hYPwD9fJ<=E+z2p|UWOW^W!d zakEU^$B67N^X{>0SlENB$xc74pw=+o^9+>lQ4(k zwH^1wJVkapHYx+373MuzD`LNo{}7lJ6rA>Us$5(G&Rb+yk-eckz~Rv@cg9Fzcj!gr z&B9X%2LOh*cg|-DF~Uc%H0HUh$Qb^&jMBz~Kp=~6jfzn3)no?r_ZGwg7r9niUENph zqbZ_53nA5lf1|DZNfkXtZmZD7Ft4ap@2KVjw#~eerR6A}A`sev{an!e2bAKxkK##;=Oo=4!tHxMBBFAOY&1XEClDn(sW0x~o*Dh^MZ+9xXoQw_Jb$-oQcvdM-VB%wNY6w|~?%jF*&Wco8?MV_% z7LldG2Qb~N13GtdG_raV>GmWr`%`^txIs&vw0OhxVao4Q^8QFk(fP>Tl7M=euXEzT zgBf*J>3=VcC{{2fI@ufwQhPU9vmlS&)M6tzu3pOv0^X$HT~qq4%S}`X!NVl2`s@AE z2zB#Ta0Ye?J6#USSCEv&%@Pir8m*gzd2e?s9yzAbH7I-d-U?s_-H@@&)`*BwR<4rh zR%I+61t?^2kR(gsdQg!fr>d#`G{D@sz-(2STUiZR;I6gMVH=fWgY^{fXXP_VrHuAg zLl9WT3}1^ZtDnq4f2VE+D#RV}(64#!-jrWOd*L!h-THw?`rW6NcF$l^0#{`jE$%rT z?vJj4G$7J?04*+K?VgOYwrQ|I7|ZC*a!E=X&1O4I3wQ6n+KY~eT@&q(;UChH>{n1< z9nR)U#jl~oaoVFs`6N}AJ+AjA?78G^V&HU8OVt|aX`6YmvvD?b*RQMV;EpF2oC;>| zxk7(J8NgZGfyfS&iqq1FCTCsSCa5dkg<)kFq~^n}@x5k0iCsp{hfhh(g}=FBTs`Ux zmHdjr|L>(%^)wSR$NpHqBy5bJBPaFjIQ5(-rl8DZl!eT|9xx?C6eTHO6^uchbdX#V zTY!)q{@DSGK&$s7)~v5M%Zpi5D$ZR?P*~ofBL6ssr5h??C#bG!y0|U+GyiK@|5(Ks zCnQ8fTMWMt1<)Xz5h6#cG>as4^Ig9V5?)c zRUUd{`*i5>KVtCMenTO55vg+#r~%o6g^c6>DG~O$V_od-i1+Gt$Fnss>(B2Mj8#M$ zl-X3wV=TPVUbA5|*nUv9%mV@6$!7Rtdc{VSzt+B~{^@Itoo!(r#H%{hsHCP@7Fr=> zhj_Tl<=w;;#b|q!G0X)kh38i$^jgKjX4~<2QJkMEb9~9FR3=-c<_r9*gElSHa!IIe=(t0+0=OON3Os- zdD1gr4@{4^L8Um4v`rzHwWU6*({A~fS@3y!gr7Wm zzqaDiJ?QO9Hvgl|iQchdT`wCrlYngdfJyB#VdR3B{xX6Fu#qztfo+be1S76b6#DPV zMmg@E)mtM+KmFGY+%`bI`aI)DCF-n0sgmofaAwf!VNS7(`4NcyDCZ&wgbH>3+Ug7 zOc%s~ALDQ9NNQC~>drICs0A@*ECfM0MQN$c-hDr(NZr#^$*!hOpb|m#rN5!g*D`>2 z>xapn)Qg_Hmb3c{D)|F0zfX+5t2Xn%UW<7d>S83S_z$^COZzHo0(jRnQ#Hdce;kh) zRp-t46(w1p<{aMDIlZv)Q@~%|Eih*r5%uHjn|N<&@2ias&K)aK0PnWTJt|+HSD48i zp@*~-N*O+er=ev^h_%KELdKkq#jjIqhwoUKf4$)IIh{#IZRK-uYFc(XYd)M@mVac` zk{i1Ko{v5ZMd3U4*dQzU?ja+R#LVP*j@Uxd$47+_HXz4_K#ZSo9QQ&1S3yt=D{}@R zFqF9K8o1BUAr(wvpKU(`7o7h=52g(CSunYTl#LH7FIk$TLc+D-R`Tgvu5Ot5U1ywi zy8}13vr~-Uz`Tc9;fwib7UA(eA|ibx=u;`HB8vIsH``M-K5uBDEbGV6k9Fm3&c07| z*n2(|+GM0?rXm6Nk1Hx3pq#xI!s=9(2YfQ@MS{*Y-5J^0%2XE-_rFO-R8TEXpPq1|E121Y-bL>SB{tsBGI* zzy@XvfGRXua4+E88Jf3wImS~o&Nyv`|74`lWM9m^bW!O_6olKyY+05oe#6{Ie_xVz zU$tRt*hKj>J1Z7A+WP=z4T6DSwki7e@;^8zZg-pvyYY+j;|yfIa8mGS=d5w(uFWlt zg8ypp|95=pKQA(1FEAww8&Gv#gK`2-X=cscIrL8pTXqX( zttDZ1PoQb}xBX!`r~)!TxQT;{WZKH_GnZfdy`7%Xtkj(Ah znDfZ_SA2{e3si+tfa-+qsPo!TlF~2aA#S8!uc4M$MT%%@%w>!?76afaeqks^Lzkj zkb(u{czc^N6Or{K3q$n~l7Y(E~on zb4^V^;kZY&WWR~L;K4wQiik>21A{%-V&;emUzjP63JLe+(s%W&UVxl>qdepGEIT^8 zru8%Ceu*zygq61-5{e8PT83JK4j}|-8aNxG)d=g#R4o-}1PdYzuO?!MpXOj@a^{L$ z2`H>Jh32FFktjv| z29sppc!JK?TsZ@=%iy=w(JsXl#xDQkS*dh&@EAw6<%q2$FvC5qw)I|`X;J^h+vPh=71}5YZrk+$+5+Em9*w zKzb9UL~=<2C{=0%5lASZlORH9;dkDB@BPMjZ+!2MjBzruGtL=%Cu{FD=UQ`uVo-#s zn!@bn!kL;mF+WNVQ9%r0tft!Clj+m#b`%b7k`vEeHj+aS591jZ&EjlTuN85mr|&9ZNtw`-lO~R+ zur5ApnQ|4pA9`TN^hO6uCbr05>0MiTGMg~1l}weF=v8{%%d8f6>YnrlGiEtMR<$?5WBr170_2f+|ld37NH9JkvnhbG6}(o^9q-OogK0~1v!a&y)E-3v$zfzoChwF zW0CM!T&%z90kf>g?d~@>KGDE`J!#ZF(n+W=QR=a&D4JL*Hw3S5MT5--^%>x0T2~au zqGmx=OudktEJT#qfF1`XF`&Arro zL&PPDQiUyUvv<;N2S@jU79u^6a%}LhI z5;J-!uN?h&WJg5I-8uRkO!_X>puCx;-J&Yg3p!f!9qfa?-lCFSJLLrpI>s8`gn!Xpt@gdtDN<`E^eNYhOR)| zaj2D}GGMW^xP_vL%Pnm$^d8TcD=mHanBjz=wWJ0n6FD>g&iGuJD(l-t-t9M(TVy_G zGAp6>(rQW}uvL@nGxV?75367)(k6v6#Jy|@XlXIWmpkUS`sf`()Yf209-y8;^e(rN zfIipYcC8FxCTjack(nF3sUH_4s`q?n#kRsQ)jQf|b-diLdWB$B-~+Y1k6zwdS72Zq zecX==q9nlQ5q?I@pyEm9UCLn98LU{>QfqkG7g5_bv5D$7>}DZgvNG+1_aFQ9-A_-4 zXikYpjtG!-TBH7I=CEKUAJ@;`_UDd4dgmelr}&9*k|-({fhD!f$j;*`i+DNC5nDt9 z`J0^$J>&mId3rLBnq-L{w;s?ng~;9Bje~B9RjIJY<8cRoV%7?v%q{vDFLIK-e@RcpNjY#>_yrHh!!?1`;4*ct2?&P_6~<2MO<9S&>md9HR-iGhy@oe!<6aw3*=2S$`(j(MVOFM7 zF3z9BC_WhXGzq-xcYeFWoDc;DO{|K47FA6&(jBVWpS zS?~=0EmD?|W25-ZELt(f&9$Jw%^Ellb!|ILJuV1(NS3w282EiaelRAzPHDJ%$}!K< z`e_g*H}vuHXdc|F?}tSR$`>AU0s@4oCLzAuaXIB$(R1mfZ-eXJGV`->4uhIY_;uQ@ zu$_HfNl)^(SU+2aK+LL4fX~AMz!rlmodTKCf!WcC91a22q)oQG=8>j36i@rw9;-ap z?$92U;`YCGihuTv-`WZk*K*Lj(?9GT*VMIzALaSEGJUx`{$SjUzOewGVzDze;sCuI zZ)@_AOpOn(ukFRAwZwN!Z>zRuhC;k#1Nlk2NDD-WVM-89C+X&OSit2|ay(vJfD?O& z%2m+=%E)d_$NIk++<;w+y&3H^+FOv*m*DQrmt%1*-|f*vZ<8aUpj{w=IJ5^YnN2T% z?;z)O%hf+udJE17RuuJV4Qy9~dEJ$#iPr}u46XZG+M|^OkNCs?{KAZu?O&N|2wS%5 zb3@aZ!uADd9c)rx$hS(hsHe;dx`1Qb2-2?Xh?8FX5eRlvY+?0*BI_#! zu4TWb49TCH(@0_Hofk7O$d7<@%3SDE$`<|A{dN~(6OBz}()TPfAUpdz%Eu+nl2luV zEH9Q4qt>`fU))R6F}&wDM2$tfxE;{#`Rq{ZeB2Vf2n7nLyYF_}CetjyB_JHMrpZy(vh{jJMNfugC=m&^l~)@Sex**K*|1scxYBACrfo+R{op;)@RTz<>8MptS>bYNhg3=a$_Qx0DCU~YxFZtR%%>skYqwBgE82vPr_Qo17Kw*+coOyv zpIx}}_Z-C#E88ua+BfxcCfnj+wnBhu#&~3Ywwn65cJ_l}t%%c6$f!r5QId@KI9&nv zJWNt^JJ?8?BmLJXE{yz!^E`f*D&bGFPafLR9%~T2Y#od0j2xV71DzC zp@XU;0RvT~8J3ytD+0~=>FqCr2T@&`t#g_Y(p^i;&(_&K6#A26?7fksKx?0t(u`yj z@31~uy*j8yO~y3hkRxGpeUs`?Q+qXF*!JNAHw_ixc|o!zP%EH70R5po<|_j& zn8!VA9)Et|N<$|T+=B)4n7TkM64F+RcF||Mf^A9K&PBYoP(&%_qGtrASVqma|=^A$b~8WXw#ix zKoVyEyDGpP#e4h4cu#^tl-6=jSJaJ<8DT97ekk^Ype-ECukuVAVt(AtkiWvmlMA3P zioi|8o(t;KX=0jYRE^-mzM)PU&bd6cJcp`vHRr*RDivwL{cyY(ia>PNihr<Ga zQLQQE(TH)!uqtQ)YGi22We$HT1kJvrds|wwL%6@bH7L=(KTlUrThK&EPT{<#>6I@^ zN`SKpH8}e*lAk-Cp@p0`WMNQc`>%`q|2i#b#e-5$2HJv`{qp%%+g zY|25Zu7RjwKwPS?Llkd^9);cnsL|lPEk>Q#GD5O6BS=%@zFv^k=@yH$tFfO$?EUM~ zak^3s(b{bk|cyq25!Tut7SrI8REGBCJ+&oKwOnoQ( zbY`+ywWhlaJ6xT3&*k-_I;=)|llN^zM7zfKYq|m3^$Rk=p~H9zYDH(qfB{)r~fi{(Z9~CkqrKHl=u?PO_$I=l%7QUE4#8HQcGnX1)I2#G& zIb2qeKB{-VNsofbidF^;>9ld-H4a=3uRN9xCDQCGcTnL8Rg!1Os#qa+sa~nNM8o^e zdyOB~P!R{1Wp1=3iH5wJR3YxIarTa_)wA6!jEt$1<{^3fX2;EZh%DfLi~)b_>RBgO zJ3Y!98&QuA*GzlzGAE`wy|YiOa#mfN_j&Afy914#kps~OxX8~9h$O*BePAg1eTk;w zxQBKK&e>B$bu_8q;cVOZcr&CXDg$nmq%Sk){n~T-{ZFKv{&TC??0dcE+U4ZOCk{&A z2W5W*uVoTh+Vrh1g?LBF^e5-8=8$dgT~E7b58=JJQS<(yQW|rOj79ZsCFqNJyIx{O z=h315RiO_G7NM{=bBm|74C=z=eQsBoqMcNyQb!I~P46huO^@*g9^30$-IUGOC^jkdvc0?IVX28s=CEpC*2}GsTE#(`djVD7M{`){o)bLJ`Y&gYV|X!6ysypGV9o$`)NAdwl&W3 z0rBNlSi!IT^p2U*N7Rgp8v>X2v#ip|bb$ocHH4jY0y@6HAm($hvw4;*Ua>DkNKLed z{jL&Ldz%m<4mYOOkI{2CFK8x?mZaLy^bO37o6p|*uu9d!V%8_Vu1s)+M?CYvI=oA^ z80}i$(0%Ff{mnhM6n@z8v`@>mj0-Yrih{!Soa*8+@b?t}VnT#nev+1z{wc z3E0gsr@+VA1%*ZBJwNAVTHIB1qhvG&Zp0D3b}#M6I#5+O3HFYzgK7v6e^Fi{hd|L2i&iL zR)=Gn2)Ej@X?By9mIW^I&jw2l+~`eIg&39;Q^SIh{sQwf8u|0?zg}DYpyW-zD>~-} zy_U!CCfe{)Sc|X3)7B8iQkXBgIMf18Xh7diy*BJ+$DmRdedwcKetWFtv`4 z=@v_o#wp0QsSNtjR2ldwK}b!xD3@-djb6s?`%n26e0CV>67K2Z9=<_8fpwN{l)@a; zF7AFgP;L=lKdon{!0PMQe>3(|x|O7)KY4hbHSTo!?qrow=IryIU;s9u1I6u=5v&)p z7lG?=?h}w;-C{a3Ux6P_+q!_FlSLy#c0nvu|fgH-<1T-U=vjz+|pZ#`; zaPVm}nhH*uns`;cG9>zJDr_(H$@hqMhZ}J+2_pzsMMl$IRjbo(g|+9p9|1B;jSN3l z6rIKr!XK_fsD`>6Cm@Wj6Yzn+2?&At_iix%1gx8{%G(>_&0es`ciTTs$Tt7r=<>cZ z8dd}EjJn>CM4g2)Y+tm+;+Ev@nx$=qF8*Pu@Fu)E5ZULK=n<4UFVFe81uxTI?=WNY zvtM81Mt>s`YGJ3?HK!=l%?3W(+hO-wSIyBE;cxD!3f8+fXz%;7Jn`+kZI;lkz8GU7 zgn|~FL-a{jm{=D@}fm5Tq*qsZ>@ux=c=o2DhidOWmPa7Jq)G` zV?RGuthry8hJ28Bp_#5f>Owaxp0hYNeRPKz0hG^4k~f+$r-$AiDbTYZT<@JYjQM-@ z?*5)MI7^&pYyakVkos#j_g$R8;}TiFBb_sxAEVf_Lwl>7+lql3Cw%7=LeqLJI#2WGqf3YJ&&;r{N-61Q_ zPvz9O7&63#a3dY*uqsD;8?=H1$wLUTBGN5)-tT@@N|AtOMOsxptn;o=#$5et2P2NY z^{cnE`hboLis(dIvOq!x!FWe1foJu@$nCI)_5}ed-}|H`7XGx{Z7VwaGqbjl zMDD~+k5;?ysiNk>Rux<#Fu?P>bSej})cMyNd=svIG|U_V8&wknTaT)xY7YUITq?Fr zdBppTxO#jXbz+Gl-*_?Z-eTfkcA5*Gk(@*Y;?fg|c#Ttz^Mra_SMF1Cyxs zO55=V^N;W5&nlK(H77Q)IrFv???qO+3+F`kuUl)x*VMd!Y793u3Zm0?iz7Kpx;joV zbDg3!b+}x$vi+ax+@k2dNY!q^-F#kU9mlRpnQlwD%6Wke9G^bXk`^Pd*<_N1pmBoZB3VSK5l;{&zKXRa4E&nx~k>&eJ zI~AWp3bd%MI(h^E(n8WA z8`7c2^)g3eUl^fXR(XZ{Z#Gu;16h$PP1%Oi#Q`&kPaRhxW=;2-JqP;8 zjgj{MXwe~18{UVe8tbETkkgZogw4dSGWNP$OacUmjsag=4*60)V0^?jKh~}K`N#?w z8Gn7UKXAOCWzZrf?uQ`Y)_YK^)~7D3AmQanO)F{+s4su_BF*6Y|AB>8;a9X);O-Qtm-Kp1<8$UsXBHV?UK-LV-(6+!YR^P}lNsz&hkQGW8 zHZD=OHhBFU7cx7V5%L^EBCFyyBgWD?^>&{|cDFy_;X@M#n3K_eXQlmLxzx}x7PT;N zbQ|zAJ{`|0Ivr(@4kTd(_;qvm3FyAX57wWU?SfqP;{*T!TkXj8*abpQra$vPP*Fc? zpk%bo92p3Vlw>1p9bTkE9L(T;sQW0C@vbC6Cj9 zIX*Cl18<|oE%x=CAt#^*4v2-*ZqB zT~`V*`X^)M9++j`A|GW#{)F%Tegg8fIJTP+tK0p)t9}A%K>%s4cW7tOv2W;IN)vcr z$yEb2IY|eyF30I_NAzL*!ntD9HxA%OH|l~#eXrv}ea>WCNjL$GRnm?+nB~Bf%cSGi z>!{#kNB30WJ&PCrN0$6QbLLxYdmOB@z*I`mdeRRs9|7A0cIJ8=WvdKxm>!Sc6(Hdc zystw>6eeeZF$#S6b#`FUen}(@b=a{CA~gUM^AF&WCeq=Z><38X55_DDm?IMRp`biu L$42$k$>je76!IAw diff --git a/doc/EnKF_user_guide/images/enkfbanner.jpg b/doc/EnKF_user_guide/images/enkfbanner.jpg deleted file mode 100644 index 1153c1c3805694e301ba2189a10abd31160462ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21558 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 diff --git a/doc/EnKF_user_guide/images/enkfbanner.pdf b/doc/EnKF_user_guide/images/enkfbanner.pdf deleted file mode 100644 index c87f3d5f3d7b76806ef25323dfe82f07e5bb0ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13235 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 diff --git a/doc/EnKF_user_guide/images/enkfbanner.tiff b/doc/EnKF_user_guide/images/enkfbanner.tiff deleted file mode 100644 index 6984e86d0a4e3285ae0b08ac4a38b6c6511b82cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16352 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 diff --git a/doc/EnKF_user_guide/main.tex b/doc/EnKF_user_guide/main.tex deleted file mode 100644 index ae80f6d54..000000000 --- a/doc/EnKF_user_guide/main.tex +++ /dev/null @@ -1,46 +0,0 @@ -\documentclass[12pt,letterpaper,oneside]{scrbook} - -\usepackage{import} - -\usepackage{dtcdoc} - -\makeindex - - -\begin{document} - -\frontmatter -\import{./}{title.tex} - -\clearpage -\thispagestyle{empty} -\import{./}{ack.tex} -\import{./}{forward.tex} - -\tableofcontents - -\mainmatter -% Chapter 1: Overview -\import{./}{enkf_ch1.tex} -% Chapter 2: Building -\import{./}{enkf_ch2.tex} -% Chapter 3: Running -\import{./}{enkf_ch3.tex} -% Chapter 4: Diagnostics and Tuning -\import{./}{enkf_ch4.tex} -% Chapter 5: Applications -\import{./}{enkf_ch5.tex} -% Chapter 6: Theory and code structure -\import{./}{enkf_ch6.tex} -% Appendix A: Namelist -\appendix -\import{./}{enkf_appendix_A.tex} - -\addcontentsline{toc}{chapter}{Bibliography} - -\backmatter - -\bibliographystyle{abbrv} -\bibliography{references} - -\end{document} diff --git a/doc/EnKF_user_guide/preface.tex b/doc/EnKF_user_guide/preface.tex deleted file mode 100644 index fefd32c2d..000000000 --- a/doc/EnKF_user_guide/preface.tex +++ /dev/null @@ -1,28 +0,0 @@ -\chapter*{Preface} -\addcontentsline{toc}{chapter}{Preface} - -\section*{Meaning of typographic changes and symbols} - -Table \ref{tab:pre_typog} describes the type changes and symbols used in this book. - -\begin{table}[h] -\centering -\begin{tabular}{+l^l^l} -\hline -\rowstyle{\bfseries} -Typeface or Symbol & Meaning & Example \\ -\hline - \execout{AaBbCc123} & The names of commands, & Edit your \execout{.bashrc} \\ - & files, and directories; & Use \execout{ls -a} to list all files. \\ - & on-screen computer output & \execout{host\$ You have mail!}. \\ - \exec{AaBbCc123} & What you type, contrasted & \execout{host\$} \exec{su} \\ - & with on-screen computer & \\ - & output & \\ - \execsub{AaBbCc123} & Command line placeholder: & To delete a file, type \\ - & replace with a real name & \execout{rm} \execsub{filename} \\ - & or value & \\ - \hline -\end{tabular} -\caption{Typographic Conventions} -\label{tab:pre_typog} -\end{table} diff --git a/doc/EnKF_user_guide/references.bib b/doc/EnKF_user_guide/references.bib deleted file mode 100644 index 17de7ed32..000000000 --- a/doc/EnKF_user_guide/references.bib +++ /dev/null @@ -1,137 +0,0 @@ -@article {Houtekamer2005, -author = {Houtekamer, P. L. and Mitchell, Herschel L.}, -title = {Ensemble Kalman filtering}, -journal = {Quarterly Journal of the Royal Meteorological Society}, -volume = {131}, -number = {613}, -publisher = {John Wiley & Sons, Ltd.}, -issn = {1477-870X}, -url = {http://dx.doi.org/10.1256/qj.05.135}, -doi = {10.1256/qj.05.135}, -pages = {3269--3289}, -keywords = {Balance, Data assimilation, Model error}, -year = {2005}, -} - - -@article{Gaspari1999, - title={Construction of correlation functions in two and three dimensions}, - author={G. Gaspari and S. E. Cohn}, - journal={Quarterly Journal of the Royal Meteorological Society}, - volume={125}, - Issue={554}, - pages={723-757}, - year={1999}, - } - -@article{Anderson2007, - title={Scalable Implementations of Ensemble Filter Algorithms for Data Assimilation}, - author={J. Anderson and N. Collins}, - journal={Journal of Atmospheric and Oceanic Technology}, - volume={24}, - pages={1452-1463}, - year={2007}, - } - -@article{Hunt2007, - title={Efficient data assimilation for a spatiotemporal has: a local ensemble transform Kalman filter}, - author={B. R. Hunt and E. J. Kostelich and I. Szunyogh}, - journal={Physica D}, - volume={230}, - pages={112-126}, - year={2007}, - } - -@article{Whitaker2002, - title={Ensemble data assimilation without perturbed observations}, - author={J.S. Whitaker and T. Hamill}, - journal={Mon. Wea. Rev.}, - volume={130}, - pages={1913-1924}, - year={2002}, - } - -@article{Whitaker2008, - title={Ensemble data assimilation with the NCEP Global Forecast System}, - author={J.S. Whitaker and T. Hamill and X. Wei and Y. Song and Z. Toth}, - journal={Mon. Wea. Rev.}, - volume={436}, - pages={463-482}, - year={2008}, - } - -@article{Whitaker2012, - title={Evaluating methods to account for system errors in ensemble data assimilation}, - author={J.S. Whitaker and T. Hamill}, - journal={Mon. Wea. Rev.}, - volume={140}, - pages={3078-3089}, - year={2012}, - } - -@article{Wu2002, - title={Three-dimensional variational analysis with spatially inhomogeneous covariances}, - author={W.-S. Wu and J. Purser and D. F. Parrish}, - journal={Mon. Wea. Rev.}, - volume={130}, - pages={2905-2916}, - year={2002}, - doi={10.1175/1520-0493(2002)130<2905:TDVAWS>2.0.CO;2.} - } - -@article{Purser2003a, - title={Numerical aspects of the application of recursive filters to variational statistical analysis. Part I: Spatially homogeneous and isotropic Gaussian covariances}, - author={J. Purser and W.-S. Wu and D. F. Parrish and N. M. Roberts}, - journal={Mon. Wea. Rev.}, - volume={131}, - pages={1524-1535}, - year={2003}, - doi={10.1175//1520-0493(2003)131<1524:NAOTAO>2.0.CO;2.} - } - -@article{Purser2003b, - title={Numerical aspects of the application of recursive filters to variational statistical analysis. Part II: Spatially inhomogeneous and anisotropic general covariances}, - author={J. Purser and W.-S. Wu and D. F. Parrish and N. M. Roberts}, - journal={Mon. Wea. Rev.}, - volume={131}, - pages={1536-1548}, - year={2003}, - doi={10.1175//2543.1.} - } - -@article{Shao2016, - title={Bridging Research to Operations Transitions: Status and Plans of Community GSI}, - author={H. Shao and J. Derber and X.-Y. Huang and M. Hu and K. Newman and D. Stark and M. Lueken and C. Zhou and L. Nance and Y.-H. Kuo and B. Brown}, - journal={Bulletin of the American Meteorological Society}, - year={2016}, - doi={10.1175/BAMS-D-13-00245.1} - } - -@article{Houtekamer1996, - title={A system simulation approach to ensemble prediction}, - author={P. L. Houtekamer and L. Lefaivre and J. Derome and H. Ritchie and H. L. Mitchell}, - journal={Mon. Wea. Rev.}, - volume={124}, - number={6}, - pages={1225--1242}, - year={1996} - } - -@article{Ziehmann2000, - title={Comparison of a single-model {EPS} with a multi-model ensemble consisting of a few operational models}, - author={Ziehmann, Christine}, - journal={Tellus}, - volume={52}, - number={3}, - pages={280--299}, - year={2000} - } - -@article{LeDuc2013, - title={Spatial-temporal fractions verification for high-resolution ensemble forecasts}, - author={Duc, Le and Saito, Kazuo and Seko, Hiromu}, - journal={Tellus}, - volume={65A}, - pages={18171}, - year={2013} - } diff --git a/doc/EnKF_user_guide/title.tex b/doc/EnKF_user_guide/title.tex deleted file mode 100644 index d2e49c76a..000000000 --- a/doc/EnKF_user_guide/title.tex +++ /dev/null @@ -1,38 +0,0 @@ -\begin{titlepage} -%\BgThispage -%\newgeometry{left=1cm,right=4cm} -\vspace*{2.0cm} -\noindent -\definecolor{darkcerulean}{rgb}{0.03,0.27,0.49} - \begin{center} - \includegraphics[width=0.6\textwidth]{images/enkfbanner.pdf}~\\[2em] - {\color{darkcerulean} - \Huge{User's Guide Version 1.2}\\[0.5em] - \large{- Compatible with GSI community release v3.6}\\[1em] - \normalsize{September 2017}\\[3em] - } - \normalsize{Hui Liu}\\ - \textit{\small{National Center for Atmospheric Research (NCAR)}}\\[1em] - \normalsize{Ming Hu}\\ - \textit{\small{National Oceanic and Atmospheric Administration (NOAA)/Earth System Research Laboratory}}\\ - \textit{\small{Cooperative Institute for Research in Environmental Sciences (CIRES)}}\\[1em] - \normalsize{Hui Shao, Don Stark}\\ - \textit{\small{NCAR}}\\[1em] - \normalsize{Guoqing Ge}\\ - \textit{\small{NOAA/CIRES}}\\[1em] - \normalsize{Kathryn Newman}\\ - \textit{\small{NCAR}}\\[1em] - \normalsize{Jeff Whitaker}\\ - \textit{\small{NOAA/Earth System Research Laboratory}}\\[2em] - - \includegraphics[width=0.5\textwidth]{images/DTClogo.png}\\ - - \vspace{1em} - - \end{center} -\end{titlepage} -\pagebreak{} - - - - diff --git a/doc/GSI_user_guide/.gitignore b/doc/GSI_user_guide/.gitignore deleted file mode 100644 index 3b4dab087..000000000 --- a/doc/GSI_user_guide/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -main.aux -main.bbl -main.blg -main.idx -main.log -main.out -main.pdf -main.synctex.gz -main.toc -*.pdf diff --git a/doc/GSI_user_guide/README b/doc/GSI_user_guide/README deleted file mode 100644 index a0eb96dff..000000000 --- a/doc/GSI_user_guide/README +++ /dev/null @@ -1,24 +0,0 @@ -This directory contains the latex source for creating the GSI user's guide. This document requires -an instillation of latex that supports the CTAN extensions. - -1. Required flavor of LaTex. -Options for the three main platforms. - -Windows: -The most popular choice here is the MiKTEX (http://www.miktex.org) distribution, which lets you easily -manage TEX packages. Many people advise beginners to get the proTEXt bundling of MiKTEX, which lets you -install by using a .pdf file with links so you can read about your options and then click on the right -one. And it includes other components that help you work with your TEX system. - -Unix-type systems, including GNU/Linux: -The best choice here is TEX Live (http://tug.org/texlive/), which contains many packages and programs. -It is freely available over the Internet or on disc; see the web page for details. Note that most Unix -systems have TEX as an installation option so you might already have it or be able to easily get it using -your system administration package management tool: RPM, or DEB, or whatever. - -Mac­in­tosh: -Get the MacTEX (http://tug.org/mactex/) distribution, which is TEX Live with some Mac specific goodies. - -2. Building the user's guide document. -Run LaTex on the file main.tex. It imports organizes each of the individual chapter files. This creates -the document main.pdf. diff --git a/doc/GSI_user_guide/ack.tex b/doc/GSI_user_guide/ack.tex deleted file mode 100644 index 22853b80d..000000000 --- a/doc/GSI_user_guide/ack.tex +++ /dev/null @@ -1,30 +0,0 @@ -\begin{titlepage} -%\BgThispage -%\newgeometry{left=1cm,right=4cm} -\vspace*{0.5cm} -\noindent - -\begin{flushleft} -\textcolor{darkgray}{\LARGE Acknowledgement} -\vspace*{1cm}\par - -This user's guide is constructed with contributions from distributed GSI developers. We give our special acknowledgement to these contributors and reviewers, including, but not limit to: - -National Centers for Environmental Prediction (NCEP) Environmental Modeling Center (EMC): \\ -John Derber, Russ Treadon, Mike Lueken, Wan-Shu Wu, Andrew Collard, and Ed Safford - -National Center for Atmospheric Research (NCAR): \\ -Xiang-Yu Huang, Syed Rizvi, Zhiquan Liu, and Arthur Mizzi - -National Oceanic and Atmospheric Administration (NOAA) Earth System Research Laboratory (ESRL): \\ -Steve Weygandt, Dezso Devenyi, and Joseph Olson - -The GSI community support and code management effort is sponsored by NOAA's Office of Oceanic and Atmospheric Research (OAR). This work is also facilitated by NCAR. NCAR is supported by the National Science Foundation (NSF). - -\end{flushleft} -\end{titlepage} -\pagebreak{} - - - - diff --git a/doc/GSI_user_guide/dtcdoc.sty b/doc/GSI_user_guide/dtcdoc.sty deleted file mode 100644 index 02efee54b..000000000 --- a/doc/GSI_user_guide/dtcdoc.sty +++ /dev/null @@ -1,155 +0,0 @@ -\ProvidesPackage{dtcdoc} - -\usepackage[english]{babel} -\usepackage[T1]{fontenc} -\usepackage{textcomp} -\usepackage{color} -\usepackage[automark,nouppercase]{scrpage2} -%\usepackage{bera} -\usepackage{baskervald} -%\usepackage{helvet} -%\usepackage{avant} -%\usepackage{lmodern} -\usepackage{comment} -\usepackage{vwcol} -\usepackage{multicol} -\usepackage{makeidx} -\usepackage{listings} -\usepackage{longtable} -\usepackage{enumerate} -\usepackage{caption} -\usepackage{array} -\usepackage{float} -\usepackage{chngcntr} -\usepackage[a4paper,margin=1.0in,footskip=0.25in]{geometry} -\usepackage{graphicx} -\usepackage{enumitem} -\usepackage{epigraph} -\usepackage{fix-cm} -\usepackage[explicit]{titlesec} -\usepackage[some]{background} -\usepackage{dirtree} -\usepackage{etoolbox} -\usepackage{tikz} -\usetikzlibrary{calc} -\usepackage{hyperref} -\usepackage{amsmath} - -% Colours -\definecolor{white}{rgb}{1.0,1.0,1.0} -\definecolor{lightgray}{rgb}{0.8,0.8,0.8} -\definecolor{gray}{rgb}{0.5,0.5,0.5} -\definecolor{darkgray}{rgb}{0.2,0.2,0.2} -\definecolor{black}{rgb}{0.0,0.0,0.0} -\definecolor{blue}{rgb}{0.2,0.0,1.0} -\definecolor{tpblue}{cmyk}{1,.60,0,.40} - -\hypersetup{ - pdfauthor={}, - pdftitle={Users Guide}, - pdfsubject={}, - pdfkeywords={}, - bookmarksnumbered=true, - % Either of these.. I prefer the 2nd as this means - % the colour of the text in the document overrides - % whatever has been defined as urlcolor. - %colorlinks=true, - %urlcolor=black, - colorlinks=false, - pdfborder={0 0 0} -} - -\KOMAoptions{parskip=full} -%\KOMAoptions{pagestyle=plain} - -% Define a font for the title -\DeclareFixedFont{\bigsf}{T1}{phv}{b}{n}{1.25cm} -% Define a background stripe for the title page -%\backgroundsetup{ -% scale=1, -% angle=0, -% opacity=1, -% contents={\begin{tikzpicture}[remember picture,overlay] -% \path [fill=tpblue] (-0.5\paperwidth,5) rectangle -% (0.5\paperwidth,10); -% \end{tikzpicture}} -%} - -%\titleformat{hcommand}[hshape]{hformat}{hlabel}{hsep}{hbefore}[hafter] -% -% Create chapter marks -\titleformat{\chapter}[display] - {\large\bfseries} - {\hfill - \tikz[remember picture] \node[] (nr) { - \fontsize{120}{70}\selectfont\color{lightgray}\textbf{\thechapter} - }; - \begin{tikzpicture}[overlay,remember picture] - \coordinate (leftborder) at ($(nr)-(100,0)$); - \coordinate (left) at ($(nr.west)-(1.5,0)$); - \draw[line width=0.3em] ($(nr.north east)+(0,1)$) -- - ($(nr.north west)+(0,1)$) -- - (left) -- (leftborder); - \end{tikzpicture} - } - {-2ex} - {\filleft\fontsize{30}{70}\selectfont\textsc{{#1}}} - [\vspace{0ex}] - -\titleformat{\section}[hang] - {\Large\sffamily} - {\thesection} - {0.5em} - {#1} - {\phantomsection} - -\titleformat{\subsection}[hang] - {\Large\sffamily} - {\thesubsection} - {0.5em} - {#1} - {\phantomsection} - -\titleformat{\subsubsection}[hang] - {\Large\sffamily} - {\alph{subsubsection}} - {0.5em} - {#1} - {\phantomsection} - -\counterwithin{figure}{chapter} -\renewcommand{\figureformat}{\figurename~\thefigure} -\renewcommand{\tableformat}{\tablename~\thetable} -%\renewcommand{\subsubsection}{\thesubsubsection.\alph{subsubsection}} - -%\pagestyle{plain} - -% Commands for writing code -\newcommand{\exec}[1]{% What to type and execute -{\small\fontfamily{qcr}\fontshape{n}\fontseries{bx}\selectfont{#1}}} - -\newcommand{\execout}[1]{% Output on a terminal -{\small\fontfamily{qcr}\fontshape{n}\fontseries{l}\selectfont{#1}}} - -\newcommand{\execsub}[1]{% Variable that needs subsituting -{\small\fontfamily{qcr}\fontshape{sl}\fontseries{m}\selectfont{#1}}} - -\newcommand{\vf}[1]{% Variable in a file -{\fontfamily{cmss}\fontshape{sl}\fontseries{m}\selectfont{#1}}} - -% Create macro's for table font/style -\newcolumntype{+}{>{\global\let\currentrowstyle\relax}} -\newcolumntype{^}{>{\currentrowstyle}} -\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}% - #1\ignorespaces -} - -% Squeeze all the space out of lists -\setlist{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt} - - -% Shorthand degree symbol -\newcommand{\dgr}{$^{\circ}$} -% Change the default font to be Sans Serif -%\renewcommand{\familydefault}{\sfdefault} -\sloppy diff --git a/doc/GSI_user_guide/forward.tex b/doc/GSI_user_guide/forward.tex deleted file mode 100644 index f3dd07854..000000000 --- a/doc/GSI_user_guide/forward.tex +++ /dev/null @@ -1,66 +0,0 @@ -\begin{titlepage} -%\BgThispage -%\newgeometry{left=1cm,right=4cm} -\vspace*{0.5cm} -\noindent - -\begin{flushleft} -\textcolor{darkgray}{\LARGE Foreword} -\vspace*{1cm}\par - -This document is the 2017 Gridpoint Statistical Interpolation (GSI) User\textquotesingle s Guide, geared particularly for beginners. It describes the fundamentals of using GSI version (v) 3.6 released in September 2017. Advanced features of GSI as well as details of assimilation of specific data types can be found in the Advanced GSI User\textquotesingle s Guide, released together with this document and the v3.6 code release. - -This User\textquotesingle s Guide includes six chapters and three appendices: -\begin{description} -\item[Chapter 1] provides a background introduction of GSI. -\item[Chapter 2] contains basic information about how to install and compile GSI - including system requirements, required software (and how to obtain it), how to download GSI, and information about compilers, libraries, and how to build the code. -\item[Chapter 3] focuses on the input files needed to run GSI and how to configure and run GSI through a sample run script. It also provides an example of a successful GSI run and explanations of often-used namelist variables. -\item[Chapter 4] includes information about diagnostics and tuning of the GSI system through GSI standard output, statistic fit files, and some diagnostic tools. -\item[Chapter 5] illustrates the GSI applications for regional WRF-ARW cases, including the setup of different data types such as conventional, radiance, and GPSRO data, and different analysis functions available in the GSI, such running a hybrid analysis. -\item[Chapter 6] illustrates the GSI applications for global and chemical cases. -\item[Appendix A] introduces community tools available for GSI users. -\item[Appendix B] describes the content of the GSI namelist section OBS\_INPUT. -\item[Appendix C] contains a complete list of the GSI namelist with explanations and default values. -\end{description} - -%\begin{description} -%\item[Chapter 1:] Overview -%\item[Chapter 2:] Software Installation -%\item[Chapter 3:] Running GSI -%\item[Chapter 4:] GSI Diagnostics and Tuning -%\item[Chapter 5:] GSI Applications for Regional 3Dvar and Hybrid -%\item[Appendix A:] GSI Community Tools -%\item[Appendix B:] Content of Namelist Section OBS\_INPUT -%\item[Appendix C:] GSI Namelist: Name, Default value, Explanation -%\end{description} - -For the latest version of the GSI User\textquotesingle s Guide and released code, please visit the GSI User\textquotesingle s Website: -\begin{center} -\url{http://www.dtcenter.org/com-GSI/users/index.php} -\end{center} - -Please send questions and comments to the GSI help desk: -\begin{center} -gsi-help@ucar.edu -\end{center} - -This document and the annual GSI releases are made available through a community GSI effort jointly led by the Developmental Testbed Center (DTC) and the National Centers for Environmental Prediction (NCEP) Environmental Modeling Center (EMC), in collaboration with other GSI developers. To help sustain this effort, we request that those who use the community-released GSI, the GSI helpdesk, the GSI User\textquotesingle s Guide, or other DTC GSI services, please refer to this community GSI effort in their work and publications. - -To reference this user's guide, please use: - -\texttt{Hu, M., G. Ge, H. Shao, D. Stark, K. Newman, C. Zhou, J. Beck, and X. Zhang, 2017: Grid-point Statistical -Interpolation (GSI) User's Guide Version 3.6. Developmental Testbed Center. Available at -http://www.dtcenter.org/com-GSI/users/docs/index.php, 149 pp.} - -For referencing the general aspect of the GSI community effort, please use: - -\texttt{Shao, H., J. Derber, X.-Y. Huang, M. Hu, K. Newman, D. Stark, M. Lueken, C. Zhou, L. Nance, Y.-H. Kuo, B. Brown, 2016: Bridging Research to Operations Transitions: Status and Plans of Community GSI. Bull. Amer. Meteor. Soc., 97, 1427-1440, doi: 10.1175/BAMS-D-13-00245.1.} - - -\end{flushleft} -\end{titlepage} -\pagebreak{} - - - - diff --git a/doc/GSI_user_guide/gsi_appendixA.tex b/doc/GSI_user_guide/gsi_appendixA.tex deleted file mode 100644 index c44492b32..000000000 --- a/doc/GSI_user_guide/gsi_appendixA.tex +++ /dev/null @@ -1,382 +0,0 @@ -\chapter{GSI Community Tools}\label{gsi_tool} - -%------------------------------------------------------------------------------- -\section{BUFR Format and BUFR Tools} -%------------------------------------------------------------------------------- - -Under \textit{./util/bufr\_tools}, there are many Fortran examples to illustrate basic BUFR/PrepBUFR file process skills such as encoding, decoding, and appending. For details of these examples and the BUFR format, please see the BUFR/PrepBUFR User\textquotesingle s Guide, which is freely available on-line -\begin{scriptsize} -\begin{verbatim} -http://www.dtcenter.org/com-GSI/BUFR/docs/index.php -\end{verbatim} -\end{scriptsize} -The observation BUFR files generated by NCEP (for example, PrepBUFR and BUFR files from NCEP ftp server or gdas1.t12z.prepbufr.nr in tutorial case) are in Big Endian binary format. For release version older than 3.2, the BUFR files have to be converted from Big Endian BUFR file to Little Endian file when used by the GSI on Linux platform. Please refer to older version User\textquotesingle s guide on how to convert. - -Since release 3.2, BUFRLIB can automatically identify and handle either byte orders. For Intel and PGI compilers on Linux, the Big Endian BUFR/PrepBUFR files can be used by GSI without byte swap. - -%------------------------------------------------------------------------------- -\section{Read GSI Diagnostic Files} -%------------------------------------------------------------------------------- - -Lots of useful information about how one observation was used in the analysis such as innovation, observation values, observation error and adjusted observation error, and quality control information, has been saved in diagnostic files. To generate these diagnosis files, namelist variable \textit{write\_diag} in namelist section \textit{\&SETUP} needs to be true. The \textit{write\_diag} variable has been introduced in Part 4 of Section 3.4. The following is an example of using the \textit{write\_diag} variable to control diagnostic files. When we set the number of outer loops to 2, and set the \textit{write\_diag} namelist variable to the following: - -\begin{scriptsize} -\begin{verbatim} -write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., -\end{verbatim} -\end{scriptsize} - -GSI will write out diagnostic files before the start of the 1st outer loop start (O-B) and after the completion of the 2nd outer loop finish (O-A). We don\textquotesingle t want GSI to write out diagnosis files after the 1st outer loop because we set \textit{write\_diag(2)=.false.} \\ - -This is what we set in our example case described in section 5.2. From this case, we can see the following diagnostic files generated from the GSI analysis: -\begin{scriptsize} -\begin{verbatim} -diag_amsua_metop-a_anl.2014061700 diag_amsua_n18_ges.2014061700 -diag_amsua_metop-a_ges.2014061700 diag_conv_anl.2014061700 -diag_amsua_n15_anl.2014061700 diag_conv_ges.2014061700 -diag_amsua_n15_ges.2014061700 diag_hirs4_metop-a_anl.2014061700 -diag_amsua_n18_anl.2014061700 diag_hirs4_metop-a_ges.2014061700 -\end{verbatim} -\end{scriptsize} - -All files are identified with a filename containing three elements. The first element "diag" indicates these are combined diagnostic files. The second element identifies the observation type (here, "conv" means conventional observation from prepbufr and "amsua\_n15" corresponds to radiance observation AMSU-A from NOAA 15). The last element identifies which step of outer loop the files were generated for. Here, "anl" means the contents were written after the last outer loop (from \textit{write\_diag(3)=.true.}) and "ges" means the contents were written before the first output loop (from \textit{write\_diag(1)= .true.}). \\ - -To help users to read the information from these diagnostic files, we have provided two Fortran programs in the \textit{./util/Analysis\_Utilities/read\_diag/} directory: - -\begin{hangparas}{.4in}{1} -\hspace{2ex} \textit{read\_diag\_conv.f90} : Reads the diagnostic files for conventional observations. For example: \textit{diag\_conv\_anl.2014061700} and \textit{diag\_conv\_ges.2014061700} - -\hspace{2ex} \textit{read\_diag\_rad.f90} : Reads the diagnostic files for radiance observation. For example: - \end{hangparas} - -\begin{scriptsize} -\begin{verbatim} - diag_amsua_n15_ges.2014061700 diag_hirs4_metop-a_anl.2014061700 - diag_amsua_n18_anl.2014061700 diag_hirs4_metop-a_ges.2014061700 -\end{verbatim} -\end{scriptsize} - -To compile the programs, use the makefile provided: -\begin{scriptsize} -\begin{verbatim} -./make -\end{verbatim} -\end{scriptsize} - -Note: since information in the GSI \textit{include} directory is required, the GSI must have been compiled first. - -To run \textit{read\_diag\_conv.exe}, a namelist file \textit{namelist.conv} needs to be in the directory along with the executable. The namelist.conv only has two parameters: - -\begin{scriptsize} -\begin{verbatim} -&iosetup - infilename='./diag_conv_anl', : The path and name of GSI diagnosis file - outfilename='./results_conv_anl', : The path and name of a text file used to - save the content of the diagnostic file - / -\end{verbatim} -\end{scriptsize} - -The user can set the test case directory and file \textit{diag\_conv\_anl.2014061700} from section 5.2 as the entry for \textit{infilename} in the namelist, then run the executable - -\begin{scriptsize} -\begin{verbatim} -./read_diag_conv.exe -\end{verbatim} -\end{scriptsize} - -The results are placed in the file specified by the outfilename entry in the namelist. In this case that would be a file \textit{results\_conv\_anl} located in the directory where the executable was run. - -Similarly, to run \textit{read\_diag\_rad.exe}, the namelist file namelist.rad is needed. It contains the same parameters as \textit{namelist.conv} but it links to radiance diag files. After setting it to use the same case from section 5.2, such as: -\begin{scriptsize} -\begin{verbatim} -&iosetup - infilename='(test directory)/diag_amsua_n18_ges.2014061700', - outfilename='./results_amsua_n18_ges', - / -\end{verbatim} -\end{scriptsize} - -Running the executable creates the text file \textit{results\_amsua\_n18\_ges} specified by the namelist in the directory \textit{read\_diag\_rad.exe} runs.\\ - -For the conventional observations, the data is stored in two arrays: \textit{rdiagbuf} and \textit{cdiagbuf}. Their contents are listed as follows, for temperature (check \textit{src/main/setupt.f90}) as an example: -\begin{scriptsize} -\begin{verbatim} - cdiagbuf = station id - rdiagbuf(1) = observation type - rdiagbuf(2) = observation subtype - rdiagbuf(3) = observation latitude (degrees) - rdiagbuf(4) = observation longitude (degrees) - rdiagbuf(5) = station elevation (meters) - rdiagbuf(6) = observation pressure (hPa) - rdiagbuf(7) = observation height (meters) - rdiagbuf(8) = observation time (hours relative to analysis time) - rdiagbuf(9) = input prepbufr qc or event mark - rdiagbuf(10) = setup qc or event mark (currently qtflg only) - rdiagbuf(11) = read_prepbufr data usage flag - rdiagbuf(12) = analysis usage flag (1=use, -1=not used) - rdiagbuf(13) = nonlinear qc relative weight - rdiagbuf(14) = prepbufr inverse obs error (K**-1) - rdiagbuf(15) = read_prepbufr inverse obs error (K**-1) - rdiagbuf(16) = final inverse observation error (K**-1) - rdiagbuf(17) = observation (K) - rdiagbuf(18) = obs-ges used in analysis (K) - rdiagbuf(19) = obs-ges without bias correction (K) -\end{verbatim} -\end{scriptsize} - -For wind observations, the content after index 16 (check \textit{src/main/setupw.f90}) is: -\begin{scriptsize} -\begin{verbatim} - rdiagbuf(17) = earth relative u wind component observation (m/s) - rdiagbuf(18) = earth relative u obs-ges used in analysis (m/s) - rdiagbuf(19) = earth relative u obs-ges w/o bias correction (m/s) - rdiagbuf(20) = earth relative v wind component observation (m/s) - rdiagbuf(21) = earth relative v obs-ges used in analysis (m/s) - rdiagbuf(22) = earth relative v obs-ges w/o bias correction (m/s) -\end{verbatim} -\end{scriptsize} - - -The \textit{read\_diag\_conv.exe} reads these arrays and outputs important information in the text file \textit{results\_conv\_anl}specified by the user in the \textit{\&iosetup} namelist. For example: - -\begin{scriptsize} -\begin{verbatim} - station obs obs obs obs obs usag obs O-B - ID type time latitude longitude pressure value -ps @ 46047 : 180 -0.17 32.40 240.50 1014.30 1 1014.30 -0.09 - t @ 72293 : 120 -0.98 32.85 242.88 996.00 1 297.25 1.26 -uv @ 72293 : 220 -0.98 32.85 242.88 996.00 1 3.90 0.38 3.30 2.66 -\end{verbatim} -\end{scriptsize} - -For wind, the last 4 columns are the wind components in the order of: U observation, O-B for U, V observation, O-B for V. - -For radiance observations, the data is stored in two arrays: \textit{diagbuf} and \textit{diagbufchan}. Their contents are listed as follows (please refer to \textit{src/main/setuprad.f90} for more details): -\begin{scriptsize} -\begin{verbatim} - diagbuf(1) = observation latitude (degrees) - diagbuf(2) = observation longitude (degrees) - diagbuf(3) = model (guess) elevation at observation location - diagbuf(4) = observation time (hours relative to analysis time) - - diagbuf(5) = sensor scan position - diagbuf(6) = satellite zenith angle (degrees) - diagbuf(7) = satellite azimuth angle (degrees) - diagbuf(8) = solar zenith angle (degrees) - diagbuf(9) = solar azimuth angle (degrees) - diagbuf(10) = sun glint angle (degrees) (sgagl) - - diagbuf(11) = surface fractional coverage by water - diagbuf(12) = surface fractional coverage by land - diagbuf(13) = surface fractional coverage by ice - diagbuf(14) = surface fractional coverage by snow -if(.not. retrieval)then - diagbuf(15) = surface temperature over water (K) - diagbuf(16) = surface temperature over land (K) - diagbuf(17) = surface temperature over ice (K) - diagbuf(18) = surface temperature over snow (K) - diagbuf(19) = soil temperature (K) - diagbuf(20) = soil moisture - diagbuf(21) = surface land type -else - diagbuf(15) = SST first guess used for SST retrieval - diagbuf(16) = NCEP SST analysis at t - diagbuf(17) = Physical SST retrieval - diagbuf(18) = Navy SST retrieval - diagbuf(19) = d(ta) corresponding to sstph - diagbuf(20) = d(qa) corresponding to sstph - diagbuf(21) = data type -endif - diagbuf(22) = vegetation fraction - diagbuf(23) = snow depth - diagbuf(24) = surface wind speed (m/s) -! Note: The following quantities are not computed for all sensors - if (.not.microwave) then - diagbuf(25) = cloud fraction (%) - diagbuf(26) = cloud top pressure (hPa) - else - diagbuf(25) = cloud liquid water (kg/m**2) - diagbuf(26) = total column precip. water (km/m**2) - endif - - diagbuf(27) = foundation temperature: Tr - diagbuf(28) = diurnal warming: d(Tw) at depth zob - diagbuf(29) = sub-layer cooling: d(Tc) at depth zob - diagbuf(30) = d(Tz)/d(Tr) -\end{verbatim} -\end{scriptsize} - -\textit{diagbufchan} include loop through channel \textit{i} from 1 to \textit{nchanl}: - -\begin{scriptsize} -\begin{verbatim} - diagbufchan(1,i)= observed brightness temperature (K) - diagbufchan(2,i)= observed - simulated Tb with bias corrrection (K) - diagbufchan(3,i)= observed - simulated Tb with no bias correction (K) - diagbufchan(4,i)= inverse observation error - diagbufchan(5,i)= quality control mark or event indicator - diagbufchan(6,i)= surface emissivity - diagbufchan(7,i)= stability index - diagbufchan(8,i)= d(Tb)/d(Ts) - do j=1,npred+1 - diagbufchan(7+j,i)= Tb bias correction terms (K) - end do -\end{verbatim} -\end{scriptsize} - -In the sample output file \textit{results\_amsua\_n18\_ges}, only the observation location and time are written in the file. Users can write out other information based on the list. - -%------------------------------------------------------------------------------- -\section{Read and Plot Convergence Information from fort.220} -%------------------------------------------------------------------------------- - -In section 4.6, we introduced how to check the convergence information in the \textit{fort.220} file. Further detail on the \textit{fort.220} convergence information can be found in the Advanced User\textquotesingle s Guide. Here, we provide tools to filter this file and to plot the values of the cost function and the norm of gradient during each iteration. - -These tools - one ksh script and one ncl script - are in: -\textit{./util/Analysis\_Utilities/plot\_cost\_grad} directory: - -The ksh script, \textit{filter\_fort220.ksh}, only has one line: -\begin{tiny} -\begin{verbatim} -grep 'cost,grad,step,b' fort.220 | sed -e 's/cost,grad,step,b,step? = //g' | sed -e 's/good//g' > cost_gradient.txt -\end{verbatim} -\end{tiny} - -To run \textit{filter\_fort220.ksh}, the \textit{fort.220} needs to be in the same directory. The script will filter out the values of the cost function and the norm of gradient at each iteration from -\textit{fort.220} into a text file called \textit{cost\_gradient.txt}. \\ - -Once the file \textit{cost\_gradient.txt} is ready, run ncl script \textit{GSI\_cost\_gradient.ncl} to generate the plot: -\begin{scriptsize} -\begin{verbatim} -ncl GSI_cost_gradient.ncl -\end{verbatim} -\end{scriptsize} - -The pdf file \textit{GSI\_cost\_gradient.pdf} is created. The pdf file contains plots of the convergence of the GSI analysis like those in section 4.6. - -%------------------------------------------------------------------------------- -\section{Plot Single Observation Test Result and Analysis Increment} -%------------------------------------------------------------------------------- - -In Section 4.2, we introduced how to do a single observation test for GSI. Here we provide users with the ncl scripts to plot the single observation test results.\\ - -There are 5 ncl scripts in the \textit{util/Analysis\_Utilities/plots\_ncl} directory: -\begin{table}[htbp] -\centering -\caption{the list of ncl plotting tools} -\begin{tabular}{|p{5cm}|p{9cm}|} -\hline -\hline -GSI\_singleobs\_arw.ncl&Plot single observation test with ARW NetCDF background\\ -\hline -GSI\_singleobs\_nmm.ncl&Plot single observation test with NMM NetCDF background\\ -\hline -Analysis\_increment.ncl&Plot analysis increment from the case with ARW NetCDF background\\ -\hline -Analysis\_increment\_nmm.ncl&Plot analysis increment from the case with NMM NetCDF background\\ -\hline -fill\_nmm\_grid2.ncl& E grid to A grid convertor\\ -\hline -\end{tabular} -\label{taba1} -\end{table} - -The main difference between the ARW and NMM core used in GSI is that ARW is on a C grid, while NMM is on an E grid. \textit{GSI\_singleobs\_nmm.ncl} calls \textit{fill\_nmm\_grid2.ncl} to convert the E grid to an A grid for plotting, while \textit{GSI\_singleobs\_arw.ncl} itself includes a C grid to A grid convertor. - -Before running ncl scripts, users need to set up two links: -\begin{itemize} -\item \textit{cdf\_analysis} - Link to analysis result in NetCDF format (\textit{wrf\_inout}) -\item \textit{cdf\_bk} - Link to background file in netCDF format -\end{itemize} -These scripts read in the analysis and background fields of temperature (T), U component of wind (U), V component of wind (V), and moisture (Q) and calculate the difference of the analysis field minus the background field. Then XY sections (left column) and XZ sections (right column) are plotted for T, U, V, and Q through the point that has maximum analysis increment of single observation. Here the default single observation test is T. If the user conducts other single observation tests, the corresponding changes should be made based on the current scripts.\\ - -The scripts \textit{Analysis\_increment.ncl} and \textit{Analysis\_increment\_nmm.ncl} are very similar the one for the single observation but only the XY section for a certain analysis level is plotted.\\ - -For more information on how to use ncl, please check the NCL website at: -\begin{scriptsize} -\begin{verbatim} -http://www.ncl.ucar.edu/ -\end{verbatim} -\end{scriptsize} - - -%------------------------------------------------------------------------------- -\section{Generate initial regional ensembles } -%------------------------------------------------------------------------------- - -Under the \textit{./util/EnKF} directory, there are two sub-directories:\textit{ enspreproc\_regional.fd/} and \textit{initialens\_regional.fd/}. The first one is to extract ensemble pertubations from GDAS 80 member ensembles and the second one is to add the extracted ensembles to a regional WRF background field (considered as the mean filed) to generate initial regional ensembles. - -Before using these two unitilies, you should have already sucessfully compiled the GSI and gotten the "gsi.exe" file. After that, enter each of the two directory, type "make" to compile the utilities. A sucessful compilation should yield "enspreproc.exe" and "initialens.exe" respectively. - -Now, the next step is to get GDAS spectrally smoothed atmospheric ensemble forecasts. These files should be in the sigma format, which is currrenlty the only format supported by "enspreproc.exe". You need to contact NCEP or other appropriate contacts to download these kind of ensembles. These ensemble files follow the name convection of "sfg\_\$CDATE\_fhr\$FEs\_mem\$MEM". \$CDATE is the cycle date, such as 2017011518 which means 18z of Jan. 15th, 2017. \$FE is the forecast hour, for example, 06 means 6 hour of forecasts. \$MEM is the member number. Here is an example of GDAS ensmbles: \textit{sfg\_2017011518\_fhr06s\_mem001}. - -After you download the required GDAS ensembles, follow the following steps: - -1. Running "enspreproc.exe", enter the \textit{enspreproc\_regional.fd/} directory: - -(1). generate the file "fileslist01". This file lists the ensemble files to be used in the calculation of ensemble pertubations. For example, if it is determined to use 20 members to generate ensemble perturbations, the file "filelist01" will be as follows: -\begin{scriptsize} -\begin{verbatim} - sfg_2017011518_fhr06s_mem001 - sfg_2017011518_fhr06s_mem002 - sfg_2017011518_fhr06s_mem003 - ... - sfg_2017011518_fhr06s_mem018 - sfg_2017011518_fhr06s_mem019 - sfg_2017011518_fhr06s_mem020 -\end{verbatim} -\end{scriptsize} - -(2). Modify the file "namelist.input", change "n\_ens" to the total number of ensembles to be used. - -(3). Copy the "anavinfo" file used by GSI into current directory. - -(4). Copy the background WRF file, name it as "wrf\_inout". - -(5). Create a job description file, submit the job to get it run in parallel. - -After the successful running of "enspreproc.exe", you will get ensemble perturbations as follows: -\begin{scriptsize} -\begin{verbatim} - en_perts4ars.mem0001 - en_perts4ars.mem0002 - en_perts4ars.mem0003 - ... - en_perts4ars.mem0018 - en_perts4ars.mem0019 - en_perts4ars.mem0020 -\end{verbatim} -\end{scriptsize} - -2. Runnning "initialens.exe", enter the \textit{initialens\_regional.fd/} directory: - -(1). Modify the file "namelist.input", change "n\_ens" to the total number of ensembles to be used. - -(2). Copy wrf\_inout to current directry - -(3). Copy wrf\_inout to wrfinput\_d01.mem\$MEM files as follows: -\begin{scriptsize} -\begin{verbatim} - cp wrf_inout wrfinput_d01.mem0001 - cp wrf_inout wrfinput_d01.mem0002 - cp wrf_inout wrfinput_d01.mem0003 - ... - cp wrf_inout wrfinput_d01.mem0018 - cp wrf_inout wrfinput_d01.mem0019 - cp wrf_inout wrfinput_d01.mem0020 -\end{verbatim} -\end{scriptsize} - - Be sure that each member has a correspoding wrfinput\_d01 file. These files will be updated by "initialens.exe" later. - -(4). Link the ensemble perturbations generated by "enspreproc.exe" to current directory. Something like this \textit{ln -s ../enspreproc\_regional.fd/en\_perts4arw.mem*}. - -(5). Create a job description file, submit the job to get it run in parallel. Please note that only 1 processor is required to run "initialens.exe" but submitting it to run on computing node is a must. - -After the sucessful running of "initialens.exe", all the \textit{wrfinput\_d01.mem\$MEM} files are updated with ensemble perturbation added to the background or "mean" state of the original wrf\_inout. - -Now the initial regionl ensembles have been sucessfully generated. - - - diff --git a/doc/GSI_user_guide/gsi_appendixB.tex b/doc/GSI_user_guide/gsi_appendixB.tex deleted file mode 100644 index 7deb1d759..000000000 --- a/doc/GSI_user_guide/gsi_appendixB.tex +++ /dev/null @@ -1,93 +0,0 @@ -\chapter{Contents of Namelist Section OBS\_INPUT}\label{gsi_obslist} - -\begin{scriptsize} -\begin{verbatim} - &OBS_INPUT - dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=30,time_window_max=1.5,ext_sonde=.true., - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 1.0 0 0 - prepbufr t null t 1.0 0 0 - prepbufr q null q 1.0 0 0 - prepbufr pw null pw 1.0 0 0 - satwndbufr uv null uv 1.0 0 0 - prepbufr uv null uv 1.0 0 0 - prepbufr spd null spd 1.0 0 0 - prepbufr dw null dw 1.0 0 0 - radarbufr rw null rw 1.0 0 0 - prepbufr sst null sst 1.0 0 0 - gpsrobufr gps_ref null gps 1.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 1.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 1.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 1.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 1.0 0 0 - hirs3bufr hirs3 n16 hirs3_n16 0.0 1 0 - hirs3bufr hirs3 n17 hirs3_n17 6.0 1 0 - hirs4bufr hirs4 metop-a hirs4_metop-a 6.0 2 0 - hirs4bufr hirs4 n18 hirs4_n18 0.0 1 0 - hirs4bufr hirs4 n19 hirs4_n19 1.0 2 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 1.0 1 0 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs281SUBSET_aqua 20.0 2 0 - amsuabufr amsua n15 amsua_n15 10.0 2 0 - amsuabufr amsua n18 amsua_n18 10.0 2 0 - amsuabufr amsua n19 amsua_n19 10.0 2 0 - amsuabufr amsua metop-a amsua_metop-a 10.0 2 0 - amsuabufr amsua metop-b amsua_metop-b 10.0 2 0 - airsbufr amsua aqua amsua_aqua 5.0 2 0 - amsubbufr amsub n17 amsub_n17 1.0 1 0 - mhsbufr mhs n18 mhs_n18 3.0 2 0 - mhsbufr mhs n19 mhs_n19 3.0 2 0 - mhsbufr mhs metop-a mhs_metop-a 3.0 2 0 - mhsbufr mhs metop-b mhs_metop-b 3.0 2 0 - ssmitbufr ssmi f13 ssmi_f13 0.0 2 0 - ssmitbufr ssmi f14 ssmi_f14 0.0 2 0 - ssmitbufr ssmi f15 ssmi_f15 0.0 2 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 2 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 2 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 2 0 - ssmisbufr ssmis_las f16 ssmis_f16 0.0 2 0 - ssmisbufr ssmis_uas f16 ssmis_f16 0.0 2 0 - ssmisbufr ssmis_img f16 ssmis_f16 0.0 2 0 - ssmisbufr ssmis_env f16 ssmis_f16 0.0 2 0 - gsnd1bufr sndrd1 g12 sndrD1_g12 1.5 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 1.5 1 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 1.5 1 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 1.5 1 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 1.5 1 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 1.5 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 1.5 1 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 1.5 1 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 1.5 1 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 1.5 1 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 1.5 1 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 1.5 1 0 - gsnd1bufr sndrd1 g15 sndrD1_g15 1.5 2 0 - gsnd1bufr sndrd2 g15 sndrD2_g15 1.5 2 0 - gsnd1bufr sndrd3 g15 sndrD3_g15 1.5 2 0 - gsnd1bufr sndrd4 g15 sndrD4_g15 1.5 2 0 - iasibufr iasi metop-a iasi616_metop-a 20.0 1 0 - gomebufr gome metop-a gome_metop-a 1.0 2 0 - omibufr omi aura omi_aura 1.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 1.0 0 0 - tcvitl tcp null tcp 1.0 0 0 - seviribufr seviri m08 seviri_m08 1.0 1 0 - seviribufr seviri m09 seviri_m09 1.0 1 0 - seviribufr seviri m10 seviri_m10 1.0 1 0 - iasibufr iasi metop-b iasi616_metop-b 0.0 1 0 - gomebufr gome metop-b gome_metop-b 0.0 2 0 - atmsbufr atms npp atms_npp 0.0 1 0 - crisbufr cris npp cris_npp 0.0 1 0 - mlsbufr mls30 aura mls30_aura 0.0 0 0 - oscatbufr uv null uv 0.0 0 0 - prepbufr mta_cld null mta_cld 1.0 0 0 - prepbufr gos_ctp null gos_ctp 1.0 0 0 - refInGSI rad_ref null rad_ref 1.0 0 0 - lghtInGSI lghtn null lghtn 1.0 0 0 - larcInGSI larccld null larccld 1.0 0 0 -:: -\end{verbatim} -\end{scriptsize} diff --git a/doc/GSI_user_guide/gsi_appendixC.tex b/doc/GSI_user_guide/gsi_appendixC.tex deleted file mode 100644 index 23b0a06c4..000000000 --- a/doc/GSI_user_guide/gsi_appendixC.tex +++ /dev/null @@ -1,1059 +0,0 @@ -\chapter{GSI Namelist: Name, Default Value, Explanation}\label{gsi_namelist} -The following are lists and explanations of the GSI namelist variables. You can also find them in the source code \textbf{gsimod.F90}. - -\begin{table}[h] -\footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{SETUP} & & \textbf{General control namelist} \\ - \hline - gencode & 80 & source generation code \\ - \hline - factqmin & 1 & weighting factor for negative moisture constraint \\ - \hline - factqmax & 1 & weighting factor for supersaturated moisture constraint \\ - \hline - clip\_supersaturation & .false. & flag to remove supersaturation during each outer loop \\ - \hline - factv & 1 & weighting factor for negative visibility constraint \\ - \hline - factl & & \\ - \hline - factp & & \\ - \hline - factg & & \\ - \hline - factw10m & & \\ - \hline - facthowv & & \\ - \hline - deltim & 1200 & model timestep \\ - \hline - dtphys & 3600 & physics timestep \\ - \hline - biascor & -1 & background error bias correction coefficient \\ - \hline - bcoption & 1 & 0=ibc (no bias correction to bkg); \\ - & & 1= sbc(original implementation) \\ - \hline - diurnalbc & 0 & 1= diurnal bias; 0= persistent bias \\ - \hline - \end{tabular} -\end{table} - - \begin{table}[h] -\footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \hline - \textbf{SETUP} & & \textbf{General control namelist} \\ -\hline - niter(0:50) & 0,... & Maximum number of inner loop iterations for each outer loop \\ - \hline - niter\_no\_qc(0:50) & 1000000 & Inner loop iteration at which to turn on variational quality control \\ - \hline - miter & 1 & number of outer loops \\ - \hline - qoption & 1 & option for moisture analysis variable; 1:q/qsatg 2:normalized RH \\ - \hline - cwoption & & \\ - \hline - pseudo\_q2 & .false. & breed between q1/q2 options, that is, (q1/sig(q)) \\ - \hline - nhr\_assimilation & 6 & assimilation time interval (currently 6 hours for global, 3 hours for regional ) \\ - \hline - min\_offset & 3 & time of analysis in assimilation window \\ - \hline - iout\_iter & 220 & output file number for iteration information \\ - \hline - npredp & 6 & number of predictors for precipitation bias correction \\ - \hline - retrieval & .false. & logical to turn off or on the SST physical retrieval \\ - \hline - nst\_gsi & 0 & indicator to control the Tr Analysis mode: \\ - & & 0 = no nst info ingsi at all; \\ - & & 1 = input nst info, but used for monitoring only \\ - & & 2 = input nst info, and used in CRTM simulation, but no Tr analysis \\ - & & 3 = input nst info, and used in CRTM simulation and Tr analysis is on \\ - \hline - nst\_tzr & 0 & indicator to control the Tzr\_QC mode: \\ - & & 0 = no Tz retrieval; \\ - & & 1 = Do Tz retrieval and applied to QC \\ - \hline - nstinfo & 0 & number of nst variables \\ - \hline - fac\_dtl & 0 & index to apply diurnal thermocline layer or not: 0 = no; 1 = yes \\ - \hline - fac\_tsl & 0 & index to apply thermal skin layer or not: 0 = no; 1 = yes. \\ - \hline - nst\_tzr & & \\ - \hline - tzr\_bufrsave & .false. & logical to turn off or on the bufr Tz retrieval file true=on \\ - \hline - diag\_rad & .true. & logical to turn off or on the diagnostic radiance file (true=on) \\ - \hline - diag\_pcp & .true. & logical to turn off or on the diagnostic precipitation file (true=on) \\ - \hline - diag\_conv & .true. & logical to turn off or on the diagnostic conventional file (true=on) \\ - \hline - diag\_ozone & .true. & logical to turn off or on the diagnostic ozone file (true=on) \\ - \hline - diag\_aero & .false. & logical to turn off or on the diagnostic aerosol file (true=on) \\ - \hline - diag\_co & .false. & logical to turn off or on the diagnostic carbon monoxide file (true=on) \\ - \hline - iguess & 1 & flag for guess solution (currently not working) \\ - & & -1 do not use guess file \\ - & & 0 write only guess file \\ - & & 1 read and write guess file \\ - & & 2 read only guess file \\ - \hline - write\_diag & .false., ... & logical to write out diagnostic files for outer iteration \\ - \hline - reduce\_diag & .false. & namelist logical to produce reduced radiance diagnostic files \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{SETUP} & & \textbf{General control namelist} \\ - \hline - oneobtest & .false. & one observation test flag true=on \\ - \hline - sfcmodel & .false. & if true, then use boundary layer forward model for surface temperature data. \\ - \hline - dtbduv\_on & .true. & logical for switching on (.true.) sensitivity of uv winds to microwave brightness temperatures. - if true, use d(microwave brightness temperature)/d(uv wind) in inner loop \\ - \hline - ifact10 & 0 & flag for recomputing 10m wind factor \\ - & & = 1 compute using GFS surface physics \\ - & & = 2 compute using MM5 surface physics \\ - & & = 0 or any other value - DO NOT recompute - use value from guess file \\ - \hline - l\_foto & .false. & option for First-Order Time extrapolation to observation \\ -\hline - offtime\_data & .false. & if true, then allow use of obs files with ref time different from analysis time. default value = .false., in which case analysis fails if observation file reference time is different from analysis time. \\ - \hline - npred\_conv\_max & 0 & maximum number of conventional observation bias correction coefficients \\ - \hline - id\_bias\_ps & 0 & prepbufr id to have conv\_bias added for testing \\ - \hline - id\_bias\_t & 0 & prepbufr id to have conv\_bias added for testing \\ - \hline - id\_bias\_spd & 120 & prepbufr id to have conv\_bias added for testing \\ - \hline - conv\_bias\_ps & 0 & magnitude of ps bias(mb) \\ - \hline - conv\_bias\_t & 0 & magnitude of t bias(deg K) \\ - \hline - conv\_bias\_spd & 0 & magnitude of spd bias(m/sec) \\ - \hline - id\_bias\_pm2\_5 & & \\ - \hline - conv\_bias\_pm2\_5 & & \\ - \hline - id\_bias\_pm10 & & \\ - \hline - conv\_bias\_pm10 & & \\ - \hline - stndev\_conv\_ps & 1.0 & \\ - \hline - stndev\_conv\_t & 1.0 & \\ - \hline - stndev\_conv\_spd & 1.0 & \\ - \hline - use\_pbl & .false. & Logical flag to include PBL effects in tendency model. \\ - \hline - use\_compress & .false. & option to turn on the use of compressibility factors in geopotential heights \\ - \hline - nsig\_ext & 13 & number of layers above the model top which are necessary to compute the bending angle for gpsro \\ - \hline - gpstop & 30.0 & maximum height for gpsro data assimilation. Reject anything above this height. (km) \\ - \hline - perturb\_obs & .false. & logical flag to perturb observation (true=on) \\ - \hline - perturb\_fact & 1 & magnitude factor for observation perturbation \\ - \hline - oberror\_tune & .false. & logical to tune (=true) oberror \\ - \hline - preserve\_restart\_date & .false. & if true, then do not update regional restart file date. \\ - \hline - crtm\_coeffs\_path & ./ & path of directory w/ CRTM coeffs files \\ - \hline - berror\_stats & berror\_stats & filename if other than "berror\_stats" \\ - \hline - newpc4pred & .false. & option for additional preconditioning for pred coeff \\ - \hline - adp\_anglebc & .false. & option to perform variational angle bias correction \\ - \hline - angord & 0 & order of polynomial for variational angle bias correction \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{SETUP} & & \textbf{General control namelist}\\ - \hline - passive\_bc & .false. & option to turn on bias correction for passive (monitored) channels \\ - \hline - use\_edges & .true. & option to exclude radiance data on scan edges \\ - \hline - biaspredvar & 0.1 & set background error variance for radiance bias coeffs \\ - \hline - lobsdiagsave & .false. & write out additional observation diagnostics \\ - \hline - l4dvar & .false. & turn 4D-Var on/off (default=off=3D-Var) \\ - \hline - lbicg & .false. & use B-precond w/ bi-conjugate gradient for minimization \\ - \hline - lsqrtb & .false. & Use sqrt(B) preconditioning \\ - \hline - lcongrad & .false. & Use conjugate gradient/Lanczos minimizer \\ - \hline - lbfgsmin & .false. & Use L-BFGS minimizer \\ - \hline - ltlint & .false. & Use TL inner loop (ie TL intall) \\ - \hline - nhr\_obsbin & -1 & length of observation bins \\ - \hline - nhr\_subwin & -1 & length of weak constraint 4d-Var sub-window intervals \\ - \hline - nwrvecs & -1 & Number of precond vectors (Lanczos) or pairs of vectors (QN) being saved \\ - \hline - iorthomax & 0 & max number of vectors used for orthogonalization of various CG options \\ - \hline - ladtest & .false. & Run adjoint test \\ - \hline - ladtest\_obs & .false. & if true, doing the adjoint check for the observation operators \\ - \hline - lgrtest & .false. & Run gradient test \\ - \hline - lobskeep & .false. & keep obs from first outer loop for subsequent OL \\ - \hline - lsensrecompute & .false. & does adjoint by recomputing forward solution \\ - \hline - jsiga & -1 & calculate approximate analysis errors from lanczos for jiter=jsiga \\ - \hline - ltcost & .false. & calculate true cost when using Lanczos (this is very expensive) \\ - \hline - lobsensfc & .false. & compute forecast sensitivity to observations \\ - \hline - lobsensjb & .false. & compute Jb sensitivity to observations \\ - \hline - lobsensincr & .false. & compute increment sensitivity to observations \\ - \hline - lobsensadj & .false. & use adjoint of approx. Hessian to compute obs sensitivity \\ - \hline - lobsensmin & .false. & use minimisation to compute obs sensitivity \\ - \hline - iobsconv & 0 & compute convergence test in observation space \\ - & & =1 at final point, =2 at every iteration \\ - \hline - idmodel & .false. & uses identity model when running 4D-Var (test purposes) \\ - \hline - iwrtinc & .false. & when .t., writes out increments instead of analysis \\ - \hline - jiterstart & 1 & first outloop iteration number \\ - \hline - jiterend & 1 & last outloop iteration number \\ - \hline - lobserver & .false. & when .t., calculate departure vectors only \\ - \hline - lanczosave & .false. & save lanczos vectors for forecast sensitivity computation \\ - \hline - llancdone & .false. & use to tell adjoint that Lanczos vecs have been pre-computed \\ - \hline - lferrscale & .false. & Something related to forecast error \\ - \hline - print\_diag\_pcg & .false. & logical turn on of printing of GMAO diagnostics in pcgsoi.f90 \\ - \hline - tsensible & .false. & option to use sensible temperature as the analysis variable. Works only for twodvar\_regional=.true. \\ - \hline - lgschmidt & .false. & option for re-biorthogonalization of the {gradx} and {grady} set from pcgsoi when twodvar\_regional=.true. \\ - \hline - \end{tabular} -\end{table} - - - \begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline -\textbf{SETUP} & & \textbf{General control namelist} \\ - \hline - lread\_obs\_save & .false.& option to write out collective obs selection info \\ - \hline - lread\_obs\_skip & .false.& option to read in collective obs selection info \\ - \hline - use\_gfs\_ozone & .false. & option to read in gfs ozone and interpolate to regional model domain \\ - \hline - check\_gfs\_ozone\_date & .false. & option to date check gfs ozone before interpolating to regional model domain \\ - \hline - regional\_ozone & .false. & option to turn on ozone in regional analysis \\ - \hline - lwrite\_predterms & .false. & option to write out actual predictor terms instead of predicted bias to the radiance diagnostic files \\ - \hline - lwrite\_peakwt & .false. & option to writ out the approximate pressure of the peak of the weighting function for satellite data to the radiance diagnostic files \\ - \hline - use\_gfs\_nemsio & .false. & option to use nemsio to read global model NEMS/GFS first guess \\ - \hline - liauon & .false. & treat 4dvar CV as tendency perturbation (default=false) \\ - \hline - use\_prepb\_satwnd & .false. & allow using satwnd's from prepbufr (historical) file \\ - \hline - l4densvar & .false. & logical to turn on ensemble 4dvar \\ - \hline - ens4d\_nstarthr & 3 & start hour for ensemble perturbations (generally should match min\_offset) \\ - \hline - use\_gfs\_stratosphere & & When true, a guess gfs valid at the same time as the nems-nmmb guess is used to replace the upper levels with gfs values. The purpose of this is to allow direct use of gdas derived sat radiance bias correction coefs. \\ - \hline - pblend0 & 152 & The nems-nmmb vertical coordinate is smoothly merged with gfs above this level. Below this level, is original nems-nmmb. \\ - \hline - pblend1 & 79.0 & The nems-nmmb vertical coordinate is smoothly merged with gfs below this level. Above this level,is gfs. \\ - \hline - step\_start & 1.e-4 & initial stepsize in minimization \\ - \hline - diag\_precon & .false. & if true do preconditioning \\ - \hline - lrun\_subdirs & .false. & logical to toggle use of subdirectires at runtime for pe specific files \\ - \hline - emiss\_bc & .false. & option to turn on emissivity bias predictor \\ - \hline - upd\_pred & 1 & bias update indicator for radiance bias correction; 1.0=bias correction coefficients evolve \\ - \hline - use\_reflectivity & .false. & option of using reflectivity \\ - \hline - lnested\_loops & .false. & allow for nested resolution outer/inner loops \\ - \hline - lwrite4danl & .false. & logical to write out 4d analysis states if 4dvar or 4denvar mode \\ - \hline - lsingleradob & .false. & logical for single radiance observation assimilation. Uses existing bufr file and rejects all radiances that don't fall within a tight threshold around oblat/oblon (SINGLEOB\_TEST) \\ - \hline - ssmis\_method & 1 & choose method for SSMIS noise reduction 0=no smoothing 1=default \\ - \hline - ssmis\_precond & 0.01 & weighting factor for SSMIS preconditioning (if not using newpc4pred) \\ - \hline - R\_option & .false. & Option to use variable correlation length for lcbas based on data density - follows Hayden and Purser (1995) (twodvar\_regional only) \\ - \hline - thin4d & & \\ - \hline - \end{tabular} -\end{table} - - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline -\textbf{GRIDOPTS} & & \textbf{Grid setup variables, including regional specific variables} \\ - \hline - jcap & 62 & spectral resolution of the analysis \\ - \hline - jcap\_b & 62 & spectral resolution of background (model guess field) \\ - \hline - nsig & 42 & number of sigma levels \\ - \hline - nlat & 96 & number of latitudes \\ - \hline - nlon & 384 & number of longitudes \\ - \hline - hybrid & logical & hybrid data file flag true=hybrid \\ - \hline - nlat\_regional & 0 & Number of y grid point in whole regional domain \\ - \hline - nlon\_regional & 0 & Number of x grid point in whole regional domain \\ - \hline - diagnostic\_reg & .false. & logical for regional debugging \\ - \hline - update\_regsfc & .false. & logical to write out updated surface fields to the regional analysis file (default = false) \\ - \hline - netcdf & .false. & if true, then wrf files are in netcdf format, otherwise wrf files are in binary format. \\ - \hline - regional & .false. & logical for regional GSI run \\ - \hline - wrf\_nmm\_regional & .false. & logical for input from WRF NMM \\ - \hline - nems\_nmmb\_regional & .false. & logical for input from NEMS NMMB \\ - \hline - wrf\_mass\_regional & .false. & logical for input from WRF MASS-CORE (ARW) \\ - \hline - twodvar\_regional & .false. & logical for regional 2d-var analysis \\ - \hline - filled\_grid & .false. & logical to fill in points on WRF-NMM E-grid \\ - \hline - half\_grid & .false.& logical to use every other row of WRF-NMM E-Grid \\ - \hline - nvege\_type & 24 & number of types of vegetation; old=24, IGBP=20 \\ - \hline - nlayers(100) & 1 & number of sub-layers to break indicated model layer into prior to calling radiative transfer model \\ - \hline - cmaq\_regional & .false. & Background input is from CMAQ model \\ - \hline - nmmb\_reference\_grid & H & ='H', then analysis grid covers H grid domain \\ - & & = 'V', then analysis grid covers V grid domain \\ - \hline - grid\_ratio\_nmmb & sqrt(2) & ratio of analysis grid to nmmb model grid in nmmb model grid units. \\ - \hline - grid\_ratio\_wrfmass & 1.0 & ratio of analysis grid to wrf mass grid in wrf grid units \\ - \hline - jcap\_gfs & & spectral truncation used to transform high wavenumber spectral coefficients to a coarser resolution grid,when use\_gfs\_ozone = .true. or use\_gfs\_stratosphere = .true. \\ - \hline - jcap\_cut & & \\ - \hline - use\_sp\_eqspac & .false. & if .true., then ensemble grid is equal spaced, staggered 1/2 grid unit off poles. if .false., then gaussian grid assumed for ensemble (global only) \\ - \hline - \end{tabular} -\end{table} - - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline -\textbf{BKGERR} & & \textbf{Background error related variables} \\ - \hline - vs & 1/1.5 & scale factor for vertical correlation lengths for background error \\ - \hline - nhscrf & 3 & number of horizontal scales for recursive filter \\ - \hline - hzscl(3) & 1, 1, 1 & scale factor for horizontal smoothing, n=1,number of scales (3 for now) \\ - & & specifies factor by which to reduce horizontal scales (i.e. 2 would then apply 1/2 of the horizontal scale) \\ - \hline - hswgt(3) & 1/3, 1/3, 1/3 & empirical weights to apply to each horizontal scale \\ - \hline - norh & 2 & order of interpolation in smoothing \\ - \hline - ndeg & 4 & degree of smoothing in recursive filters \\ - \hline - noq & 3 & 1/4 of accuracy in compact finite differencing \\ - \hline - bw & 0 & factor in background error calculation \\ - \hline - norsp & 0 & order of interpolation for smooth polar cascade routine default is norsp=0, in which case norh is used with original polar cascade interpolation (global only). \\ - \hline - fstat & .false. & logical to separate f from balance projection \\ - \hline - pert\_berr & .false. & logical to turn on random inflation/deflation of background error tuning parameters \\ - \hline - pert\_berr\_fct & 0 & factor for increasing/decreasing berror parameters, this is multiplied by random number \\ - \hline - bkgv\_flowdep & .false. & flag to turn on flow dependence to background error variances \\ - \hline - bkgv\_rewgtfct & 0 & factor used to perform flow dependent reweighting of error variances \\ - \hline - bkgv\_write & .false. & flag to turn on=.true. /off=.false. generation of binary file with reweighted variances \\ - \hline - fpsproj & .true. & controls full nsig projection to surface pressure \\ - \hline - fut2ps & & controls the projection from unbalance T to surface pressure \\ - \hline - adjustozvar & & adjusts ozone variances in the stratosphere based on guess field \\ - \hline - cwcoveqqcov & & sets cw Bcov to be the same as B-cov(q) (presently glb default) \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline -\textbf{ANBKGERR} & & \textbf{Anisotropic background error related variables} \\ - \hline - anisotropic & .false. & if true, then use anisotropic background error covariance \\ - \hline - ancovmdl & 0 & covariance model settings - 0: pt-based, 1: ensemble based \\ - \hline - triad4 & .true. & for 2d variables, if true, use blended triad algorithm \\ - \hline - ifilt\_ord & 4 & filter order for anisotropic filters \\ - \hline - npass & 1 & 2×npass = number of factors in background error \\ - \hline - normal & 200 & number of random vectors to use for filter normalization ( if < 0 then slightly slower, but results independent of number of processors) \\ - \hline - binom & .true. & if true, weight correlation lengths of factors using binomial distribution, with shortest scales on outside, longest scales on inside. This can help to produce smoother correlations in the presence of strong anisotropy \\ - \hline - ngauss & 3 & number of Gaussians to add together in each factor \\ - \hline - rgauss & 0 & multipliers on reference aspect tensor for each Gaussian factor \\ - \hline - anhswgt & 1.0 & empirical weights to apply to each gaussian \\ - \hline - an\_vs & 1 & scale factor for background error vertical scales (temporary carry over from isotropic inhomogeneous option) \\ - \hline - grid\_ratio & 2.0 & ratio of coarse to fine grid in fine grid units \\ - \hline - grid\_ratio\_p & 0 & ratio of coarse to fine grid in fine grid units for polar patches \\ - \hline - nord\_f2a & 4 & order of interpolation for transfer operators between filter grid and analysis grid \\ - \hline - an\_flen\_u & 1 & coupling parameter for connecting horizontal wind to background error \\ - \hline - an\_flen\_t & 1 & coupling parameter for connecting grad(potential temperature) to background error \\ - \hline - an\_flen\_z & 1 & coupling parameter for connecting grad(terrain) to background error \\ - \hline - rtma\_subdomain\_option & .false. & if true, then call alternative code which calls recursive filter directly from subdomain mode, bypassing transition to/from horizontal slabs. This is mainly to improve efficiency for 2d rtma analysis. at the moment, this only works for twodvar\_regional=.true. rtma\_subdomain\_option will be forced to false when twodvar\_regional=.false. \\ - \hline - lreadnorm & .false. & if true, then read normalization from fixed files \\ - \hline - nsmooth & 0 & number of 1-2-1 smoothing passes before and after background error application \\ - \hline - nsmooth\_shapiro & 0 & number of 2nd moment preserving (shapiro) smoothing passes before and after background error application. \\ - &&NOTE: default for nsmooth and nsmooth\_shapiro is 0.\\ - &&if both are > 0, then nsmooth will be forced to zero. \\ - \hline - afact0 & 0.0 & anistropy effect parameter, the range must be in 0.0-1.0. \\ - \hline - covmap & .false. & if true, covariance map would be drawn \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{JCOPTS} & & \textbf{Constraint term in cost function (Jc)} \\ - \hline - ljcdfi & .false. & if .false., uses original formulation based on wind, temp, and ps tends \\ - & & when .t. uses digital filter initialization of increments (4dvar) \\ - \hline - alphajc & 10.0 & parameter for digital filter \\ - \hline - switch\_on\_derivatives & .false., … & if true, then compute horizontal derivatives of all state variables (to be used eventually for time derivatives, dynamic constraints and observation forward models that need horizontal derivatives) \\ - \hline - tendsflag & .false. & if true, compute time tendencies \\ - \hline - ljcpdry & .false. & when .t. uses dry pressure constraint on increment \\ - \hline - bamp\_jcpdry & 0.0 & parameter for pdry\_jc \\ - \hline - eps\_eer & -1.0 & Errico-Ehrendofer parameter for q-term in energy norm \\ - \hline - ljc4tlevs & .false. & when true and in 4D mode, apply any weak constraints over all time levels instead of just at a single time \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{STRONGOPTS} & & \textbf{Strong dynamic constraint} \\ - \hline - reg\_tlnmc\_type & 1 & =1 for 1st version of regional strong constraint \\ - & & =2 for 2nd version of regional strong constraint \\ - \hline - tlnmc\_option & 0 & integer flag for strong constraint (various capabilities for hybrid): \\ - & & =0: no TLNMC \\ - & & =1: TLNMC for 3DVAR mode \\ - & & =2: TLNMC on total increment for single time level only (for 3D EnVar) or if 4D EnVar mode, TLNMC applied to increment in center of window \\ - & & =3: TLNMC on total increment over all time levels (if in 4D EnVar mode) \\ - & & =4: TLNMC on static contribution to increment ONLY for any EnVar mode \\ - \hline - nstrong & 0 & if > 0, then number of iterations of implicit normal mode initialization to apply for each inner loop iteration \\ - \hline - period\_max & 1000000.0 & cutoff period for gravity waves included in implicit normal mode initialization (units = hours) \\ - \hline - period\_width & 1.0 & defines width of transition zone from included to excluded gravity waves \\ - \hline - nvmodes\_keep & 0 & number of vertical modes to use in implicit normal mode initialization \\ - \hline - baldiag\_full & .false. & flag to toggle balance diagnostics for the full fields \\ - \hline - baldiag\_inc & .false. & flag to toggle balance diagnostics for the analysis increment \\ - \hline - \end{tabular} -\end{table} - - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{OBSQC} & & \textbf{Observation quality control variables} \\ - & & Parameters used for gross error checks are set in file convinfo (ermin, ermax, ratio) - Parameters below used for nonlinear (variational) quality control \\ - \hline - dfact & 0 & factor for duplicate observation at same location for conventional data \\ - \hline - dfact1 & 3.0 & time factor for duplicate observation at same location for conventional data \\ - \hline - erradar\_inflate & 1 & radar error inflation factor \\ - \hline - tdrerr\_inflate & .false. & logical for tdr obs error inflation \\ - \hline - tdrgross\_fact & 1 & factor applied to tdr gross error \\ - \hline - oberrflg & .false. & logical for reading in new observation error table (if set to true) \\ - \hline - vadfile & 'none' & character(10) variable holding name of VAD wind bufr file \\ - \hline - noiqc & .false. & logical flag to bypass OI QC (if set to true) \\ - \hline - c\_varqc & 1 & constant number to control variance qc turning on speed \\ - \hline - blacklst & .false. & logical for reading in raob blacklist (if set to true) \\ - \hline - use\_poq7 & .false. & Logical to toggle accept (.true.) or reject (.false.) SBUV/2 ozone observations flagged with profile ozone quality mark \\ - \hline - hilbert\_curve & .false. & option for hilbert-curve based cross-validation. works only with twodvar\_regional=.true. \\ - \hline - tcp\_refps & 1000.0 & reference pressure for tcps oberr calculation (mb) \\ - \hline - tcp\_width & 50.0 & parameter for tcps oberr inflation (width, mb) \\ - \hline - tcp\_ermin & 0.75 & parameter for tcps oberr inflation (minimum oberr, mb) \\ - \hline - tcp\_ermax & 5.0 & parameter for tcps oberr inflation (maximum oberr, mb) \\ - \hline - qc\_noirjaco3 & .false. & controls whether to use O3 Jac from IR instruments \\ - \hline - qc\_noirjaco3\_pole & .false. & controls wheter to use O3 Jac from IR instruments near poles \\ - \hline - qc\_satwnds & .true. & allow bypass sat-winds qc normally removing lots of mid-tropo obs \\ - \hline - njqc & & \\ - \hline - vqc & & \\ - \hline - aircraft\_t\_bc\_pof & .false. & logical for aircraft temperature bias correction, pof is used for predictor \\ - \hline - aircraft\_t\_bc & .false. & logical for aircraft temperature bias correction \\ - \hline - aircraft\_t\_bc\_ext & .false. & logical for reading aircraft temperature bias correction from external file \\ - \hline - buddycheck\_t & .false. & When true, run buddy check algorithm on temperature observations \\ - \hline - buddydiag\_save & .false. & When true, output files containing buddy check QC info for all obs run through the buddy check \\ - \hline - biaspredt & 1 & berror var for temperature bias correction coefficients \\ - \hline - upd\_aircraft & .true. & indicator if update bias at 06Z \& 18Z \\ - \hline - cleanup\_tail & .false. & logical to remove tail number no longer used \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{OBS\_INPUT} & & \textbf{Controls input data} \\ - \hline - dfile & \verb|' '| & input observation file name \\ - \hline - dtype & \verb|' '| & observation type \\ - \hline - dplat & \verb|' '| & satellite (platform) id (for satellite data) \\ - \hline - dsis & \verb|' '| & sensor/instrument/satellite flag from satinfo files \\ - \hline - dthin & \verb|' '| & satellite group \\ - \hline - dval & \verb|' '| & relative value of each profile within group relative weight for observation = dval/sum(dval) within grid box \\ - \hline - dmesh(max(dthin)) & & thinning mesh for each group \\ - & & mesh size (km) for radiance thinning grid (used in satthin) \\ - \hline - dsfcalc & \verb|' '| & specifies method to determine surface fields within a FOV. when equal to one, integrate model fields over FOV. when not one, bilinearly interpolate model fields to FOV center.\\ - \hline - time\_window\_max & 3 & upper limit on time window for all input data \\ - \hline - ext\_sonde & .false. & logical for extended forward model on sonde data \\ - \hline - l\_foreaft\_thin & .false. & separate TDR fore/aft scan for thinning \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{SINGLEOB\_TEST} & & \textbf{Single observation test case setup} \\ - \hline - maginnov & 1 & magnitude of innovation for one observation \\ - \hline - magoberr & 1 & magnitude of observational error \\ - \hline - oneob\_type & \verb|' '| & observation type (t, u, v, etc.) \\ - \hline - oblat & 0 & observation latitude \\ - \hline - oblon & 0 & observation longitude \\ - \hline - obpres & 1000.0 & observation pressure (hPa) \\ - \hline - obdattim & 2000010100 & observation date (YYYYMMDDHH) \\ - \hline - obhourset & 0 & observation delta time from analysis time \\ - \hline - pctswitch & .false. & if .true. innovation \& oberr are relative (\%) of background value (level ozone only) \\ - \hline - obchan & 0 & if > 0, selects the channel number. If <= zero, it will use all channels that pass qc in setuprad. \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline -\textbf{SUPEROB\_RADAR} & & \textbf{Level 2 bufr file to radar wind superobs} \\ - \hline - del\_azimuth & 5.0 & azimuth range for superob box (default 5 degrees) \\ - \hline - del\_elev & 0.25 & elevation angle range for superob box (default .05 degrees) \\ - \hline - del\_range & 5000.0 & radial range for superob box (default 5 km) \\ - \hline - del\_time & 0.5 & 1/2 time range for superob box (default .5 hours) \\ - \hline - elev\_angle\_max & 5.0 & max elevation angle (default of 5 deg) minnum 50 minimum number of samples needed to make a superob \\ - \hline - range\_max & 100000.0 & max radial range in meters to use in constructing superobs (default 100km) \\ - \hline - l2superob\_only & .false. & if true, then process level 2 data creating superobs, then quit. (added for easier retrospective testing, since level 2 bufr files are very large and hard to work with) \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline -\textbf{LAG\_DATA|} & & \textbf{Lagrangian data assimilation related variables} \\ - \hline - lag\_accur & 1.0e-6 & Accuracy used to decide whether or not a balloon is on the grid \\ - \hline - infile\_lag & inistate\_lag.dat & File containing the initial position of the balloon \\ - \hline - lag\_stepduration & 900.0 & Duration of one time step for the propagation model \\ - \hline - lag\_nmax\_bal & 1000 & Maximum number of balloons at starting time \\ - \hline - lag\_vorcore\_stderr\_a & 2.0e3 & Observation error for vorcore balloon \\ - \hline - lag\_vorcore\_stderr\_b & 0.0 & error = b + a*timestep(in hours)\\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline -\textbf{HYBRID\_ENSEMBLE} & & \textbf{Parameters for use with hybrid ensemble option} \\ - \hline - l\_hyb\_ens & .false. & if true, then turn on hybrid ensemble option \\ - \hline - uv\_hyb\_ens & .false. & if true, then ensemble perturbation wind variables are u,v, otherwise, ensemble perturbation wind variables are stream, pot. Functions.\\ - \hline - q\_hyb\_ens & .false. & if true, then use specific humidity ensemble perturbations, otherwise, use relative humidity\\ - \hline - aniso\_a\_en & .false. & if true, then use anisotropic localization of hybrid ensemble control variable a\_en.\\ - \hline - generate\_ens & .true. & if true, then generate internal ensemble based on existing background error \\ - \hline - n\_ens & 0 & number of ensemble members. \\ - \hline - nlon\_ens & 0 & number of longitudes on ensemble grid (may be different from analysis grid nlon) \\ - \hline - nlat\_ens & 0 & number of latitudes on ensemble grid (may be different from analysis grid nlat) \\ - \hline - jcap\_ens & 0 & for global spectral model, spectral truncation \\ - \hline - pseudo\_hybens & .false. & if true, turn on pseudo ensemble hybrid for HWRF \\ - \hline - merge\_two\_grid\_ensperts & .false. & if true, merge ensemble perturbations from two forecast domains to analysis domain (one way to deal with hybrid DA for HWRF moving nest) \\ - \hline - regional\_ensemble\_option & 0 & integer, used to select type of ensemble to read in for regional application. Currently takes values from 1 to 4 \\ - &&=1: use GEFS internally interpolated to ensemble grid. \\ - &&=2: ensembles are WRF NMM format \\ - &&=3: ensembles are ARW netcdf format. \\ - &&=4: ensembles are NEMS NMMB format. \\ - \hline - full\_ensemble & .false. & if true, first ensemble perturbation on first guess istead of on ens mean \\ - \hline - betaflg & .false. & if true, use vertical weighting on beta1\_inv and beta2\_inv, for regional \\ - \hline - coef\_bw & 0.9 & fraction of weight given to the vertical boundaries when betaflg is true \\ - \hline - pwgtflg & .false. & if true, use vertical integration function on ensemble contribution of Psfc \\ - \hline - jcap\_ens\_test & 0 & for global spectral model, test spectral truncation (to test dual resolution) \\ - \hline - beta1\_inv & 1 & 1/beta1, the default weight given to static background error covariance if (.not. readin\_beta) \\ - &&0 <= beta1\_inv <= 1, tuned for optimal performance \\ - &&=1, then ensemble information turned off \\ - &&=0, then static background turned off the weights are applied per vertical level such that : \\ - && betas\_inv(:) = beta1\_inv , vertically varying weights given to static \boldmath{B} ; \\ - &&betae\_inv(:) = 1 - beta1\_inv , vertically varying weights given ensemble derived covariance. \\ - && If (readin\_beta) then betas\_inv and betae\_inv are read from a file and beta1\_inv is not used.\\ - \hline - \end{tabular} -\end{table} - - - \begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{9cm} |} - \hline - Variable name & Default value & Description \\ - \hline - \textbf{HYBRID\_ENSEMBLE} & & \textbf{Parameters for use with hybrid ensemble option} \\ - \hline - s\_ens\_h & 2828 & homogeneous isotropic horizontal ensemble localization scale (km) \\ - \hline - s\_ens\_v & 30 & vertical localization scale (grid units for now) s\_ens\_h, s\_ens\_v, and beta1\_inv are tunable parameters. \\ - \hline - use\_gfs\_ens & .true. & controls use of global ensemble: .t. use GFS (default); .f. uses user-defined ens \\ - \hline - readin\_localization & .false. & flag to read (.true.)external localization information file \\ - \hline - readin\_beta & .false. & flag to read (.true.) the vertically varying beta parameters betas\_inv and betae\_inv from a file. \\ - \hline - eqspace\_ensgrid & .false. & if .true., then ensemble grid is equal spaced, staggered 1/2 grid unit off ploes. \\ - && if .false., then gaussian grid assumed for ensemble (global only) \\ - \hline - use\_localization\_grid & .false. & if true, then use extra lower res gaussian grid for horizontal localization (global runs only--allows possiblity for non-gaussian ensemble grid) \\ - \hline - grid\_ratio\_ens & 1 & for regional runs, ratio of ensemble grid resolution to analysis grid resolution \\ - && default value = 1 (dual resolution off) \\ - \hline - oz\_univ\_static & .false. & if true, decouple ozone from other variables and defaults to static B (ozone only) \\ - \hline - write\_ens\_sprd & .false. & writing global ensemble spread in byte addressable format for plotting with grads \\ - \hline - enspreproc & .false. & flag to read(.true.) pre-processed ensemble data already \\ - \hline - i\_en\_perts\_io & 0 & flag to read in ensemble perturbations in ensemble grid. \\ - & & This is to speed up RAP/HRRR hybrid runs because the same ensemble perturbations are used in 6 cycles \\ - & & =0: No ensemble perturbations IO (default) \\ - & & =2: skip get\_gefs\_for\_regional and read in ensemble perturbations from saved files. \\ - \hline - l\_ens\_in\_diff\_time & .false. & if use ensembles that are available at different time from analysis time. \\ - & & =false: only ensembles available at analysis time can be used for hybrid. (default) \\ - & & =true: ensembles available time can be different - from analysis time in hybrid analysis \\ - \hline - ensemble\_path & & \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{7cm} |} - \hline - \hline - Variable name & Default value & Description \\ - \hline - \textbf{rapidrefresh\_cldsurf} & & \textbf{Options for cloud analysis and surface enhancement for RR application} \\ - \hline - dfi\_radar\_latent\_heat\_time\_period & 30.0 & DFI forward integration window in minutes \\ - \hline - metar\_impact\_radius & 10.0 & metar cloud observation impact radius in grid number\\ - \hline - metar\_impact\_radius\_lowCloud & 4.0 & impact radius for METAR cloud observation that indicate low cloud base \\ - \hline - l\_gsd\_terrain\_match\_surfTobs & .false. & if .true., GSD terrain match for surface temperature observation \\ - \hline - l\_sfcobserror\_ramp\_t & .false. & namelist logical for adjusting surface temperature observation error \\ - \hline - l\_sfcobserror\_ramp\_q & .false. & namelist logical for adjusting surface moisture observation error \\ - \hline - l\_PBL\_pseudo\_SurfobsT & .false. & if .true. produce pseudo-obs in PBL layer based on surface obs T \\ - \hline - l\_PBL\_pseudo\_SurfobsQ & .false. & if .true. produce pseudo-obs in PBL layer based on surface obs Q \\ - \hline - l\_PBL\_pseudo\_SurfobsUV & .false. & if .true. produce pseudo-obs in PBL layer based on surface obs UV \\ - \hline - pblH\_ration & 0.75 & percent of the PBL height within which to add pseudo-obs \\ - \hline - pps\_press\_incr & 30hPa & pressure increase for each additional pseudo-obs on top of previous level \\ - \hline - l\_gsd\_limit\_ocean\_q & .false. & if .true. do GSD limitation of Q over ocean \\ - \hline - l\_pw\_hgt\_adjust & .false. & if .true. do GSD PW adjustment for model vs. obs station height \\ - \hline - l\_limit\_pw\_innov & .false. & if .true. do GSD limitation of PW obs \\ - \hline - max\_innov\_pct & 0.1 & sets limit of PW ob to a percent of the background value (0-1) \\ - \hline - l\_cleanSnow\_WarmTs & .false. & if .true. do GSD limitation of using retrieved snow over warn area (Ts > r\_cleanSnow\_WarmTs\_threshold) \\ - \hline - l\_conserve\_thetaV & .false. & if .true. conserve thetaV during moisture adjustment in cloud analysis \\ - \hline - r\_cleanSnow\_WarmTs\_threshold & 8.0 & threshold for using retrieved snow over warn area \\ - \hline - i\_conserve\_thetaV\_iternum & 3 & iteration number for conserving thetaV during moisture adjustment \\ - \hline - l\_gsd\_soilTQ\_nudge & .false. & if .true. do GSD GOES cloud building \\ - \hline - l\_cld\_bld & .false. & if .true. do GSD soil T and Q nudging based on the lowest t analysis increment \\ - \hline - cld\_bld\_hgt & 1200m & sets limit below which GOES cloud building occurs \\ - \hline - build\_cloud\_frac\_p & 0.95 & sets the threshold for building clouds from satellite \\ - \hline - clear\_cloud\_frac\_p & 0.1 & sets the threshold for clearing clouds from satellite \\ - \hline - nesdis\_npts\_rad & 1 & NESDIS cloud product impact radiu (grid points) \\ - \hline - iclean\_hydro\_withRef & 1 & if =1, then clean hydrometeors if the grid point has no echo and maxref=0 \\ - \hline - iclean\_hydro\_withRef\_allcol & 0 & if =1, then clean whole column hydrometeors if the observed max ref =0 and satellite cloud shows clean \\ - \hline - \hline - \end{tabular} -\end{table} - - \begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{7cm} |} - \hline - \hline - Variable name & Default value & Description \\ - \hline -\textbf{rapidrefresh\_cldsurf} & & \textbf{Options for cloud analysis and surface enhancement for RR application} \\ - \hline - l\_use\_2mq4b & 0 & background used for calculate surface moisture observation innovation \\ - && =0 Use Q from the 1st model level. (default) \\ - && =1 use 2m Q as part of background \\ - \hline - i\_use\_2mt4b & 0 & background used for calculate surface temperature observation innovation \\ - && =0 Use T from the 1st model level. (default) \\ - && =1 use 2m T as part of background \\ - i\_gsdcldanal\_type & 0 & options for how GSD cloud analysis should be conducted \\ - & & =0. no cloud analysis (default) \\ - & & =1. cloud analysis after var analysis \\ - & & =5. skip cloud analysis and NETCDF file update \\ - \hline - i\_gsdsfc\_uselist & 0 & options for how to use surface observation use or rejection list \\ - & & =0 . EMC method (default) \\ - & & =1 . GSD method \\ - \hline - i\_lightpcp & 0 & options for how to deal with light precipitation \\ - & & =0 . don't add light precipitation (default) \\ - & & =1 . add light precipitation in warm section \\ - \hline - i\_sfct\_gross & 0 & if use extended threshold for surface T gross check \\ - & & =0 use threshold from convinfo (default) \\ - & & =1 for cold surface, threshold for gross check is enlarged to bring more large negative innovation into analysis. \\ - \hline - \end{tabular} -\end{table} - -\begin{table}[h] - \footnotesize - \center - \begin{tabular}{| c | c | p{7cm} |} - \hline - Variable name & Default value & Description \\ - \hline -\textbf{CHEM} & & \textbf{Chemistry data assimilation} \\ - \hline - berror\_chem & .false. & if berror file is supplied for chemistry \\ - \hline - oneobtest\_chem & .false. & single observation test for chemistry \\ - \hline - maginnov\_chem & 30.0 & if oneobtest\_chem=T magnitude of innovation for chemistry \\ - \hline - magoberr\_chem & 2.0 & if oneobtest\_chem=T magnitude of observation error for chemistry \\ - \hline - oneob\_type\_chem & pm2\_5 & if oneobtest\_chem=T type of chemical observation \\ - \hline - oblat\_chem & 45.0 & if oneobtest\_chem=T latitude of the observation \\ - \hline - oblon\_chem & 270.0 & if oneobtest\_chem=T longitude of the observation \\ - \hline - obpres\_chem & 1000.0 & if oneobtest\_chem=T pressure of the observation \\ - \hline - diag\_incr & .false. & if user wishes to output to a binary file increment \\ - \hline - elev\_tolerance & 500.0 & for surface chemical observation sometimes elevation (elev\_obs) of the measurement is available (sometimes not). \\ - \hline - tunable\_error & 0.5 & tuning parameter to specify representativeness error for in-situ observations \\ - \hline - in\_fname & cmaq\_input.bin & name of background file for cmaq \\ - \hline - out\_fname & cmaq\_output.bin & name analysis file for cmaq \\ - \hline - incr\_fname & chem\_increment.bin & if diag\_incr=T name of the binary dump for pm2\_5 \\ - \hline - laeroana\_gocart & .false. & when true, do chem analysis with wrfchem and modis \\ - \hline - l\_aoderr\_table & & \\ - \hline - aod\_qa\_limit & & \\ - \hline - luse\_deepblue & & \\ - \hline - aero\_ratios & & \\ - \hline - wrf\_pm2\_5 & & \\ - \hline - \end{tabular} -\end{table} diff --git a/doc/GSI_user_guide/gsi_ch1.tex b/doc/GSI_user_guide/gsi_ch1.tex deleted file mode 100644 index 985d36f96..000000000 --- a/doc/GSI_user_guide/gsi_ch1.tex +++ /dev/null @@ -1,184 +0,0 @@ -\chapter{Overview}\label{overview} - -%------------------------------------------------------------------------------- -\section{GSI History and Background} -%------------------------------------------------------------------------------- - -The Gridpoint Statistical Interpolation (GSI) system is a unified data assimilation (DA) system for both global and regional applications. It was initially developed by the National Centers for Environmental Prediction (NCEP) Environmental Modeling Center (EMC) as a next generation analysis system based on the then operational Spectral Statistical Interpolation (SSI) analysis system (\cite{Wu2002}; \cite{Purser2003a}; \cite{Purser2003b}). Instead of being constructed in spectral space like the SSI, the GSI is constructed in physical space and is designed to be a flexible, state-of-art system that is efficient on available parallel computing platforms. Starting with a three-dimensional variational (3DVar) data assimilation technique, the current GSI can be run as a data assimilation system of 2DVar (for surface data analysis), 3DVar, 3D ensemble-variational (3D EnVar), 4D EnVar, 3D/4D hybrid EnVar, or 4DVar (if coupled with an adjoint model from a GSI supported forecast system). - -After initial development, the GSI analysis system became operational as the core of the North American Data Assimilation System (NDAS) for the North American Mesoscale (NAM) system in June 2006 and the Global Data Assimilation System (GDAS) for the Global Forecast System (GFS) in May 2007 at National Oceanic and Atmospheric Administration (NOAA). Since then, the GSI system has been adopted in various operational systems, including the National Aeronautics and Space Administration (NASA) Goddard Earth Observing System Model (GEOS), the United States Air Force (USAF) mesoscale data assimilation system, the NOAA Real-Time Mesoscale Analysis (RTMA) system, the Hurricane Weather Research and Forecasting (WRF) model (HWRF), and the Rapid Refresh (RAP) and High Resolution Rapid Refresh (HRRR) systems. The number of groups and institutes involved in operational GSI development has also increased throughout these years. - -%------------------------------------------------------------------------------- -\section{GSI Becomes Community Code} -%------------------------------------------------------------------------------- - -In 2007, the Developmental Testbed Center (DTC) began collaborating with major GSI development groups to transform the operational GSI system into a community system and support distributed development (\cite{Shao2016}). The DTC complements the development groups in providing GSI documentation, porting GSI to multiple platforms, and testing GSI in an independent and objective environment, while maintaining equivalent functionality to what used in thoperational centers. Since 2009, due to the NOAA security constraints, the DTC has been maintaining a community GSI code repository, which mirrors the EMC operational GSI code repository and facilitates community users to develop GSI. Based on this community repository, the DTC releases GSI code annually with updated documentation. Currently, the DTC and EMC are working closely to build a unified GSI code repository for both operational and community developers and users. This unified repository will facilitate direct communication among developers and help accelerate transitions between research and operations. Transition to this unified code repository is ongoing and will be completed by end of 2017. - -The first community version of the GSI system was released in 2009. This user\textquotesingle s guide describes the release of GSI (v3.6) in September 2017. The DTC provides user support through the GSI Helpdesk (gsi-help@ucar.edu), tutorials and workshops. More information about the GSI community services can be found at the DTC GSI webpage (\url{http://www.dtcenter.org/com-GSI/users/index.php}). - -%------------------------------------------------------------------------------- -\subsection{GSI Code Management and Review Committee} -%--------------------------------------------------------------------of----------- -The GSI code development and maintenance are managed by the Data Assimilation Review Committee (DARC). It was originally formed as the GSI Review Committee in 2010, with the goal of incorporating all major GSI development teams in the United States within a unified community framework. In 2014, EMC and DTC decided to merge their GSI code repository with the code repository of the NOAA ensemble Kalman filter (EnKF) data assimilation system. This merge enabled coordinated development of both systems and joint community support. Following the repository merging, the GSI Review Committee was transitioned to DARC, incorporating new members representing EnKF development and applications. Currently, DARC contains members from NCEP/EMC, NASA\textquotesingle s Goddard Global Modeling and Assimilation Office (GMAO), NOAA's Earth System Research Laboratory (ESRL), the Joint Center for Satellite Data Assimilation (JCSDA), the National Center for Atmospheric Research (NCAR) Mesoscale \& Microscale Meteorology Laboratory (MMM), the National Environmental Satellite, Data, and Information Service (NESDIS), USAF, the University of Maryland, and the DTC (chair). The DTC also releases the EnKF system annually (along with GSI). Please refer to the community EnKF user\textquotesingle s webpage (\url{http://www.dtcenter.org/EnKF/users/index.php}) for more information. - -DARC primarily steers distributed GSI/EnKF development, community code management, and support. The responsibilities of the committee are divided into two major aspects: coordination and code review. The purpose and guiding principles of the review committee are as follows: -\begin{itemize} -\item{Coordination and advisory} -\begin{itemize} -\item Propose and shepherd new development -\item Coordinate on-going and new development -\item Establish and manage a code review and transition process -\item Community support recommendation -\end{itemize} -\item{Code review} -\begin{itemize} -\item Establish and manage a unified coding standard followed by all GSI/EnKF developers -\item Review proposed modifications to the code trunk -\item Make decisions on whether code change proposals are accepted or denied for -inclusion in the repository -\item Manage the repository -\item Oversee the timely testing and inclusion of code into the repository -\end{itemize} - -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Community Code Contributions} -%------------------------------------------------------------------------------- - -GSI is a community data assimilation system, open to contributions from scientists and software engineers from both the operational and research communities. DARC oversees the code transition from prospective contributors. This committee reviews proposals for code commits to the GSI repository and ensures that coding standards and tests are being fulfilled. Once the committee approves, the contributed code will be committed to the GSI code repository and available for operational implementation and public release. - -To facilitate this process, the DTC is providing code transition assistance to the general research community. Prospective code contributors should contact the DTC GSI helpdesk (gsi-help@ucar.edu) for the preparation and integration of their code. It is the responsibility of the contributor to ensure that a proposed code change is correct, meets GSI coding standards, and its expected impact is documented. The DTC will help the contributor run regression tests and merge the code with the top of the repository trunk. Prospective contributors can also apply to the DTC visitor program for their GSI research and code transition. The visitor program is open to applications year-round. Please check the visitor program webpage (\url{www.dtcenter.org/visitors/}) for the latest announcement of opportunity and application procedures. - -%------------------------------------------------------------------------------- -\section{About This GSI Release} -%------------------------------------------------------------------------------- - -As a critical part of the GSI user support, this document is provided to assist users in applying GSI to data assimilation and analysis studies. It was composed by the DTC and reviewed by the DARC members. Please note that the major focuses of the DTC are currently on testing and evaluation of GSI for regional numerical weather prediction (NWP) though the instructions. GSI global and chemical applicaitons are briefly discussed in the document. The document is based on GSI v3.6 release. Active users can contact the DTC (gsi-help@ucar.edu) for developmental versions of GSI and access to the GSI code repository. - -%------------------------------------------------------------------------------- -\subsection{What Is New in This Release Version} -%------------------------------------------------------------------------------- - -The following lists some of the new functions and changes included in the v3.6 release of the GSI versus v3.5: - -\textbf{Observational aspects}: -\begin{itemize} - \item Added assimilation of full spectral resolution CrIS radiance observations - \item Added near surface temperature (NSST) analysis - \item Added options to use correlated radiance observation errors -\end{itemize} - -\textbf{Code optimization and refactoring}: -\begin{itemize} - \item Refactored the observer modules using polymorphic code - \item Generalized all radiance assimilation across different sensors/instruments for cloud and aerosol usages in GSI - \item Removed the First-Order Time extrapolation to the Observation (FOTO) - \item Updated to netCDF v4.0 functionality - \item Removed unused modules/variables -\end{itemize} - -\textbf{Application specific updates}: -\begin{itemize} - \item{Non-variational cloud analysis} - \begin{itemize} - \item Added number concentration for cloud water, cloud ice, and rain to match the cloud analysis with the Thompson Microphysical scheme - \item Added functions using visibility/fog observation to improve cloud fields in the lowest two levels - \item Added capability to read BUFR format NASA LaRC cloud products - \end{itemize} - \item{RTMA} - \begin{itemize} - \item Added variational QC algorithm using a super-logistic distribution function - \item Added cloud ceiling height and scalar wind as analysis variables - \end{itemize} -\end{itemize} - -\textbf{Other updates}: -\begin{itemize} - \item Added the Advanced Research WRF (ARW) hybrid vertical coordinate background to GSI - \item Added a vertical dependence of the hybrid background error weighting, and horizontal/vertical localization scales in GSI - \item Added a NCEP nemsio interface for GFS deterministic and ensemble forecasts - \item Utility updates such as using GFS ensemble forecast perturbations to initialize WRF ensemble forecasts. - \item Bug fixes -\end{itemize} - -Besides the above-mentioned changes, the release code also includes a new cmake-based build utility. This utility is currently being tested for its portability and has been included in v3.6. In the near future, the DTC and EMC will use the same cmake build utility for all operational and research code. Transition to this new build utility will be completed by early 2018. - -Please note that due to the version update, some diagnostic and static information files might have been modified as well. - -%------------------------------------------------------------------------------- -\subsection{Observations Used by This Version} -%------------------------------------------------------------------------------- - -GSI is used by various applications on multiple scales. The types of observations GSI can assimilate vary from conventional to aerosol observations. Users should use observations with caution to fit their specific applications. The GSI v3.6 can assimilate, but is not limited to, the following types of observations: - -\textbf{Conventional observations (including satellite retrievals):} -\begin{itemize} -\item Radiosondes -\item Pilot ballon (PIBAL) winds -\item Synthetic tropical cyclone winds -\item Wind profilers: USA, Jan Meteorological Agency (JMA) -\item Conventional aircraft reports -\item Aircraft to Satellite Data Relay (ASDAR) aircraft reports -\item Meteorological Data Collection and Reporting System (MDCRS) aircraft reports -\item Dropsondes -\item Moderate Resolution Imaging Spectroradiometer (MODIS) IR and water vapor winds -\item Geostationary Meteorological Satellite (GMS), JMA, and Meteosat cloud drift IR and visible winds -\item European Organization for the Exploitation of Meteorological Satellites (EUMETSAT) and GOES water vapor cloud top winds -\item GEOS hourly IR and cloud top wind -\item Surface land observations -\item Surface ship and buoy observations -\item Special Sensor Microwave Imager (SSMI) wind speeds -\item Quick Scatterometer (QuikSCAT), the Advanced Scatterometer (ASCAT) and Oceansat-2 Scatterometer (OSCAT) wind speed and direction -\item RapidScat observations -\item SSM/I and Tropical Rainfall Measuring Mission (TRMM) Microwave Imager (TMI) precipitation estimates -\item Velocity-Azimuth Display (VAD) Next Generation Weather Radar ((NEXRAD) winds -\item Global Positioning System (GPS) precipitable water estimates -\item Sea surface temperatures (SSTs) -\item Doppler wind Lidar -\item Aviation routine weather report (METAR) cloud coverage -\item Flight level and Stepped Frequency Microwave Radiometer (SFMR) High Density -Observation (HDOB) from reconnaissance aircraft -\item Tall tower wind -\end{itemize} - - -\textbf{Satellite radiance/brightness temperature observations (instrument/satellite ID):} -\begin{itemize} -\item SBUV: \textit {NOAA-17, NOAA-18, NOAA-19} -\item High Resolution Infrared Radiation Sounder (HIRS): \textit {Meteorological Operational-A (MetOp-A), MetOp-B, NOAA-17, NOAA-19} -\item GOES imager: \textit {GOES-11, GOES-12} -\item Atmospheric IR Sounder (AIRS): \textit {aqua} -\item AMSU-A: \textit {MetOp-A, MetOp-B, NOAA-15, NOAA-18, NOAA-19, aqua} -\item AMSU-B: \textit {MetOp-B, NOAA-17} -\item Microwave Humidity Sounder (MHS): \textit {MetOp-A, MetOp-B, NOAA-18, NOAA-19} -\item SSMI: \textit {DMSP F14, F15, F19} -\item SSMI/S: \textit {DMSP F16} -\item Advanced Microwave Scanning Radiometer for Earth Observing System (AMSR-E): \textit {aqua} -\item GOES Sounder (SNDR): \textit {GOES-11, GOES-12, GOES-13} -\item Infrared Atmospheric Sounding Interferometer (IASI): \textit {MetOp-A, MetOp-B} -\item Global Ozone Monitoring Experiment (GOME): \textit {MetOp-A, MetOp-B} -\item Ozone Monitoring Instrument (OMI): \textit {aura} -\item Spinning Enhanced Visible and Infrared Imager (SEVIRI): \textit {Meteosat-8, Meteosat-9, Meteosat-10} -\item Advanced Technology Microwave Sounder (ATMS): \textit {Suomi NPP} -\item Cross-track Infrared Sounder (CrIS): \textit {Suomi NPP} -\item GCOM-W1 AMSR2 -\item GPM GMI -\item Megha-Tropiques SAPHIR -\item Himawari AHI -\end{itemize} - -\textbf{Others:} -\begin{itemize} -\item GPS Radio occultation (RO) refractivity and bending angle profiles -\item Solar Backscatter Ultraviolet (SBUV) ozone profiles, Microwave Limb Sounder (MLS) (including NRT) ozone, and Ozone Monitoring Instrument (OMI) total ozone -\item Doppler radar radial velocities -\item Radar reflectivity Mosaic -\item Tail Doppler Radar (TDR) radial velocity and super-observation -\item Tropical Cyclone Vitals Database (TCVital) -\item Particulate matter (PM) of 10-um diameter, 2.5-um diameter or less -\item MODIS AOD (when using GSI-chem package) -\item Significant wave height observations from JASON-2, JASON-3, SARAL/ALTIKA and CRYOSAT-2 -\end{itemize} - -Please note that some of these above mentioned data are not yet fully tested and/or implemented for operations. Therefore, the current GSI code might not have an optimal setup for these data. diff --git a/doc/GSI_user_guide/gsi_ch2.tex b/doc/GSI_user_guide/gsi_ch2.tex deleted file mode 100644 index eca9d2887..000000000 --- a/doc/GSI_user_guide/gsi_ch2.tex +++ /dev/null @@ -1,593 +0,0 @@ -\chapter{Software Installation}\label{gsi_install} -\setlength{\parskip}{12pt} - -%------------------------------------------------------------------------------- -\section{Introduction} -%------------------------------------------------------------------------------- - -The DTC GSI is a community distribution of NOAA\textquotesingle s operational GSI. -The community GSI expands the portability of the operational code by adding a flexible build -system and providing example run scripts that allow GSI to be compiled and run on many common -platforms. The current version of GSI is 3.6. It builds and runs on most standard -Linux platforms using Intel, PGI, and Gnu compilers. Legacy build rules are provided for -two platforms, the IBM AIX computers using the xlf compiler, and Intel based Macintosh -computers using the PGI compiler. In both cases, the default build system must be significantly modified to -build on these platforms. See the community web page user support FAQ to get started. - -This chapter describes how to build and install the DTC community GSI software on your local -Linux computing resources. These instructions apply only to the DTC community GSI. While -the community GSI source code is identical to the NCEP\textquotesingle s GSI -trunk code used for release, the community build system is different, allowing it to be more -general to support a wide variety of computing platforms. - -The GSI build process consists of four general steps: -\begin{itemize} -\item Obtaining the source code for GSI and WRF. -\item Building the WRF model (see the WRF user\textquotesingle s guide). -\item Setting the appropriate environment variables for the GSI build. -\item Configuring and compiling the GSI source code. -\end{itemize} - -This chapter is organized as follows: Section \ref{ch2_obtainingcode} describes how to obtain -the source code. Section \ref{ch2_directorystructure} covers the directory structure and -supplemental NCEP libraries included with the distribution. Section \ref{ch2_compiling} starts -with an outline of the build example and then goes into a more detailed discussion of setting -up the build environment and the configure and compile steps. -Section \ref{ch2_buildexample} illustrates the build process for three of the compilers (Intel, -PGI and Gnu) on the NCAR Yellowstone supercomputer. -Section \ref{ch2_externallibs} covers system requirements and settings (tools, libraries, and environment -variable settings), and currently supported platforms in detail. -Section \ref{ch2_gettinghelp} discusses what to do if you have problems with the build and where to get help. - -For beginners, sections \ref{ch2_obtainingcode} and \ref{ch2_compiling} provide the necessary -steps to obtain the code and build GSI on most systems. The remainder of the chapters provide -background material for completeness. A final chapter \ref{ch2_cmake}, discusses the new experimental CMake build system being developed by the DTC and EMC as a common shared build method. - Advanced topics, such as customizing the build, porting to new platforms, and debugging can be -found in the GSI Advanced User\textquotesingle s Guide. - -%------------------------------------------------------------------------------- -\section{Obtaining and Setting Up the Source Code} \label{ch2_obtainingcode} -%------------------------------------------------------------------------------- - -The community GSI resources, including source code, build system, utilities, practice data, and -documentation, are available from the DTC community GSI users website, located at - -\url{http://www.dtcenter.org/com-GSI/users/index.php} - -The source code is available by first selecting the \underline{Download} tab on the vertical -menu located on the left column of the page, and then selecting the -\underline{GSI/EnKF System} -submenu. New users must first register before downloading the source code. Returning users -only need to enter their registration email address to log in. After accessing the download page, -select the link to the \verb|comGSIv3.6_EnKFv1.2.tar| tarball to download the most recent version -of the source code (October 2017). Selecting the newest release of the community GSI is critical for -having the most recent capabilities, versions of supplemental libraries, and bug fixes. Full support -is only offered for the two most recent code releases. - -To analyze satellite radiance observations, GSI requires the use of CRTM coefficients. It is important to -use \textbf{only} the version of CRTM coefficients provided on the GSI website. Due to their large size, -these are available as a separate tarfile. They can be downloaded by selecting the link to the -tarball for the \verb|CRTM 2.2.3 Big Endian coefficients| from the web page. For all compilers, -use the big endian byte order coefficients found in the first CRTM link. - -The download page also contains links to the fixed files necessary for -running global GSI: - -\begin{itemize} -\item Global configuration (fix files to run Global GSI) -\end{itemize} - -The community GSI version 3.6 comes in a tar file named \verb|comGSIv3.6_EnKFv1.2.tar|. The tar -file may be unpacked by using the UNIX commands: - -\begin{small} -\begin{verbatim} -gunzip comGSIv3.6_EnKFv1.2.tar.gz -tar -xvf comGSIv3.6_EnKFv1.2.tar -\end{verbatim} -\end{small} - -This creates the top level GSI directory \verb|comGSIv3.6_EnKFv1.2/|. -After downloading the source code, and prior to building, the user should check the known issues -link on the download page of the DTC website to determine if any bug fixes or platform specific customizations are needed. - -%------------------------------------------------------------------------------- -\section{Directory Structure, Source Code and Supplemental Libraries} \label{ch2_directorystructure} -%------------------------------------------------------------------------------- - -The GSI system includes the GSI source code, the build system, supplemental libraries, fixed files, and run scripts. Starting with the current version of GSI V3.6, the directory structure has be changed slightly. -The following table lists the system components found inside the root GSI directory. - - -\begin{table}[htbp] -\centering -\begin{tabular}{| l | l |} -\hline -Directory Name & Content\\ -\hline -\hline -src/ & GSI source code and makefiles \\ -\hline -lib/ & Source code and build location for supplemental libraries \\ -\hline -core-libs/ & Build directory for supplemental libraries for CMake build \\ -\hline -libsrc/ & Source code for supplemental libraries for the CMake build \\ -\hline -fix/ & Fixed input files required by a GSI analysis, such as \\ - & background error covariances, observation error tables; \\ - & Excluding the CRTM coefficients \\ -\hline -include/ & Include files created by the build system \\ -\hline -dtc/ & Directory for the DTC build system, executable \verb|gsi.exe| location, and sample run scripts \\ -\hline -arch/ & Build system support such as machine architecture specifics \\ - & (see Advanced GSI User\textquotesingle s Guide) \\ -\hline -util/ & Tools for GSI diagnostics \\ -\hline -\end{tabular} -\label{ch2_tble1} -\end{table} - -For convenience, supplemental NCEP libraries for building GSI are -included in the \verb|src/libs/| directory. These libraries will be built when compiling GSI. -These supplemental libraries are listed in the table below. - -\begin{table}[htbp] -\centering -\begin{tabular}{| l | l |} -\hline -\hline -Directory Name & Content \\ -\hline -bacio/ & NCEP BACIO library \\ -\hline -bufr/ & NCEP BUFR library \\ -\hline -crtm\_2.2.3/ & JCSDA community radiative transfer model \\ -\hline -gsdcloud/ & GSD Cloud analysis library \\ -\hline -misc/ & Misc support libraries \\ -\hline -nemsio/ & NEMS I/O library \\ -\hline -sfcio/ & NCEP GFS surface file i/o module \\ -\hline -sigio/ & NCEP GFS atmospheric file i/o module \\ -\hline -sp/ & NCEP spectral - grid transforms \\ -\hline -w3emc\_v2.0.5/ & NCEP/EMC W3 library (date/time manipulation, GRIB) \\ -\hline -w3nco\_v2.0.6/ & NCEP/NCO W3 library (date/time manipulation, GRIB) \\ -\hline - -\end{tabular} -\label{ch2_tble2} -\end{table} - -The one set of non-standard \textit{library} files not included with the source code are those associated with the WRF IO API. These are obtained by linking to a build of the WRF code. Please note that the release version of WRF/EnKF has only been tested using the previous two release versions of WRF. Older versions of WRF may provide unpredictable results. - -Following a registration process similar to that for downloading GSI, the WRF code and full WRF documentation can be obtained from the WRF Users\textquotesingle \ Page, - -\url{http://www.mmm.ucar.edu/wrf/users/} - -%------------------------------------------------------------------------------- -\section{Compiling GSI} \label{ch2_compiling} -%------------------------------------------------------------------------------- - -This section starts with a quick outline of how to build GSI (\ref{ch2_compiling_overview}), followed by a more detailed discussion of the build process (\ref{ch2_compiling_env} \& \ref{ch2_compiling_configandcompile}). Typically GSI will build \textit{straight out of the box} on any system that successfully builds the WRF model. Should the user experience any difficulties with the default build, check the build environment against the requirements described at the end of section \ref{ch2_externallibs}. - -To proceed with the GSI build, it is assumed that the WRF model has already been built on the current system. GSI uses the WRF I/O API libraries to read the background file. These I/O libraries are created as part of the WRF build, and are linked into GSI during the GSI build process. In order to successfully link the WRF I/O libraries with the GSI source, it is crucial that both WRF and GSI are built using the same Fortran compilers. This means that if WRF is built with the Intel Fortran compiler, then GSI must also be built with the Intel Fortran compiler. It is also recommended that both codes be built with the same annual version number of the compiler (e.g., 14, 15, etc.). - -%------------------------------------------------------------------------------- -\subsection{Build Overview} \label{ch2_compiling_overview} -%------------------------------------------------------------------------------- - -This section provides a quick outline of the steps necessary to build the GSI code. The following steps describe that build process. - -\begin{enumerate} -\item \textbf{Set the environment for the compiler}: If not already done, set the necessary paths for using your selected compiler, such as loading the appropriate modules or modifying your path variable. -\item \textbf{Set the environment variables}: The first path on this list will always need to be set. The remaining two will depend on your choice of compiler and how your default environment is configured. -\begin{description} -\item[]a. \verb|WRF_DIR| the path to the compiled WRF directory (to always be set) -\item[]b. \verb|NETCDF| the path to the \verb|NETCDF| libraries -\item[]c. \verb|LAPACK_PATH| the path to the \verb|LAPACK| math libraries -\end{description} -\item \textbf{Change into the dtc/ directory} -\item \textbf{Run the configure script} -\item \textbf{Run the compile script} -\end{enumerate} - -%------------------------------------------------------------------------------- -\subsection{Environment Variables} \label{ch2_compiling_env} -%------------------------------------------------------------------------------- - -Before configuring the GSI code to be built, be sure to check the following enviroment variables: - -\begin{description} -\item[WRF\_DIR] defines the path to the root of the WRF build directory. Setting this is mandatory. This variable tells the GSI build system where to find the WRF I/O libraries. The process for setting the environment variables varies according to the login shell used. To set the path variable WRF\_DIR for csh/tcsh, type: -\begin{verbatim} -setenv WRF_DIR /path_to_WRF_root_directory/ for csh or tcsh -export WRF_DIR=/path_to_WRF_root_directory/ for ksh or bash -\end{verbatim} -\item[NETCDF] The second environment variable specifies the local path to NetCDF library. The path location for the NETCDF environment variable may be checked by using the command -\begin{verbatim} - echo $NETCDF -\end{verbatim} -If the command returns with the response that the variable is undefined, such as -\begin{verbatim} - NETCDF: Undefined variable. -\end{verbatim} -it is then necessary to manually set this variable. If your system uses modules or a similar mechanism to set the environment, do this first. If a valid path is returned by the echo command, no further action is required.\\ - -\item[LAPACK\_PATH] defines the path to the LAPACK library. Typically, this variable will only need to be set on systems without a vendor provided version of LAPACK. -IBM systems typically come installed with the LAPACK equivalent ESSL library that links automatically. Likewise, the PGI compiler often comes with a vendor provided version of LAPACK that links automatically with the compiler. Experience has shown that the following situations make up the majority of cases where the LAPACK variable needs to be set: -\begin{itemize} -\item Linux environments using Intel Fortran compiler. -\item Building with Gfortran. -\item On systems where the path variables are not properly set. -\item On stripped down versions of the IBM AIX OS that lack the ESSL libraries -\end{itemize} -Of these four, the first case is the most common. The Intel compiler usually comes with a vendor provided mathematics library known as the \textit{Mathematics Kernel Libraries} or MKL for short. While most installations of the Intel compiler typically come with the MKL libraries installed, the ifort compiler does not automatically load the library. It is therefore necessary to set the LAPACK\_PATH variable to the location of the MKL libraries when using the Intel compiler. You may need to ask your system administrator for the correct path to these libraries. -\end{description} - -On super-computing systems with multiple compiler options, these variables may be set as part of the module settings for each compiler. On the NCAR supercomputer Yellowstone, the Intel build environment can be specified through setting the appropriate modules. When this is done, the MKL library path is available through a local environment variable, MKLROOT. The LAPACK environment may be set for csh/tcsh with the Unix commands -\begin{small} -\begin{verbatim} - setenv LAPACK_PATH $MKLROOT -\end{verbatim} -\end{small} -and for bash/ksh by -\begin{small} -\begin{verbatim} - export LAPACK_PATH=$MKLROOT -\end{verbatim} -\end{small} - -Once the environment variables have been set, the next step in the build process is to run the configure and compile scripts. - -%------------------------------------------------------------------------------- -\subsection{Configure and Compile} \label{ch2_compiling_configandcompile} -%------------------------------------------------------------------------------- - -Once the environment variables have been set, building the GSI source code requires two additional steps: -\begin{enumerate} -\item Run the configure script and select a compiler option. -\item Run the compile script. -\end{enumerate} -Change into the \verb|comGSIv3.6_EnKFv1.2/dtc| directory and issue the configure command: -\begin{verbatim} - ./configure -\end{verbatim} -The \verb|./configure| command uses user input to create a platform specific configuration file called -\verb|configure.gsi|. The script starts by echoing the NETCDF and WRF\_DIR paths set in the previous -section. It then examines the current system and queries the user to select from multiple build options. - -For 64-bit Linux, the options will be the following: -\begin{scriptsize} -\begin{verbatim} -Will use NETCDF in dir: /glade/apps/opt/netcdf/4.3.0/intel/default -Will use WRF in dir: /glade/p/work/stark/WRF/intel/trunk_20150420_3-7_RELEASE ------------------------------------------------------------------------- -Please select from among the following supported platforms. - - 1. Linux x86_64, PGI compilers (pgf90 & pgcc) (dmpar,optimize) - 2. Linux x86_64, PGI compilers (pgf90 & gcc) (dmpar,optimize) - 3. Linux x86_64, PGI compilers (pgf90 & gcc) Supercomp (w/o -f90=SFC) (dmpar,optimize) - 4. Linux x86_64, PGI compilers (pgf90 & pgcc) Supercomp (w/o -f90=SFC) (dmpar,optimize) - 5. Linux x86_64, GNU compilers (gfortran & gcc) (dmpar,optimize) - 6. Linux x86_64, Intel/gnu compiler (ifort & gcc) (dmpar,optimize) - 7. Linux x86_64, Intel compiler (ifort & icc) (dmpar,optimize) - 8. Linux x86_64, Intel compiler (ifort & icc), IBM POE (EXPERIMENTAL) (dmpar,optimize) - 9. Linux x86_64, Intel compiler (ifort & icc), SGI MPT (EXPERIMENTAL) (dmpar,optimize) - -Enter selection [1-9] : -\end{verbatim} -\end{scriptsize} - -Looking at the list, there are two things to note. First, the GNU C-compiler (gcc) may be -paired with any of the other Fortran compilers. This allows the build to use the GNU C-compiler -in place of the Intel (icc) or PGI (pgcc) C-compiler. - -There are also separate build targets for vendor supplied versions -of MPI such as IBM POE and SGI MPT. This was added due to some computing hardware vendors -creating non-standard mpif90 wrappers for their vendor supplied version of MPI. If uncertain about -which to choose, start by selecting the default option corresponding to the fortran compiler you wish -to use (either 1, 5, or 7). If that option fails with an error referencing a bad argument for mpif90, -only then try the options listed for use with \verb|Supercomp|, \verb|IBM POE|, or \verb|SGI MPT|. - -On selecting an option, the script reports a successful configuration with the banner: -\begin{scriptsize} -\begin{verbatim} - ------------------------------------------------------------------------ - Configuration successful. To build the GSI, type: compile - ------------------------------------------------------------------------ -\end{verbatim} -\end{scriptsize} -Failure to get this banner means that the configuration step failed to complete. The most typical reason for a failure is an error in one of the environment variables paths. - -After selecting a build option, run the compile script: -\begin{small} -\begin{verbatim} - ./compile >& compile.log -\end{verbatim} -\end{small} -Capturing the build information to a log file by redirecting the output is necessary to diagnose build issues. - -To remove all built files in every directory, as well as the configure.gsi, type: -\begin{small} -\begin{verbatim} - ./clean -a -\end{verbatim} -\end{small} -A complete clean is necessary if the compilation failed or if the configuration file is changed. - -Following a successful compile, the GSI executable \verb|gsi.exe| can be found in the \verb|run/| directory. -If the executable is not found, check the compilation log file. If the build failed, search for the first instance of the word "Error" (with a capital "E") to locate the section of the log file with the failure. - -%------------------------------------------------------------------------------- -\section{Example of Build} \label{ch2_buildexample} -%------------------------------------------------------------------------------- - -To illustrate the build process, the following section describes the steps necessary to build GSI on the NCAR Yellowstone supercomputer using the Intel compiler, the PGI compiler, and the Gnu compiler. Other platforms will be similar. - -%------------------------------------------------------------------------------- -\subsection{Intel Build} -%------------------------------------------------------------------------------- - -Steps to build GSI on Yellowstone using the Intel compiler: -\begin{enumerate} -\item Select the Intel compiler environment by using the module commands: -\begin{verbatim} - module load intel - module load impi mkl ncarcompilers ncarbinlibs netcdf -\end{verbatim} -These module commands have specified the compiler, MPI, the version of the LAPACK library (MKL), and the NetCDF library. -\item For this case, two of the paths must be set. The path to the WRF directory must always be specified, and the Intel Mathematics Kernal Library (MKL) will be used in place of the LAPACK library. Note that on Yellowstone, the variable MKLROOT is set to the path to the MKL libraries by loading the MKL module. To set the paths in a C-shell environment, use: -\begin{verbatim} - setenv WRF_DIR /PATH TO WRF DIRECTORY/ - setenv LAPACK_PATH $MKLROOT -\end{verbatim} -\item To run the configure script, type \verb|./configure| inside the top of the GSI directory. If the first three steps were completed successfully, a table of compiler options should appear. Select the desired compiler combination option, which in this case is either 6 or 7. The alternative options (eight and nine) are needed for certain platforms that have a vendor supplied custom version of MPI. Try the default build options for MPI first, and only if it fails should the second option be used. -\item To compile the code, type the following: \verb|./compile >& compile.log|. If the build completes successfully, an executable named \verb|gsi.exe| will be created in the \verb|./run| directory. -\end{enumerate} - -%------------------------------------------------------------------------------- -\subsection{PGI Build} -%------------------------------------------------------------------------------- - -Steps to build GSI on Yellowstone using the PGI compiler: -\begin{enumerate} -\item The PGI compiler environment is selected using the module commands: -\begin{verbatim} -module load pgi -module load impi ncarcompilers ncarbinlibs netcdf -\end{verbatim} -These module commands have specified the compiler, MPI, and the NetCDF library. -\item For this case only the path to the WRF directory must be set. The PGI compiler comes with its own version of LAPACK that it finds automatically. It is not necessary to set the LAPACK path. In a C-shell environment, use: -\begin{verbatim} - setenv WRF_DIR /PATH TO WRF DIRECTORY/ -\end{verbatim} -\item Similar to the Intel example, pick compiler options listed in the table. In this case, the desired compiler combination option is either 3 or 4. -\item To compile the code, type the following: \verb|./compile >& compile.log|. If the build completes successfully, an executable named \verb|gsi.exe| will be created in the \verb|./run| directory. -\end{enumerate} - -%------------------------------------------------------------------------------- -\subsection{GNU Build} -%------------------------------------------------------------------------------- - -Steps to build GSI on Yellowstone using the GNU compiler: -\begin{enumerate} -\item The GNU compiler environment is selected using the module commands: -\begin{verbatim} -module load gnu/5.3.0 -module load ncarcompilers ncarbinlibs netcdf lapack/3.2.1 -\end{verbatim} -These module commands have specified the compiler, MPI, and the NetCDF library. -\item For this case, two of the paths must be set. The path to the WRF directory must always be specified, and we will use the LAPACK library installed by the module. In a C-shell environment use: -\begin{verbatim} - setenv WRF_DIR /PATH TO WRF DIRECTORY/ - setenv LAPACK_PATH $LIB_NCAR -\end{verbatim} -\item Similar to the Intel example, pick compiler options listed in the table. In this case, the desired compiler combination option is 5. -\item To compile the code, type the following: \verb|./compile >& compile.log|. If the build completes successfully, an executable named \verb|gsi.exe| will be created in the \verb|./run| directory. -\end{enumerate} - -%------------------------------------------------------------------------------- -\section{System Requirements and External Libraries} \label{ch2_externallibs} -%------------------------------------------------------------------------------- - -The source code for GSI is written in FORTRAN, FORTRAN 90, and C. In addition, the parallel executables require some flavor of MPI and OpenMP for the distributed memory parallelism. Lastly the I/O relies on the NetCDF I/O libraries. Beyond standard shell scripts, the build system relies on the Perl scripting language and makefiles. - -The basic requirements for building and running the GSI system are the following: -\begin{itemize} -\item FORTRAN 2003+ compiler -\item C compiler -\item MPI v1.2+ -\item OpenMP -\item Perl -\item NetCDF V4.2+ -\item LAPACK and BLAS mathematics libraries, or equivalent -\item WRF V3.6+ -\end{itemize} - -Because all but the last of these tools and libraries are typically the purview of system administrators to install and maintain, they are lumped together here as part of the basic system requirements. - -%------------------------------------------------------------------------------- -\subsection{Compilers Tested for Release} -%------------------------------------------------------------------------------- - -Version 3.6 of the DTC community GSI system has been successfully tested on a variety of Linux platforms with many versions of the Intel and PGI fortran compilers. - -Legacy build rules are also available for IBM AIX and Mac Darwin platforms. Because the DTC does not have the ability to test on these platforms, they are no longer supported. Also, the Linux GNU gfortran option is available in this version. - -The following Linux compiler combinations have been fully tested: -\begin{table}[htbp] -\centering -\begin{tabular}{| l | l | l |} -\hline - & Fortran compiler version & C compiler version \\ -\hline -\hline -Intel only & ifort 17.0.1, 16.0.3, 15.0.3, 14.0.2 & icc \\ -\hline -PGI only & pgf90 17.5, 16.5, 15.7 & pgcc \\ -\hline -GNU only & gfortran 5.4.0 with netcdf 4.4.0 & gcc 5.4.0 \\ -\hline -\end{tabular} -\label{ch2_tble3} -\end{table} - -Unforeseen build issues may occur when using older compiler and library versions. As always, the best results will be achieved by using the most recent compiler versions. - -%------------------------------------------------------------------------------- -\section{Getting Help and Reporting Problems} \label{ch2_gettinghelp} -%------------------------------------------------------------------------------- - -Should a user experience any difficulty building GSI on his/her system, please first confirm that -all the required software is properly installed (section \ref{ch2_compiling}). Next check that the -external libraries exist and specified paths in the configure file are correct. Lastly, -check the resource file \textit{configure.gsi} for errors in any of the paths or settings. Should -all these check out, feel free to contact the community GSI Help Desk for assistance at -\begin{center} -{gsi-help@ucar.edu} -\end{center} - -At a minimum, when reporting code building problems to the helpdesk, please include a copy of the build log and the \textit{configure.gsi} file with your e-mail. - -%------------------------------------------------------------------------------- -\section{CMake Build System} \label{ch2_cmake} -%------------------------------------------------------------------------------- - -A new unified build system based on CMake has been added to the GSI code. -CMake is a very powerful cross-platform open-source build system. In comGSI, the CMake build system exists in parallel -to the previous DTC build system, and either one can be used independently to build the code. -The CMake build system is still experimental, but is available as an alternative to the traditional DTC build system. - -\subsection{CMake build process with the DTC script} -The CMake build infrastructure consists of a top level directory with the name \verb|cmake/| and configuration files in each directory named ( \verb|CMakeLists.txt|). The syntax for CMake relies on a two step command line process, similar to "configure" and "compile." Command line arguments are used to specify paths and compilers. To simplify the process, the DTC provides a helper script that simplifies the choice of arguments that need to be used. - -The helper script is called \verb|dtcbuild| and is located in the directory \verb|dtc|. This script attempts to walk the user through the process of building GSI. By default CMake prefers to build the source code "out-of-place," meaning that it does not populate the GSI directory with the build. The script first creates a directory called \verb|build| inside the source code directory to house the build process. If there is already a directory called build, the script halts with a warning to either rename it or delete it. - -The script then checks that the path variable for the WRF build, either \verb|WRFPATH| or \verb|WRF_DIR|, has been set. -It then prompts the user to choose a compiler for the build. -\begin{verbatim} -Please select from among the following supported platforms. - - 1. Linux x86_64, PGI compilers (pgf90 & pgcc) - 2. Linux x86_64, PGI compilers (pgf90 & gcc) - 3. Linux x86_64, GNU compilers (gfortran & gcc) - 4. Linux x86_64, Intel/gnu compiler (ifort & gcc) - 5. Linux x86_64, Intel compiler (ifort & icc) - 6. Linux x86_64, Intel compiler w/intel mpi (mpiifort & icc) - 7. Linux x86_64, Intel compiler (mpif90 -f90=ifort & icc) - -Enter selection [1-7] : -\end{verbatim} -Once a compiler has been chosen, it generates local makefiles by invoking the cmake command with the proper arguments. One of those arguments selects that a local build of the NCEP libraries needed by GSI will be conducted prior to the source code being built. The final step of the script is to invoke a parallel build of the code. - -This points to two advantages in using CMake to build the code. CMake automatically generates code dependencies each time a build is invoked, allowing the use of a parallel make, greatly reducing the time it take to complete the build. Typically the time to complete the CMake build is a quarter of the time needed for the serial DTC "configure" and "compile" to complete. - -Once the build is complete, the two executables a \verb|gsi.x| and \verb|enkf_gfs.x| are placed in the directory \verb|build/bin|. Note that the name of the executables and their location differs from the traditional DTC build. - -Summary of CMake build steps: -\begin{enumerate} -\item Set up the build environment in the same way as with the DTC build -\begin{itemize} - \item Set up compilers/load modules - \item Set the environment path for NetCDF and LaPack/MKL - \item Set the environment path for WRF by setting either of the variables \verb|WRFPATH| or \verb|WRF_DIR| to point to a compiled copy of the WRF code. -\end{itemize} -\item Copy the helper script into the top level directory (\verb|cp ./dtc/dtcbuild .|) -\item Run the helper script (\verb|./dtcbuild|) -\item Select the compiler combination for your build. For instance, number six for Intel on Theia. -\item When the build is complets, the executables \verb|gsi.x| and \verb|enkf_gfs.x| will be located in the directory \verb|build/bin| -\end{enumerate} - - -\subsection{Build notes and additional requirements} -Requirements: -\begin{itemize} -\item The CMake build requires use of version 2.8+ of cmake -\item GSI will not build with the Intel compiler V15.0 due to an incompatibility with the CRTM library. -\end{itemize} - -Build notes: -\begin{itemize} -\item Building on the UCAR Yellowstone supercomputer requires additional flags due to how the C compiler has been installed there. The platform specific script \verb|dtcbuild_yellowstone| accounts for this need. -\item The build is not conducted within the \verb|src/| directory, as is the case with the traditional DTC build, but instead is located in \verb|build/src/CMakeFiles|. -\item On the NCEP Theia supercomputer, GSI builds best with option six, due to the way MPI is set up on that machine. -\end{itemize} - -\subsection{How the helper script works} -This sections will go through the DTC helper script, each section at a time to illustrate how the CMake build works. - -One of the first things the script does is create the build directory; However, prior to this, it checks if a directory by that name already exists. If it does, the script halts with a warning. -\begin{small} -\begin{verbatim} - # create build directory -if test -d ./build ; then - echo "directory build already exists, delete or rename the directory and dry again" - exit -else - mkdir ./build -fi -\end{verbatim} -\end{small} - -Next, the environment variables indicating the top of the source tree and the location of the NCEP library source code are set. -\begin{small} -\begin{verbatim} -# set CORE_DIR to top of source tree. -CORE_DIR=`pwd` -echo "$CORE_DIR" -export CORE_DIR -export CORELIB=$CORE_DIR/libsrc -echo "$CORELIB" -\end{verbatim} -\end{small} - -Next the path to the WRF build is set. For the traditional DTC build, the variable \verb|WRF_DIR| is used. The current CMake build uses a different variable \verb|WRFPATH| to do the same thing. So as a work around, the script accepts the path information from either variable. -\begin{small} -\begin{verbatim} -# set path to WRF and test that it exists -if test -z "$WRFPATH" ; then - if test -z $WRF_DIR; then - echo '** WARNING: No path to WRF_DIR and environment variable WRF_DIR not set.' - exit - else - export WRFPATH=$WRF_DIR - fi -fi -\end{verbatim} -\end{small} - -The next section queries the user to select a compiler combination for the build. Many of the CMake build variables, such as compiler information, can be either set as environment variables or included in the command line argument. Here we set them as environment variables, and cmake is invoked. The following shows the variable settings for the combination of the PGI FORTRAN compiler and the Gnu C compiler. -\begin{small} -\begin{verbatim} - if [ "$resp" = "2" ] ; then - echo ' 2. Linux x86_64, PGI compilers (pgf90 & gcc) ' - export CC=gcc - export CXX=g++ - export FC=pgf90 - cd build - cmake -DBUILD_CORELIBS=ON $CORE_DIR - make -j 8 - fi -\end{verbatim} -\end{small} -These are standard guesses as to what the C, C++, and MPI call for the FORTRAN compiler are called on your system. They may be wrong. In that case the environment variables \verb|CC|, \verb|CXX|, and \verb|FC| may need to be modified. - -The final part of the script is the invocation of cmake. -\begin{small} -\begin{verbatim} - cmake -DBUILD_CORELIBS=ON $CORE_DIR - make -j 8 -\end{verbatim} -\end{small} -There are two arguments used here. The first is \verb|-DBUILD_CORELIBS=ON|. This argument directs CMake to look in the \verb| core-libs/| directory for rules to build the NCEP libraries needed for GSI. The environment variable \verb| CORELIB|, defined at the top of the script, indicates where to look for the library source code. In this case, it is in \verb|$CORE_DIR/libsrc/|. Any changes to the source code would be placed in \verb|$CORE_DIR/libsrc/|, and any changes to the CMake build rules would go in \verb|core-libs/|. The second argument \verb|$CORE_DIR| indicates the location of the build directory. The final statement \verb|make -j 8| invokes a parallel call to \textit{make} using eight processors, which speeds up the build considerably. For more details on the CMake build for GSI, see the readme file \textit{README.cmake} in the top directory. diff --git a/doc/GSI_user_guide/gsi_ch3.tex b/doc/GSI_user_guide/gsi_ch3.tex deleted file mode 100644 index c8a03f965..000000000 --- a/doc/GSI_user_guide/gsi_ch3.tex +++ /dev/null @@ -1,1578 +0,0 @@ -\chapter{Running GSI}\label{gsi_run} -\setlength{\parskip}{12pt} - -This chapter discusses the issues of running GSI. It starts with introductions to the input data required to run GSI, then proceeds with a detailed explanation of an example GSI run script and introductions to files produced by a successful GSI run. It concludes with some frequently used options from the GSI namelist. - -%------------------------------------------------------------------------------- -\section{Input Data Required to Run GSI} -\label{sec3.1} -%------------------------------------------------------------------------------- - -In most cases, three types of input data (background, observations, and fixed files) must be available before running GSI. In some special idealized cases, such as a pseudo single observation test, GSI can be run without any observations. If running GSI with the 3D EnVar hybrid option, global or regional ensemble forecasts are also needed. - -%------------------------------------------------------------------------------- -\subsection{Background or First Guess Field} -%------------------------------------------------------------------------------- - -As with other data analysis systems, the background or first guess fields may come from a model forecast conducted separately or from a previous data assimilation cycle. The following is a list of the types of background files that can be used by this release version of GSI: - -\begin{small} -\begin{description} -\item[ ] a) WRF-NMM input fields in binary format -\item[ ] b) WRF-NMM input fields in NetCDF format -\item[ ] c) WRF-ARW input fields in binary format -\item[ ] d) WRF-ARW input fields in NetCDF format -\item[ ] e) GFS input fields in binary format or through NEMS I/O -\item[ ] f) NEMS-NMMB input fields -\item[ ] g) RTMA input files (2-dimensional binary format) -\item[ ] h) WRF-Chem GOCART input fields with NetCDF format -\item[ ] i) CMAQ binary file -\end{description} -\end{small} - -The Weather Research and Forecasting (WRF) community modeling system includes two dynamical cores: the Advanced Research WRF (ARW) and the Nonhydrostatic Mesoscale Model (NMM). The GFS (Global Forecast System), NEMS (National Environmental Modeling System)-NMMB (Nonhydrostatic Mesoscale Model B-Grid), and RTMA (Real-Time Mesoscale Analysis) are operational systems at the National Center for Environmental Prediction (NCEP). The DTC mainly supports GSI for regional WRF applications. Therefore, most of the multiple platform tests were conducted using WRF netcdf background files (d). The DTC also supports the GSI in global and chemical applications with limited resources. The following backgrounds have been tested for this release: - -\begin{small} -\begin{enumerate} -\item ARW NetCDF (d) were tested with multiple cases -\item GFS (e) was tested with multiple NCEP cases -\item WRF-Chem NetCDF (h) was tested with a single case -\item NEMS-NMMB(f) was tested with a single case -\end{enumerate} -\end{small} - - -%------------------------------------------------------------------------------- -\subsection{Observations} -%------------------------------------------------------------------------------- - -GSI can analyze many types of observational data, including conventional data, satellite radiance observations, GPS Radio Occultations, and radar data, among others. The default observation file names are given in the released GSI namelist, with corresponding observations included in each file. Sample BUFR files available for download from the NCEP website listed in table \ref{t31}. - -The observations are complex and many observations need format converting and quality control before being used by GSI. GSI ingests observations saved in BUFR format (with NCEP specified features). The NCEP processed PrepBUFR and BUFR files can be used directly. If users need to introduce their own data into GSI, please check the following website for the User\textquotesingle s Guide and examples of BUFR/PreBUFR processing: - -\begin{center} -\url{http://www.dtcenter.org/com-GSI/BUFR/index.php} -\end{center} - -DTC supports BUFR/PrepBUFR data processing and quality control as part of the GSI community tasks. - -GSI can analyze all of the data types in table \ref{t31}, but each GSI run (for both operation and case study purposes) only uses a subset of the data. Some data may be outdated and not available, some are in monitoring mode, and some may have quality issues during certain periods. Users are encouraged to check data quality prior to running an analysis. The following NCEP links provide resources that include data quality history: - -\begin{center} -\begin{scriptsize} -\url{http://www.emc.ncep.noaa.gov/mmb/data_processing/Satellite_Historical_Documentation.htm} -\\ -\url{http://www.emc.ncep.noaa.gov/mmb/data_processing/Non-satellite_Historical_Documentation.htm} -\end{scriptsize} -\end{center} - -Because the current regional models do not have ozone as a prognostic variable, ozone data are not assimilated on the regional scale. - -GSI can be run without any observations to see how the moisture constraint modifies the first guess (background) field. GSI can also be run in a pseudo single observation mode, which does not require any BUFR observation files. In this mode, users should specify observation information in the namelist section SINGLEOB\_TEST (see Section \ref{sec4.2} for details). As more data files are used, additional information will be added through the GSI analysis. - -\begin{table}[htbp] -\centering -\begin{footnotesize} -\caption{GSI observation file names, content, and examples} -\begin{tabular}{|l|p{7cm}|c|} -\hline -\hline -GSI Name & Content & Example file names \\ -\hline -\hline -prepbufr & Conventional observations, including ps, t, q, pw, uv, spd, dw, sst & gdas1.t12z.prepbufr.nr \\ -\hline -satwndbufr & satellite winds observations & gdas1.t12z.satwnd.tm00.bufr\_d \\ -\hline -amsuabufr & AMSU-A 1b radiance (brightness temperatures) from satellites - NOAA-15, 16, 17,18, 19 and METOP-A/B & gdas1.t12z.1bamua.tm00.bufr\_d \\ -\hline -amsubbufr & AMSU-B 1b radiance (brightness temperatures) from satellites NOAA-15, 16,17 & gdas1.t12z.1bamub.tm00.bufr\_d \\ -\hline -radarbufr & Radar radial velocity Level 2.5 data & ndas.t12z.radwnd.tm12.bufr\_d \\ -\hline -gpsrobufr & GPS radio occultation and bending angle observation & gdas1.t12z.gpsro.tm00.bufr\_d \\ -\hline -ssmirrbufr & Precipitation rate observations from SSM/I & gdas1.t12z.spssmi.tm00.bufr\_d \\ -\hline -tmirrbufr & Precipitation rate observations from TMI & gdas1.t12z.sptrmm.tm00.bufr\_d \\ -\hline -sbuvbufr & SBUV/2 ozone observations from satellite NOAA-16, 17, 18, 19 & gdas1.t12z.osbuv8.tm00.bufr\_d \\ -\hline -hirs2bufr & HIRS2 1b radiance from satellite NOAA-14 & gdas1.t12z.1bhrs2.tm00.bufr\_d \\ -\hline -hirs3bufr & HIRS3 1b radiance observations from satellite NOAA-16, 17 & gdas1.t12z.1bhrs3.tm00.bufr\_d \\ -\hline -hirs4bufr & HIRS4 1b radiance observation from satellite NOAA-18, 19 and METOP-A/B & gdas1.t12z.1bhrs4.tm00.bufr\_d \\ -\hline -msubufr & MSU observation from satellite NOAA 14 & gdas1.t12z.1bmsu.tm00.bufr\_d \\ -\hline -airsbufr & AMSU-A and AIRS radiances from satellite AQUA & gdas1.t12z.airsev.tm00.bufr\_d \\ -\hline -mhsbufr & Microwave Humidity Sounder observation from NOAA-18, 19 and METOP-A/B & gdas1.t12z.1bmhs.tm00.bufr\_d \\ -\hline -ssmitbufr & SSMI observation from satellite f13, f14, f15 & gdas1.t12z.ssmit.tm00.bufr\_d \\ -\hline -amsrebufr & AMSR-E radiance from satellite AQUA & gdas1.t12z.amsre.tm00.bufr\_d \\ -\hline -ssmisbufr & SSMIS radiances from satellite f16 & gdas1.t12z.ssmis.tm00.bufr\_d \\ -\hline -gsnd1bufr & GOES sounder radiance (sndrd1, sndrd2, sndrd3 sndrd4) from GOES-11, 12, 13, 14, 15. & gdas1.t12z.goesfv.tm00.bufr\_d \\ -\hline -l2rwbufr & NEXRAD Level 2 radial velocity & ndas.t12z.nexrad.tm12.bufr\_d \\ -\hline -gsndrbufr & GOES sounder radiance from GOES-11, 12 & gdas1.t12z.goesnd.tm00.bufr\_d \\ -\hline -gimgrbufr & GOES imager radiance from GOE-11, 12 & \\ -\hline -omibufr & Ozone Monitoring Instrument (OMI) observation NASA Aura & gdas1.t12z.omi.tm00.bufr\_d \\ -\hline -iasibufr & Infrared Atmospheric Sounding Interfero-meter sounder observations from METOP-A/B & gdas1.t12z.mtiasi.tm00.bufr\_d \\ -\hline -gomebufr & The Global Ozone Monitoring Experiment (GOME) ozone observation from METOP-A/B & gdas1.t12z.gome.tm00.bufr\_d \\ -\hline -mlsbufr & Aura MLS stratospheric ozone data from Aura & gdas1.t12z.mlsbufr.tm00.bufr\_d \\ -\hline -tcvitl & Synthetic Tropic Cyclone-MSLP observation & gdas1.t12z.syndata.tcvitals.tm00 \\ -\hline -seviribufr & SEVIRI radiance from MET-08,09,10 & gdas1.t12z. sevcsr.tm00.bufr\_d \\ -\hline -atmsbufr & ATMS radiance from Suomi NPP & gdas1.t12z.atms.tm00.bufr\_d \\ -\hline -crisbufr & CRIS radiance from Suomi NPP & gdas1.t12z.cris.tm00.bufr\_d \\ -\hline -modisbufr & MODIS aerosol total column AOD observations from AQUA and TERRA & \\ -\hline -\end{tabular} -\label{t31} -\end{footnotesize} -\end{table} - -%------------------------------------------------------------------------------- -\subsection{Fixed Files (Statistics and Control Files)} -%------------------------------------------------------------------------------- - -A GSI analysis also needs to read specific information from statistic files, configuration files, bias correction files, and CRTM coefficient files. We refer to these files as fixed files and they are located in a directory called \verb|fix/| in the release package, except for CRTM coefficients. - -Table \ref{t32} lists fixed files required for a GSI run, the content of the files, and corresponding example files from the regional and global applications: - -Because most of those fixed files have hardwired names inside the GSI, a GSI run script needs to copy or link those files (right column in table \ref{t32}) from the \verb|./fix| directory to the GSI run directory with the file name required in GSI (left column in table \ref{t32}). For example, if GSI runs with an ARW background, the following line should be in the run script: - -\begin{small} -\begin{verbatim} -cp ${path of the fix directory}/anavinfo_arw_netcdf anavinfo -\end{verbatim} -\end{small} - -Note that in this release, there is a strict rule that the numbers of vertical levels in the file \verb|anavinfo| must match the background file (for example, \verb|wrfinput_d01|) for the 3-dimensional variables. Otherwise GSI will fail. To identify the correct numbers of vertical levels, users can dump out (use \verb|ncdump -h|) the dimensions from the NetCDF background file and find the number for \verb|bottom_top| and \verb|bottom_top_stag|. For example, if the dimensions for the background file is: - -\begin{small} -\begin{verbatim} - bottom_top = 50 ; - bottom_top_stag = 51 ; -\end{verbatim} -\end{small} - -Then the corresponding \verb|anavinfo| file should have 51 levels for \verb|prse| (3-dimemsional pressure field) and 50 levels for other three-dimensional variables such as u, v, tv, q, oz, cw, etc. For details, users can dump out the global attributes of the background file and find the number of vertical levels for each variable. The following shows part of the \verb|anavinfo| file for the above background: - -\newpage - -\begin{small} -\begin{verbatim} -state_derivatives:: -!var level src - ps 1 met_guess - u 50 met_guess - v 50 met_guess - tv 50 met_guess - q 50 met_guess - oz 50 met_guess - cw 50 met_guess - prse 51 met_guess -:: -\end{verbatim} -\end{small} - - -\begin{table}[h!] -\centering -\begin{footnotesize} -\caption{GSI fixed files, content, and examples} -\begin{tabular}{|p{2.5cm}|p{5cm}|p{7cm}|} -\hline -\hline -GSI Name & Content & Example file names \\ -\hline -\hline -anavinfo & Information file to set control and analysis variables & -anavinfo\_arw\_netcdf \newline -anavinfo\_ndas\_netcdf -global\_anavinfo.l64.txt \\ -\hline -berror\_stats & background error covariance & nam\_nmmstat\_na.gcv -nam\_glb\_berror.f77.gcv -global\_berror.l64y386.f77 \\ -\hline -errtable & Observation error table & nam\_errtable.r3dv \newline -prepobs\_errtable.global \\ -\hline -\multicolumn{3}{|c|}{\textit{Observation data control file (more detailed explanation in Section} \ref{sec4.3})} \\ -\hline -convinfo & Conventional observation information file & global\_convinfo.txt -nam\_regional\_convinfo.txt \\ -\hline -satinfo & satellite channel information file & global\_satinfo.txt \\ -\hline -pcpinfo & precipitation rate observation information file & global\_pcpinfo.txt \\ -\hline -ozinfo & ozone observation information file & global\_ozinfo.txt \\ -\hline -\multicolumn{3}{|c|}{\textit{Bias correction and Rejection list}} \\ -\hline -satbias\_angle & satellite scan angle dependent bias correction file & global\_satangbias.txt \\ -\hline -\multirow{3}{2cm}{satbias\_in} & satellite mass bias correction coefficient file & sample.satbias \\ \cline{2-3} -& combined satellite angle dependent and mass bias correction coefficient file & gdas1.t00z.abias.new \\ -\hline -t\_rejectlist, w\_rejectlist,.. & Rejetion list for T, wind, et al. in RTMA & new\_rtma\_t\_rejectlist -new\_rtma\_w\_rejectlist \\ -\hline -\end{tabular} -\label{t32} -\end{footnotesize} -\end{table} - -Each operational system, such as GFS, NAM, RAP, and RTMA, has their own set of fixed files. For your specific GSI runs, you need to get the correct set of fixed files. Fixed files for regional applications are included in this GSI/EnKF release and put under the \textit{fix/} directory. Fixed files for global applications are not included in this release in order to save space. Please download \verb|comGSIv3.6_EnKFv1.2_fix_global.tar.gz| if you need to run global cases. Note that little endian background error covariance files are no longer supported. - -Each release version of the GSI calls a certain version of the CRTM library and needs corresponding CRTM coefficients to do radiance data assimilation. This version of GSI uses CRTM 2.2.3. The coefficient files are listed in table \ref{t34}. - - -\begin{table}[htbp] -\centering -\begin{small} -\caption{List of radiance coefficients used by CRTM} -\begin{tabular}{|p{5.5cm}|p{3.5cm}|p{5.5cm}|} -\hline -\hline -File name used in GSI & Content & Example files \\ -\hline -\hline -Nalli.IRwater.EmisCoeff.bin -NPOESS.IRice.EmisCoeff.bin -NPOESS.IRsnow.EmisCoeff.bin -NPOESS.IRland.EmisCoeff.bin -NPOESS.VISice.EmisCoeff.bin -NPOESS.VISland.EmisCoeff.bin -NPOESS.VISsnow.EmisCoeff.bin -NPOESS.VISwater.EmisCoeff.bin -FASTEM6.MWwater.EmisCoeff.bin & -IR surface emissivity coefficients & -Nalli.IRwater.EmisCoeff.bin -NPOESS.IRice.EmisCoeff.bin -NPOESS.IRsnow.EmisCoeff.bin -NPOESS.IRland.EmisCoeff.bin -NPOESS.VISice.EmisCoeff.bin -NPOESS.VISland.EmisCoeff.bin -NPOESS.VISsnow.EmisCoeff.bin -NPOESS.VISwater.EmisCoeff.bin -FASTEM6.MWwater.EmisCoeff.bin \\ -\hline -AerosolCoeff.bin & Aerosol coefficients & AerosolCoeff.bin \\ -\hline -CloudCoeff.bin & Cloud scattering and emission coefficients & CloudCoeff.bin \\ -\hline -\$\{satsen\}.SpcCoeff.bin & Sensor spectral response characteristics & \$\{satsen\}.SpcCoeff.bin \\ -\hline -\$\{satsen\}.TauCoeff.bin & Transmittance coefficients & \$\{satsen\}.TauCoeff.bin \\ -\hline -\end{tabular} -\label{t34} -\end{small} -\end{table} - -%------------------------------------------------------------------------------- -\section{GSI Run Script} -%------------------------------------------------------------------------------- - -In this release version, three sample run scripts are available for different GSI applications: - -\begin{itemize} -\item \verb|dtc/run/run_gsi_regional.ksh| for regional GSI -\item \verb|dtc/run/run_gsi_global.ksh| for global GSI (GFS) -\item \verb|dtc/run/run_gsi_chem.ksh| for chemical analysis -\end{itemize} - -These scripts will be called to generate GSI namelists: -\begin{itemize} -\item \verb|dtc/run/comgsi_namelist.sh| for regional GSI -\item \verb|dtc/run/comgsi_namelist_gfs.sh| for global GSI (GFS) -\item \verb|dtc/run/comgsi_namelist_chem.sh| for GSI chemical analysis -\end{itemize} - -We will introduce the regional run scripts (\verb|run_gsi_regional.ksh|) in detail in the following sections and introduce the global run script when we discuss the GSI global application in the Advanced GSI User\textquotesingle s Guide. - -Note there is also a run script for regional EnKF (\verb|run_enkf_wrf.ksh|), a run script for global EnKF (\verb|run_enkf_global.ksh|) and the EnKF namelist script (\verb|enkf_wrf_namelist.sh|) in the same directory, which will be introduced in the EnKF User\textquotesingle s Guide. - -%------------------------------------------------------------------------------- -\subsection{Steps in the GSI Run Script} -%------------------------------------------------------------------------------- - -The GSI run script creates a run time environment necessary to run the GSI executable. A typical GSI run script includes the following steps: - -\begin{enumerate} -\item Request computer resources to run GSI. -\item Set environmental variables for the machine architecture. -\item Set experimental variables (such as experiment name, analysis time, background, and observation). -\item Set the script that generates the GSI namelist. -\item Check the definitions of required variables. -\item Generate a run directory for GSI (sometimes called a working or temporary directory). -\item Copy the GSI executable to the run directory. -\item Copy the background file to the run directory and create an index file listing the location and name of ensemble members if running with a hybrid set up. -\item Link observations to the run directory. -\item Link fixed files (statistic, control, and coefficient files) to the run directory. -\item Generate namelist for GSI. -\item Run the GSI executable. -\item Post-process: save analysis results, generate diagnostic files, and clean the run directory. -\item Run GSI as observation operator for EnKF, only for \verb|if_observer=Yes|. -\end{enumerate} - -Typically, users only need to modify specific parts of the run script (steps 1, 2, and 3) to fit their specific computer environment and point to the correct input/output files and directories. Users may also need to modify step 4 if changes are made to the namelist and it is under a different name or at a different location. The next section (\ref{sec3.2.2}) covers each of these modifications for steps 1 to 3. Section \ref{sec3.2.3} will dissect a sample regional GSI run script and introduce each piece of this sample GSI run script. Users should start with the run script provided in the same release package with the GSI executable and modify it for their own run environment and case configuration. - - -%------------------------------------------------------------------------------- -\subsection{Customization of the GSI Run Script} -\label{sec3.2.2} -%------------------------------------------------------------------------------- - -\text {3.2.2.1 Setting Up the Machine Environment} - -This section focuses on step 1 of the run script: modifying the machine specific entries. Specifically, this consists of setting Unix/Linux environment variables and selecting the correct parallel run time environment (batch system with options). - -GSI can be run with the same parallel environments as other MPI programs, for example: - -\begin{itemize} -\item IBM supercomputer using LSF (Load Sharing Facility) -\item IBM supercomputer using LoadLevel -\item Linux clusters using PBS (Portable Batch System) -\item Linux clusters using LSF -\item Linux workstation (no batch system) -\item Intel Mac Darwin workstation with PGI complier (no batch system) -\end{itemize} - -Two queuing systems are listed below as examples: - -\begin{table}[htbp]\centering -\begin{tabular}{|p{2.6cm}|p{4.5cm}|p{4.5cm}|p{2.5cm}|} -\hline -\hline -Machine \& queue system & Linux Cluster with LSF & Linux Cluster with PBS & Workstation \\ -\hline -\hline -example -& -\begin{footnotesize} -\begin{verbatim} -#BSUB -P ???????? -#BSUB -W 00:10 -#BSUB -n 4 -#BSUB -R "span[ptile=16] -#BSUB -J gsi -#BSUB -o gsi.%J.out -#BSUB -e gsi.%J.err -#BSUB -q small -\end{verbatim} -\end{footnotesize} -& -\begin{footnotesize} -\begin{verbatim} -#PBS -l procs=4 -#PBS -n -#PBS -o gsi.out -#PBS -e gsi.err -#PBS -N GSI -#PBS -l walltime=00:20 -#PBS -A ?????? -\end{verbatim} -\end{footnotesize} -& -No batch system, -skip this step -\\ -\hline -\end{tabular} -\label{t35} -\end{table} - -In both of the examples above, environment variables are set specifying system resource management, such as the number of processors, the name/type of queue, maximum wall clock time allocated for the job, options for standard out and standard error, etc. Some platforms need additional definitions to specify Unix environment variables that further define the run environment. - -These variable settings can significantly impact the GSI run efficiency and accuracy of the GSI results. Please check with your system administrator for optimal settings for your computer system. Note that while the GSI can be run with any number of processors, it will not scale well with the increase of processor numbers after a certain threshold based on the case configuration and GSI application types. - -\text{3.2.2.2 Setting up the Running Environment} - -There are only two options to define in this block. - -\begin{footnotesize} -\begin{verbatim} -# GSIPROC = processor number used for GSI analysis -#------------------------------------------------ - GSIPROC=4 - ARCH='LINUX_LSF' -# Supported configurations: - # IBM_LSF, - # LINUX, LINUX_LSF, LINUX_PBS, - # DARWIN_PGI -\end{verbatim} -\end{footnotesize} - -The option \verb|ARCH| selects the machine architecture. It is a function of platform type and batch queuing system. The option \verb|GSIPROC| sets the number of cores used in the run. This option also decides if the job is run as a multiple core job or as a single core run. Several choices of the option \verb|ARCH| are listed in the sample run script. Please check with your system administrator about running parallel MPI jobs on your system. - -\begin{table}[htbp] -\centering -\begin{footnotesize} -\begin{tabular}{|p{3cm}|p{4cm}|p{3cm}|p{4cm}|} -\hline -\hline -Option ARCH & Platform & Compiler & batch queuing system \\ -\hline -\hline -IBM\_LSF & IBM AIX & xlf, xlc & LSF \\ -\hline -LINUX & Linux workstation & Intel/PGI/GNU & mpirun if \verb|GSIPROC| > 1 \\ -\hline -LINUX\_LSF & Linux cluster & Intel/PGI/GNU & LSF \\ -\hline -LINUX\_PBS & Linux cluster & Intel/PGI/GNU & PBS \\ -\hline -DARWIN\_PGI & MAC DARWIN & PGI & mpirun if \verb|GSIPROC| > 1 \\ -\hline -\end{tabular} -\label{t36} -\end{footnotesize} -\end{table} - -\text{3.2.2.3 Setting Up an Analysis Case} - -This section discusses setting up variables specific to a given case, such as analysis time, working directory, background and observation files, location of fixed files and CRTM coefficients, the GSI executable file, and the script generating GSI namelist. - -\begin{footnotesize} -\begin{verbatim} -##################################################### -# case set up (users should change this part) -##################################################### -# -# ANAL_TIME= analysis time (YYYYMMDDHH) -# WORK_ROOT= working directory, where GSI runs -# PREPBURF = path of PreBUFR conventional obs -# BK_FILE = path and name of background file -# OBS_ROOT = path of observations files -# FIX_ROOT = path of fix files -# GSI_EXE = path and name of the gsi executable - ANAL_TIME=2017051312 - HH=`echo $ANAL_TIME | cut -c9-10` - WORK_ROOT=testarw - OBS_ROOT=data/${ANAL_TIME}/obs - PREPBUFR=${OBS_ROOT}/nam.t${HH}z.prepbufr.tm00.nr - BK_ROOT=data/${ANAL_TIME}/arw - BK_FILE=${BK_ROOT}/wrfinput_d01.${ANAL_TIME} - CRTM_ROOT=fix/CRTM_2.2.3 - GSI_ROOT=comGSI - FIX_ROOT=${GSI_ROOT}/fix - GSI_EXE=${GSI_ROOT}/dtc/run/gsi.exe - GSI_NAMELIST=${GSI_ROOT}/dtc/run/comgsi_namelist.sh -\end{verbatim} -\end{footnotesize} - -When picking the observation BUFR files, please be aware of the following: - -\begin{itemize} -\item GSI run will stop if the time in the background file does not match the cycle time in the observation BUFR file used for the GSI run (there is a namelist option to turn this verification step off). -\item Even if their contents are identical, PrepBUFR/BUFR files will differ if they were created on platforms with different endian byte order specification (Linux vs. IBM). Appendix A.1 discusses the conversion tool SSRC used to byte-swap observation files. Since release version 3.2, GSI compiled with PGI and Intel can automatically handle byte order issues in PrepBUFR and BUFR files. Users can directly link BUFR files of any order if working with Intel and PGI platform. -\end{itemize} - -The next part of this block focuses on additional options that specify important aspects of the GSI configuration. - -\begin{footnotesize} -\begin{verbatim} -# bk_core= which WRF core is used as background (NMM or ARW or NMMB) -# bkcv_option= which background error covariance and parameter will be used -# (GLOBAL or NAM) -# if_clean = clean : delete temperal files in working directory (default) -# no : leave running directory as is (this is for debug only) -# if_observer = Yes : only used as observation operater for enkf -# if_hybrid = Yes : Run GSI as 3D/4D EnVar -# if_4DEnVar = Yes : Run GSI as 4D EnVar - if_hybrid=No # Yes, or, No -- case sensitive ! - if_4DEnVar=No # Yes, or, No -- case sensitive (if_hybrid must be Yes)! - if_observer=No # Yes, or, No -- case sensitive ! - - bk_core=ARW - bkcv_option=NAM - if_clean=clean -# -# setup for GSI 3D/4D EnVar hybrid - if [ ${if_hybrid} = Yes ] ; then - ENS_ROOT=data/dacase/2017051312 - ENSEMBLE_FILE_mem=${ENS_ROOT}/gfsens/sfg_2017051306_fhr06s - - if [ ${if_4DEnVar} = Yes ] ; then - BK_FILE_P1=${BK_ROOT}/wrfout_d01_2017-05-13_19:00:00 - BK_FILE_M1=${BK_ROOT}/wrfout_d01_2017-05-13_17:00:00 - - ENSEMBLE_FILE_mem_p1=${ENS_ROOT}/sfg_2017051312_fhr09s - ENSEMBLE_FILE_mem_m1=${ENS_ROOT}/sfg_2017051312_fhr03s - fi - fi - -# no_member number of ensemble members -# BK_FILE_mem path and base for ensemble members - no_member=20 - BK_FILE_mem=${BK_ROOT}/wrfarw.mem -\end{verbatim} -\end{footnotesize} - -Option if\_hybrid controls whether to run a hybrid ensemble/variational data analysis. If if\_hybrid=Yes, option if\_4DEnVar=Yes indicates a hybrid 4D-EnVar analysis will be run, while if\_4DEnVar=No indicates a hybrid 3DEnVAR analysis will be run. Option if\_observer determines whether GSI is run as an observation operator for EnKF. - -Option bk\_core indicates the specific dynamic core used to create the background files and specifies the core in the namelist. Option bk\_core can be ARW or NMMB. Option bkcv\_option specifies the background error covariance to be used in the case. Two regional background error covariance matrices are provided with the release, one from NCEP global data assimilation (GDAS), and one from the NAM data assimilation system (NDAS). Please check Section \ref{sec4.8} for more details about GSI background error covariance. Option if\_clean tells the script if it needs to delete temporary intermediate files in the working directory after a GSI run is completed. - -In most cases, users should only make minor changes after the following: - -\begin{footnotesize} -\begin{verbatim} -##################################################### -# Users should NOT change script after this point -##################################################### -# -BYTE_ORDER=Big_Endian -# BYTE_ORDER=Little_Endian -\end{verbatim} -\end{footnotesize} - - -%------------------------------------------------------------------------------- -\subsection{Description of the Sample Regional Run Script to Run GSI} -\label{sec3.2.3} -%------------------------------------------------------------------------------- - -Listed below is an annotated regional run script with explanations on each function block. - -For further details on the first three blocks of the script that users need to change, see sections 3.2.2.1, 3.2.2.2, and 3.2.2.3: - -\begin{footnotesize} -\begin{verbatim} -#!/bin/ksh -##################################################### -# machine set up (users should change this part) -##################################################### - -set -x -# -# GSIPROC = processor number used for GSI analysis -#------------------------------------------------ - GSIPROC=4 - ARCH='LINUX_LSF' - -# Supported configurations: - # IBM_LSF, - # LINUX, LINUX_LSF, LINUX_PBS, - # DARWIN_PGI -# -##################################################### -# case set up (users should change this part) -##################################################### -# -# ANAL_TIME= analysis time (YYYYMMDDHH) -# WORK_ROOT= working directory, where GSI runs -# PREPBURF = path of PreBUFR conventional obs -# BK_FILE = path and name of background file -# OBS_ROOT = path of observations files -# FIX_ROOT = path of fix files -# GSI_EXE = path and name of the gsi executable - ANAL_TIME=2017051312 - HH=`echo $ANAL_TIME | cut -c9-10` - WORK_ROOT=testarw - OBS_ROOT=data/${ANAL_TIME}/obs - PREPBUFR=${OBS_ROOT}/nam.t${HH}z.prepbufr.tm00.nr - BK_ROOT=data/${ANAL_TIME}/arw - BK_FILE=${BK_ROOT}/wrfinput_d01.${ANAL_TIME} - CRTM_ROOT=fix/CRTM_2.2.3 - GSI_ROOT=comGSI - FIX_ROOT=${GSI_ROOT}/fix - GSI_EXE=${GSI_ROOT}/dtc/run/gsi.exe - GSI_NAMELIST=${GSI_ROOT}/dtc/run/comgsi_namelist.sh - -#------------------------------------------------ -# bk_core= which WRF core is used as background (NMM or ARW or NMMB) -# bkcv_option= which background error covariance and parameter will be used -# (GLOBAL or NAM) -# if_clean = clean : delete temperal files in working directory (default) -# no : leave running directory as is (this is for debug only) -# if_observer = Yes : only used as observation operater for enkf -# if_hybrid = Yes : Run GSI as 3D/4D EnVar -# if_4DEnVar = Yes : Run GSI as 4D EnVar - if_hybrid=No # Yes, or, No -- case sensitive ! - if_4DEnVar=No # Yes, or, No -- case sensitive (if_hybrid must be Yes)! - if_observer=No # Yes, or, No -- case sensitive ! - - bk_core=ARW - bkcv_option=NAM - if_clean=clean -# -# setup for GSI 3D/4D EnVar hybrid - if [ ${if_hybrid} = Yes ] ; then - ENS_ROOT=data/dacase/2017051312 - ENSEMBLE_FILE_mem=${ENS_ROOT}/gfsens/sfg_2017051306_fhr06s - - if [ ${if_4DEnVar} = Yes ] ; then - BK_FILE_P1=${BK_ROOT}/wrfout_d01_2017-05-13_19:00:00 - BK_FILE_M1=${BK_ROOT}/wrfout_d01_2017-05-13_17:00:00 - - ENSEMBLE_FILE_mem_p1=${ENS_ROOT}/sfg_2017051312_fhr09s - ENSEMBLE_FILE_mem_m1=${ENS_ROOT}/sfg_2017051312_fhr03s - fi - fi - -# no_member number of ensemble members -# BK_FILE_mem path and base for ensemble members - no_member=20 - BK_FILE_mem=${BK_ROOT}/wrfarw.mem -\end{verbatim} -\end{footnotesize} - -At this point, users should be able to run the GSI for simple cases without changing the scripts. However, some advanced users may need to change some of the following blocks for special applications, such as use of radiance data, cycled runs, specifying certain namelist variables, or running GSI on a platform not tested by the DTC. - -\begin{footnotesize} -\begin{verbatim} -##################################################### -# Users should NOT change script after this point -##################################################### -\end{verbatim} -\end{footnotesize} - -The next block sets the run command for GSI on multiple platforms. The ARCH variable is set at the beginning of the script. Option BYTE\_ORDER has been set as Big\_Endian because GSI compiled with Intel and PGI can read a Big\_Endian background error file, BUFR files, and CRTM coefficient files. - -\begin{footnotesize} -\begin{verbatim} -BYTE_ORDER=Big_Endian -# BYTE_ORDER=Little_Endian - -case $ARCH in - 'IBM_LSF') - ###### IBM LSF (Load Sharing Facility) - RUN_COMMAND="mpirun.lsf " ;; - - 'LINUX') - if [ $GSIPROC = 1 ]; then - #### Linux workstation - single processor - RUN_COMMAND="" - else - ###### Linux workstation - mpi run - RUN_COMMAND="mpirun -np ${GSIPROC} -machinefile ~/mach " - fi ;; - - 'LINUX_LSF') - ###### LINUX LSF (Load Sharing Facility) - RUN_COMMAND="mpirun.lsf " ;; - - 'LINUX_PBS') - #### Linux cluster PBS (Portable Batch System) - RUN_COMMAND="mpirun -np ${GSIPROC} " ;; - - 'DARWIN_PGI') - ### Mac - mpi run - if [ $GSIPROC = 1 ]; then - #### Mac workstation - single processor - RUN_COMMAND="" - else - ###### Mac workstation - mpi run - RUN_COMMAND="mpirun -np ${GSIPROC} -machinefile ~/mach " - fi ;; - - * ) - print "error: $ARCH is not a supported platform configuration." - exit 1 ;; -esac -\end{verbatim} -\end{footnotesize} - -The next block checks if all the variables needed for a GSI run are properly defined. These variables should have been defined in the first three parts of this script. - -\begin{scriptsize} -\begin{verbatim} -################################################################################## -# Check GSI needed environment variables are defined and exist -# - -# Make sure ANAL_TIME is defined and in the correct format -if [ ! "${ANAL_TIME}" ]; then - echo "ERROR: \$ANAL_TIME is not defined!" - exit 1 -fi - -# Make sure WORK_ROOT is defined and exists -if [ ! "${WORK_ROOT}" ]; then - echo "ERROR: \$WORK_ROOT is not defined!" - exit 1 -fi - -# Make sure the background file exists -if [ ! -r "${BK_FILE}" ]; then - echo "ERROR: ${BK_FILE} does not exist!" - exit 1 -fi - -# Make sure OBS_ROOT is defined and exists -if [ ! "${OBS_ROOT}" ]; then - echo "ERROR: \$OBS_ROOT is not defined!" - exit 1 -fi -if [ ! -d "${OBS_ROOT}" ]; then - echo "ERROR: OBS_ROOT directory '${OBS_ROOT}' does not exist!" - exit 1 -fi - -# Set the path to the GSI static files -if [ ! "${FIX_ROOT}" ]; then - echo "ERROR: \$FIX_ROOT is not defined!" - exit 1 -fi -if [ ! -d "${FIX_ROOT}" ]; then - echo "ERROR: fix directory '${FIX_ROOT}' does not exist!" - exit 1 -fi - -# Set the path to the CRTM coefficients -if [ ! "${CRTM_ROOT}" ]; then - echo "ERROR: \$CRTM_ROOT is not defined!" - exit 1 -fi -if [ ! -d "${CRTM_ROOT}" ]; then - echo "ERROR: fix directory '${CRTM_ROOT}' does not exist!" - exit 1 -fi - - -# Make sure the GSI executable exists -if [ ! -x "${GSI_EXE}" ]; then - echo "ERROR: ${GSI_EXE} does not exist!" - exit 1 -fi - -# Check to make sure the number of processors for running GSI was specified -if [ -z "${GSIPROC}" ]; then - echo "ERROR: The variable $GSIPROC must be set to contain the number of processors to run GSI" - exit 1 -fi - -\end{verbatim} -\end{scriptsize} - -The next block creates a working directory (workdir) in which GSI will run. The directory should have enough disk space to hold all the files needed for this run. This directory is cleaned before each run, therefore, save all the files needed from the previous run before rerunning GSI. - -\begin{scriptsize} -\begin{verbatim} -################################################################################## -# Create the work directory and cd into it - -workdir=${WORK_ROOT} -echo " Create working directory:" ${workdir} - -if [ -d "${workdir}" ]; then - rm -rf ${workdir} -fi -mkdir -p ${workdir} -cd ${workdir} - -# -################################################################################## - -echo " Copy GSI executable, background file, and link observation bufr to working directory" - -# Save a copy of the GSI executable in the workdir -cp ${GSI_EXE} gsi.exe - -# Bring over background field (it's modified by GSI so we can't link to it) -cp ${BK_FILE} ./wrf_inout -if [ ${if_4DEnVar} = Yes ] ; then - cp ${BK_FILE_P1} ./wrf_inou3 - cp ${BK_FILE_M1} ./wrf_inou1 -fi -\end{verbatim} -\end{scriptsize} - -Note: You can link observation files to the working directory because GSI will not overwrite these files. The observations that can be analyzed in GSI are listed in the column "dfile" of the GSI namelist section OBS\_INPUT, as specified in \verb|run/comgsi_namelist.sh|. Most of the conventional observations are in one single file named prepbufr, while different radiance data are in separate files based on satellite instruments, such as AMSU-A or HIRS. All these observation files must be linked as GSI recognized file names in "dfile." Please check table \ref{t31} for a detailed explanation of links and the meanings of each file name listed below. - -\begin{footnotesize} -\begin{verbatim} -# Link to the prepbufr data -ln -s ${PREPBUFR} ./prepbufr - -# ln -s ${OBS_ROOT}/gdas1.t${HH}z.sptrmm.tm00.bufr_d tmirrbufr -# Link to the radiance data -srcobsfile[1]=${OBS_ROOT}/gdas1.t${HH}z.satwnd.tm00.bufr_d -gsiobsfile[1]=satwnd -srcobsfile[2]=${OBS_ROOT}/gdas1.t${HH}z.1bamua.tm00.bufr_d -gsiobsfile[2]=amsuabufr -srcobsfile[3]=${OBS_ROOT}/gdas1.t${HH}z.1bhrs4.tm00.bufr_d -gsiobsfile[3]=hirs4bufr -srcobsfile[4]=${OBS_ROOT}/gdas1.t${HH}z.1bmhs.tm00.bufr_d -gsiobsfile[4]=mhsbufr -srcobsfile[5]=${OBS_ROOT}/gdas1.t${HH}z.1bamub.tm00.bufr_d -gsiobsfile[5]=amsubbufr -srcobsfile[6]=${OBS_ROOT}/gdas1.t${HH}z.ssmisu.tm00.bufr_d -gsiobsfile[6]=ssmirrbufr -# srcobsfile[7]=${OBS_ROOT}/gdas1.t${HH}z.airsev.tm00.bufr_d -gsiobsfile[7]=airsbufr -srcobsfile[8]=${OBS_ROOT}/gdas1.t${HH}z.sevcsr.tm00.bufr_d -gsiobsfile[8]=seviribufr -srcobsfile[9]=${OBS_ROOT}/gdas1.t${HH}z.iasidb.tm00.bufr_d -gsiobsfile[9]=iasibufr -srcobsfile[10]=${OBS_ROOT}/gdas1.t${HH}z.gpsro.tm00.bufr_d -gsiobsfile[10]=gpsrobufr -srcobsfile[11]=${OBS_ROOT}/gdas1.t${HH}z.amsr2.tm00.bufr_d -gsiobsfile[11]=amsrebufr -srcobsfile[12]=${OBS_ROOT}/gdas1.t${HH}z.atms.tm00.bufr_d -gsiobsfile[12]=atmsbufr -srcobsfile[13]=${OBS_ROOT}/gdas1.t${HH}z.geoimr.tm00.bufr_d -gsiobsfile[13]=gimgrbufr -srcobsfile[14]=${OBS_ROOT}/gdas1.t${HH}z.gome.tm00.bufr_d -gsiobsfile[14]=gomebufr -srcobsfile[15]=${OBS_ROOT}/gdas1.t${HH}z.omi.tm00.bufr_d -gsiobsfile[15]=omibufr -srcobsfile[16]=${OBS_ROOT}/gdas1.t${HH}z.osbuv8.tm00.bufr_d -gsiobsfile[16]=sbuvbufr -srcobsfile[17]=${OBS_ROOT}/gdas1.t${HH}z.eshrs3.tm00.bufr_d -gsiobsfile[17]=hirs3bufrears -srcobsfile[18]=${OBS_ROOT}/gdas1.t${HH}z.esamua.tm00.bufr_d -gsiobsfile[18]=amsuabufrears -srcobsfile[19]=${OBS_ROOT}/gdas1.t${HH}z.esmhs.tm00.bufr_d -gsiobsfile[19]=mhsbufrears -srcobsfile[20]=${OBS_ROOT}/rap.t${HH}z.nexrad.tm00.bufr_d -gsiobsfile[20]=l2rwbufr -srcobsfile[21]=${OBS_ROOT}/rap.t${HH}z.lgycld.tm00.bufr_d -gsiobsfile[21]=larcglb -ii=1 -while [[ $ii -le 21 ]]; do - if [ -r "${srcobsfile[$ii]}" ]; then - ln -s ${srcobsfile[$ii]} ${gsiobsfile[$ii]} - echo "link source obs file ${srcobsfile[$ii]}" - fi - (( ii = $ii + 1 )) -done -\end{verbatim} -\end{footnotesize} - -The following block copies constant fixed files from the fix/ directory and links CRTM coefficients. Please check Section 3.1 for the meanings of each fixed file. - -\begin{footnotesize} -\begin{verbatim} -################################################################################## - -echo " Copy fixed files and link CRTM coefficient files to working directory" - -# Set fixed files -# berror = forecast model background error statistics -# specoef = CRTM spectral coefficients -# trncoef = CRTM transmittance coefficients -# emiscoef = CRTM coefficients for IR sea surface emissivity model -# aerocoef = CRTM coefficients for aerosol effects -# cldcoef = CRTM coefficients for cloud effects -# satinfo = text file with information about assimilation of brightness temperatures -# satangl = angle dependent bias correction file (fixed in time) -# pcpinfo = text file with information about assimilation of prepcipitation rates -# ozinfo = text file with information about assimilation of ozone data -# errtable = text file with obs error for conventional data (regional only) -# convinfo = text file with information about assimilation of conventional data -# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) -# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) -\end{verbatim} -\end{footnotesize} - -Note: For background error covariances, observation errors, and analysis variable information, we provide two sets of fixed files. One set is based on GFS statistics and another is based on NAM statistics. For this release there is an additional setting in the ANAVINFO file for "bk\_core" for both GFS and NAM statistics. - -\begin{footnotesize} -\begin{verbatim} -if [ ${bkcv_option} = GLOBAL ] ; then - echo ' Use global background error covariance' - BERROR=${FIX_ROOT}/${BYTE_ORDER}/nam_glb_berror.f77.gcv - OBERROR=${FIX_ROOT}/prepobs_errtable.global - if [ ${bk_core} = NMM ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_ndas_netcdf_glbe - fi - if [ ${bk_core} = ARW ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_arw_netcdf_glbe - fi - if [ ${bk_core} = NMMB ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_nems_nmmb_glb - fi -else - echo ' Use NAM background error covariance' - BERROR=${FIX_ROOT}/${BYTE_ORDER}/nam_nmmstat_na.gcv - OBERROR=${FIX_ROOT}/nam_errtable.r3dv - if [ ${bk_core} = NMM ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_ndas_netcdf - fi - if [ ${bk_core} = ARW ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_arw_netcdf - fi - if [ ${bk_core} = NMMB ] ; then - ANAVINFO=${FIX_ROOT}/anavinfo_nems_nmmb - fi -fi - -SATINFO=${FIX_ROOT}/global_satinfo.txt -CONVINFO=${FIX_ROOT}/global_convinfo.txt -OZINFO=${FIX_ROOT}/global_ozinfo.txt -PCPINFO=${FIX_ROOT}/global_pcpinfo.txt - -# copy Fixed fields to working directory - cp $ANAVINFO anavinfo - cp $BERROR berror_stats - cp $SATINFO satinfo - cp $CONVINFO convinfo - cp $OZINFO ozinfo - cp $PCPINFO pcpinfo - cp $OBERROR errtable -# -# # CRTM Spectral and Transmittance coefficients -CRTM_ROOT_ORDER=${CRTM_ROOT}/${BYTE_ORDER} -emiscoef_IRwater=${CRTM_ROOT_ORDER}/Nalli.IRwater.EmisCoeff.bin -emiscoef_IRice=${CRTM_ROOT_ORDER}/NPOESS.IRice.EmisCoeff.bin -emiscoef_IRland=${CRTM_ROOT_ORDER}/NPOESS.IRland.EmisCoeff.bin -emiscoef_IRsnow=${CRTM_ROOT_ORDER}/NPOESS.IRsnow.EmisCoeff.bin -emiscoef_VISice=${CRTM_ROOT_ORDER}/NPOESS.VISice.EmisCoeff.bin -emiscoef_VISland=${CRTM_ROOT_ORDER}/NPOESS.VISland.EmisCoeff.bin -emiscoef_VISsnow=${CRTM_ROOT_ORDER}/NPOESS.VISsnow.EmisCoeff.bin -emiscoef_VISwater=${CRTM_ROOT_ORDER}/NPOESS.VISwater.EmisCoeff.bin -emiscoef_MWwater=${CRTM_ROOT_ORDER}/FASTEM6.MWwater.EmisCoeff.bin -aercoef=${CRTM_ROOT_ORDER}/AerosolCoeff.bin -cldcoef=${CRTM_ROOT_ORDER}/CloudCoeff.bin - -ln -s $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin -ln -s $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin -ln -s $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin -ln -s $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin -ln -s $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin -ln -s $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin -ln -s $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin -ln -s $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin -ln -s $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin -ln -s $aercoef ./AerosolCoeff.bin -ln -s $cldcoef ./CloudCoeff.bin -# Copy CRTM coefficient files based on entries in satinfo file -for file in `awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq` ;do - ln -s ${CRTM_ROOT_ORDER}/${file}.SpcCoeff.bin ./ - ln -s ${CRTM_ROOT_ORDER}/${file}.TauCoeff.bin ./ -done - -# Only need this file for single obs test - bufrtable=${FIX_ROOT}/prepobs_prep.bufrtable - cp $bufrtable ./prepobs_prep.bufrtable - -# for satellite bias correction -cp ${OBS_ROOT}/gdas1.t12z.abias ./satbias_in -cp ${OBS_ROOT}/gdas1.t12z.abias_pc ./satbias_pc_in -\end{verbatim} -\end{footnotesize} - -Please note that in the above sample script, two files related to radiance bias correction are copied to the work directory: - -\begin{small} -\begin{verbatim} -cp ${OBS_ROOT}/gdas1.t12z.abias ./satbias_in -cp ${OBS_ROOT}/gdas1.t12z.abias_pc ./satbias_pc_in -\end{verbatim} -\end{small} - -There are two options on how to perform the radiance bias correction. The first method is to do the angle dependent bias correction offline and do the mass bias correction inside the GSI analysis, therefore requiring two input files: \verb|satbias_angle|, corresponding to the angle dependent bias correction file and \verb|satbias_in|, being the input file for mass bias correction. The second method is to combine the angle dependent and mass bias correction together and do it within the GSI analysis, requiring one combined input file: \verb|satbias_in|. Note that the input bias correction coefficients file, \verb|satbias_in|, is different for the two options, therefore it is important to use the appropriate input file for each method. The sample input files for the first method are provided with this release: \verb|global_satangbias.txt| and \verb|sample.satbias|. To use the second option - combined angle dependent and mass bias correction, a sample file, \verb|gdas1.t00z.abias_pc.20150617|, is also provided. As a starting point, users may also download a GDAS satbias coefficient file from the NOMADS ftp site as the input file (starting in spring 2015, the GDAS \verb|satbias| files have adopted the following format): - -\url{ftp://nomads.ncdc.noaa.gov/GDAS/YYYYMM/YYYYMMDD/gdas1.tHHz.abias} - -In order to use the combined angle dependent and mass bias correction, users also need to set \verb|adp_anglebc=.true.| in the \verb|&SETUP| section of the GSI namelist (\verb|comgsi_namelist.sh|). For more details about the namelist, please see Appendix C in this document. - -Set up some constants used in the GSI namelist. Please note that \verb|bkcv_option| is set for background error tuning. They should be set based on specific applications. Here we provide three sample sets of the constants for different background error covariance options, one set is used in the NAM operations, one for the GFS operations and one for the NMMB operations. In this release, the capability of NMMB application is included and therefore the namelist settings for NMMB are provided in addition to NMM and ARW applications. - -\begin{footnotesize} -\begin{verbatim} -################################################################################## -# Set some parameters for use by the GSI executable and to build the namelist -echo " Build the namelist " - -# default is NAM -# as_op='1.0,1.0,0.5 ,0.7,0.7,0.5,1.0,1.0,' -vs_op='1.0,' -hzscl_op='0.373,0.746,1.50,' -if [ ${bkcv_option} = GLOBAL ] ; then -# as_op='0.6,0.6,0.75,0.75,0.75,0.75,1.0,1.0' - vs_op='0.7,' - hzscl_op='1.7,0.8,0.5,' -fi -if [ ${bk_core} = NMMB ] ; then - vs_op='0.6,' -fi - -# default is NMM - bk_core_arw='.false.' - bk_core_nmm='.true.' - bk_core_nmmb='.false.' - bk_if_netcdf='.true.' -if [ ${bk_core} = ARW ] ; then - bk_core_arw='.true.' - bk_core_nmm='.false.' - bk_core_nmmb='.false.' - bk_if_netcdf='.true.' -fi -if [ ${bk_core} = NMMB ] ; then - bk_core_arw='.false.' - bk_core_nmm='.false.' - bk_core_nmmb='.true.' - bk_if_netcdf='.false.' -fi - -\end{verbatim} -\end{footnotesize} - -The following section specifies the number of outer loops and whether to save GSI read observations based on the setting of ''if\_observer''. - -\begin{footnotesize} -\begin{verbatim} -if [ ${if_observer} = Yes ] ; then - nummiter=0 - if_read_obs_save='.true.' - if_read_obs_skip='.false.' -else - nummiter=2 - if_read_obs_save='.false.' - if_read_obs_skip='.false.' -fi -\end{verbatim} -\end{footnotesize} - -The following section of the script is used to generate the GSI namelist called gsiparm.anl in the working directory. A detailed explanation of each variable can be found in Section 3.4 and Appendix C. - -\begin{footnotesize} -\begin{verbatim} -# Build the GSI namelist on-the-fly -. $GSI_NAMELIST -cat << EOF > gsiparm.anl - - $comgsi_namelist - -EOF -\end{verbatim} -\end{footnotesize} - -Note: \verb|EOF| indicates the end of GSI namelist. - -The following block modifies the anavinfo file so that its vertical levels are consistent with the wrf\_inout file for WRF ARW or NMM. Users no longer need to manually modify the anavinfo file. - -\begin{footnotesize} -\begin{verbatim} -# modify the anavinfo vertical levels based on wrf_inout for WRF ARW and NMM -if [ ${bk_core} = ARW ] || [ ${bk_core} = NMM ] ; then -bklevels=`ncdump -h wrf_inout | grep "bottom_top =" | awk '{print $3}' ` -bklevels_stag=`ncdump -h wrf_inout | grep "bottom_top_stag =" | awk '{print $3}' ` -anavlevels=`cat anavinfo | grep ' sf ' | tail -1 | awk '{print $2}' ` # levels of sf, vp, u, v, t, etc -anavlevels_stag=`cat anavinfo | grep ' prse ' | tail -1 | awk '{print $2}' ` # levels of prse -sed -i 's/ '$anavlevels'/ '$bklevels'/g' anavinfo -sed -i 's/ '$anavlevels_stag'/ '$bklevels_stag'/g' anavinfo -fi -\end{verbatim} -\end{footnotesize} - -The following block runs GSI and checks if GSI has successfully completed. - -\begin{footnotesize} -\begin{verbatim} -################################################### -# run GSI -################################################### -echo ' Run GSI with' ${bk_core} 'background' - -case $ARCH in - 'IBM_LSF') - ${RUN_COMMAND} ./gsi.exe < gsiparm.anl > stdout 2>&1 ;; - - * ) - ${RUN_COMMAND} ./gsi.exe > stdout 2>&1 ;; -esac - -################################################################## -# run time error check -################################################################## -error=$? - -if [ ${error} -ne 0 ]; then - echo "ERROR: ${GSI} crashed Exit status=${error}" - exit ${error} -fi -\end{verbatim} -\end{footnotesize} - -The following block saves the analysis results with an understandable name and adds the analysis time to some output file names. Among them, "stdout" contains runtime output of GSI and \verb|wrf_inout| is the resulting analysis file. - -\begin{footnotesize} -\begin{verbatim} -################################################################## -# -# GSI updating satbias_in -# -# GSI updating satbias_in (only for cycling assimilation) - -# Copy the output to more understandable names -ln -s stdout stdout.anl.${ANAL_TIME} -ln -s wrf_inout wrfanl.${ANAL_TIME} -ln -s fort.201 fit_p1.${ANAL_TIME} -ln -s fort.202 fit_w1.${ANAL_TIME} -ln -s fort.203 fit_t1.${ANAL_TIME} -ln -s fort.204 fit_q1.${ANAL_TIME} -ln -s fort.207 fit_rad1.${ANAL_TIME} -\end{verbatim} -\end{footnotesize} - -The following block collects the diagnostic files. The diagnostic files are merged and categorized based on outer loop and data type. Setting "write\_diag" to true in the namelist directs GSI to write out diagnostic information for each observation. This information is very useful to check analysis details. Please check Appendix A.2 for the tool to read and analyze these diagnostic files. - -\begin{footnotesize} -\begin{verbatim} -# Loop over first and last outer loops to generate innovation -# diagnostic files for indicated observation types (groups) -# -# NOTE: Since we set miter=2 in GSI namelist SETUP, outer -# loop 03 will contain innovations with respect to -# the analysis. Creation of o-a innovation files -# is triggered by write_diag(3)=.true. The setting -# write_diag(1)=.true. turns on creation of o-g -# innovation files. -# - -loops="01 03" -for loop in $loops; do - -case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; -esac - -# Collect diagnostic files for obs types (groups) below -# listall="conv amsua_metop-a mhs_metop-a hirs4_metop-a hirs2_n14 msu_n14 \ -# sndr_g08 sndr_g10 sndr_g12 sndr_g08_prep sndr_g10_prep sndr_g12_prep \ -# sndrd1_g08 sndrd2_g08 sndrd3_g08 sndrd4_g08 sndrd1_g10 sndrd2_g10 \ -# sndrd3_g10 sndrd4_g10 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 \ -# hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 \ -# amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua \ -# goes_img_g08 goes_img_g10 goes_img_g11 goes_img_g12 \ -# pcp_ssmi_dmsp pcp_tmi_trmm sbuv2_n16 sbuv2_n17 sbuv2_n18 \ -# omi_aura ssmi_f13 ssmi_f14 ssmi_f15 hirs4_n18 amsua_n18 mhs_n18 \ -# amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 \ -# ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 mhs_metop_b \ -# hirs4_metop_b hirs4_n19 amusa_n19 mhs_n19" -listall=`ls pe* | cut -f2 -d"." | awk '{print substr($0, 0, length($0)-3)}' | sort | uniq` - - for type in $listall; do - count=`ls pe*${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat pe*${type}_${loop}* > diag_${type}_${string}.${ANAL_TIME} - fi - done -done -\end{verbatim} -\end{footnotesize} - -The following scripts clean the temporary intermediate files: - -\begin{footnotesize} -\begin{verbatim} -# Clean working directory to save only important files -ls -l * > list_run_directory -if [[ ${if_clean} = clean && ${if_observer} != Yes ]]; then - echo ' Clean working directory after GSI run' - rm -f *Coeff.bin # all CRTM coefficient files - rm -f pe0* # diag files on each processor - rm -f obs_input.* # observation middle files - rm -f siganl sigf03 # background middle files - rm -f fsize_* # delete temperal file for bufr size -fi -\end{verbatim} -\end{footnotesize} - -The following block of the script runs only for \verb|if_observer=Yes|, which runs GSI as an observation operator for EnKF and without doing minimization. The script first renames the previous diagnostics files and GSI analysis file by appending \verb| .ensmean| to the filenames to avoid these files being overwritten by the new GSI run. - -\begin{footnotesize} -\begin{verbatim} -################################################# -# start to calculate diag files for each member -################################################# -# -if [ ${if_observer} = Yes ] ; then - string=ges - for type in $listall; do - count=0 - if [[ -f diag_${type}_${string}.${ANAL_TIME} ]]; then - mv diag_${type}_${string}.${ANAL_TIME} diag_${type}_${string}.ensmean - fi - done - mv wrf_inout wrf_inout_ensmean -\end{verbatim} -\end{footnotesize} - -Next, the script generates the namelist for each ensemble member. - -\begin{footnotesize} -\begin{verbatim} -# Build the GSI namelist on-the-fly for each member - nummiter=0 - if_read_obs_save='.false.' - if_read_obs_skip='.true.' -. $GSI_NAMELIST -cat << EOF > gsiparm.anl - - $comgsi_namelist - -EOF -\end{verbatim} -\end{footnotesize} - -The rest of the script loops through the ensemble members to get the background ready, run GSI, and check the run status: - -\begin{footnotesize} -\begin{verbatim} -# Loop through each member - loop="01" - ensmem=1 - while [[ $ensmem -le $no_member ]];do - - rm pe0* - - print "\$ensmem is $ensmem" - ensmemid=`printf %3.3i $ensmem` - -# get new background for each member - if [[ -f wrf_inout ]]; then - rm wrf_inout - fi - - BK_FILE=${BK_FILE_mem}${ensmemid} - echo $BK_FILE - ln -s $BK_FILE wrf_inout - -# run GSI - echo ' Run GSI with' ${bk_core} 'for member ', ${ensmemid} - - case $ARCH in - 'IBM_LSF') - ${RUN_COMMAND} ./gsi.exe < gsiparm.anl > stdout_mem${ensmemid} 2>&1 ;; - - * ) - ${RUN_COMMAND} ./gsi.exe > stdout_mem${ensmemid} 2>&1 ;; - esac - -# run time error check and save run time file status - error=$? - - if [ ${error} -ne 0 ]; then - echo "ERROR: ${GSI} crashed for member ${ensmemid} Exit status=${error}" - exit ${error} - fi - - ls -l * > list_run_directory_mem${ensmemid} -\end{verbatim} -\end{footnotesize} - -The following lines generate the diagnostics files for each member. - -\begin{small} -\begin{verbatim} -# generate diag files - - for type in $listall; do - count=`ls pe*${type}_${loop}* | wc -l` - if [[ $count -gt 0 ]]; then - cat pe*${type}_${loop}* > diag_${type}_${string}.mem${ensmemid} - fi - done -\end{verbatim} -\end{small} - -The following section is to move on to the next ensemble member and run GSI. - -\begin{small} -\begin{verbatim} -# next member - (( ensmem += 1 )) - - done - -fi -\end{verbatim} -\end{small} - -If this point is reached, the GSI successfully finishes and exits with status "0": - -\begin{small} -\begin{verbatim} -exit 0 -\end{verbatim} -\end{small} - -%------------------------------------------------------------------------------- -\section{GSI Analysis Result Files in Run Directory}\label{sec3.3} -%------------------------------------------------------------------------------- - -Once the GSI run script is set up, it is ready to be submitted like any other batch job. When completed, GSI will create a number of files in the run directory. Below is an example of the files generated in the run directory from one of the GSI test case runs. This case was run to perform a regional GSI analysis with a WRF-ARW NetCDF background using conventional (prepbufr), radiance (AMSU-A, HIRS4, and MHS), and GPSRO data. The analysis time is 1200Z on 13 May 2017. Four processors were used. To make the run directory more readable, we turned on the clean option in the run script, which deleted all temporary intermediate files. - -\begin{scriptsize} -\begin{verbatim} -amsuabufr fort.206 hirs3bufrears -amsuabufrears fort.207 hirs4bufr -anavinfo fort.208 l2rwbufr -atmsbufr fort.209 larcglb -berror_stats fort.210 list_run_directory -convinfo fort.211 mhsbufr -diag_amsua_n15_anl.2017051312 fort.212 mhsbufrears -diag_amsua_n15_ges.2017051312 fort.213 omibufr -diag_amsua_n18_anl.2017051312 fort.214 ozinfo -diag_amsua_n18_ges.2017051312 fort.215 pcpbias_out -diag_amsua_n19_anl.2017051312 fort.217 pcpinfo -diag_amsua_n19_ges.2017051312 fort.218 prepbufr -diag_conv_anl.2017051312 fort.219 prepobs_prep.bufrtable -diag_conv_ges.2017051312 fort.220 radar_supobs_from_level2 -diag_hirs4_n19_anl.2017051312 fort.221 satbias_angle -diag_hirs4_n19_ges.2017051312 fort.223 satbias_ang.out -diag_mhs_n18_anl.2017051312 fort.224 satbias_in -diag_mhs_n18_ges.2017051312 fort.225 satbias_out -diag_mhs_n19_anl.2017051312 fort.226 satbias_out.int -diag_mhs_n19_ges.2017051312 fort.227 satbias_pc_in -errtable fort.228 satbias_pc.out -fit_p1.2017051312 fort.229 satinfo -fit_q1.2017051312 fort.230 satwnd -fit_rad1.2017051312 fort.232 sbuvbufr -fit_t1.2017051312 fort.233 seviribufr -fit_w1.2017051312 fort.234 ssmirrbufr -fort.201 gimgrbufr stdout -fort.202 gomebufr stdout.anl.2017051312 -fort.203 gpsrobufr wrfanl.2017051312 -fort.204 gsi.exe wrf_inout -fort.205 gsiparm.anl -\end{verbatim} -\end{scriptsize} - -It is important to know which files hold the GSI analysis results, standard output, and diagnostic information. We will introduce these files and their contents in detail in the following chapter. The following is a brief list of what these files contain: -\begin{itemize} - \item \textit{stdout} or \textit{stdout.anl.(time)}: standard text output file. \textit{stdout.anl.(time)} is a link to \textit{stdout} with the analysis time appended. This is the most commonly used file to check the GSI analysis processes and contains basic and important information about the analyses. We will explain the contents of the \textit{stdout} file in Section 4.1 and users are encouraged to read this file in detail to become familiar with the order of GSI analysis processing. - \item \textit{wrf\_inout} or \textit{wrfanl.(time)}: analysis results if GSI completes successfully. It exists only if using WRF for the background. The \textit{wrfanl.(time)} file is a link to \textit{wrf\_inout} with the analysis time appended. The format is the same as the background file. -\item \textit{diag\_conv\_anl.(time)}: binary diagnostic files for conventional and GPS RO observations at the final analysis step (analysis departure for each observation). -\item \textit{diag\_conv\_ges.(time)}: binary diagnostic files for conventional and GPS RO observations before the initial analysis step (background departure for each observation) -\item \textit{diag\_(instrument\_satellite)\_anl}: diagnostic files for satellite radiance observations at the final analysis step. -\item \textit{diag\_(instrument\_satellite)\_ges}: diagnostic files for satellite radiance observations before the initial analysis step. -\item \textit{gsiparm.anl}: GSI namelist, generated by the run script. -\item \textit{fit\_(variable).(time)}: links to fort.2?? with meaningful names (variable name plus analysis time). They are statistic results of observation departures from background and analysis results according to observation variables. Please see Section 4.5 for more details. -\item \textit{fort.220}: output from the inner loop minimization (in \textit{pcgsoi.f90}). Please see Section 4.6 for details. -\item \textit{anavinfo}: info file to set up control, state, and background variables. Please see the Advanced GSI User\textquotesingle s Guide for details. -\item \textit{*info} (\textit{convinfo},\textit{satinfo}, \dots): info files that control data usage. Please see Section \ref{sec4.3} for details. -\item \textit{berror\_stats} and \textit{errtable}: background error file (binary) and observation error file (text). -\item \textit{*bufr}: observation BUFR files linked to the run directoryi. Please see Section 3.1 for details. -\item \textit{satbias\_in}: the input coefficients of bias correction for satellite radiance observations. -\item \textit{satbias\_out}: the output coefficients of bias correction for satellite radiance observations after the GSI run. -\item \textit{satbias\_pc}: the input coefficients of bias correction for passive satellite radiance observations. -\item \textit{list\_run\_directory} : the complete list of files in the run directory before cleaning takes place. This is generated by the GSI run script. -\end{itemize} - -The \verb|diag| files, such as \verb|diag_(instrument_satellite)_anl.(time)| and \verb|diag_conv_anl.(time)|, contain important information about the data used in the GSI, including observation departure from analysis results for each observation (O-A). Similarly, \verb|diag_conv_ges| and \verb|diag_(instrumen_satellite)_ges.(time)| include the observation innovation for each observation (O-B). These files can be very helpful in understanding the detailed impact of data on the analysis. A tool is provided to process these files, which is introduced in Appendix A.2. - -There are many intermediate files in this directory while GSI is running or if the run crashes. The complete list of files in the directory (prior to cleaning) is saved in file \verb|list_run_directory|. Some knowledge about the content of these files is very helpful for debugging if the GSI run crashes. Please check table \ref{t37} for the meaning of these files. (Note: you may not see all the files in the list because different observational data are used. Also, the fixed files prepared for a GSI run, such as CRTM coefficient files, are not included.) - -\begin{table}[htbp] -\centering -\caption{List of GSI intermediate files} -\begin{tabular}{|p{5cm}|p{10cm}|} -\hline -\hline -File name & Content \\ -\hline -sigf03 & This is a temporary file, holding binary format background files (typically sigf03, sigf06 and sigf09 if FGAT used). When you see this file, at the minimum, a background file was successfully read in.\\ -\hline -siganl & Analysis results in binary format. When this file exists, the analysis has finished.\\ -\hline -pe????.(conv or instrument\_satellite)\_(outer loop) & Diagnostic files for conventional and satellite radiance observations at each outer loop and each sub-domain (????=subdomain id)i.\\ -\hline -obs\_input.???? & Observation scratch files (each file contains observations for one observation type within the whole analysis domain and time window. ????=observation type id in namelist).\\ -\hline -pcpbias\_out & Output precipitation bias correction file.\\ -\hline -\end{tabular} -\label{t37} -\end{table} - - - -%------------------------------------------------------------------------------- -\section{Introduction to Frequently Used GSI Namelist Options} -%------------------------------------------------------------------------------- - -The complete namelist options and their explanations are listed in Appendix A of the Advanced GSI User\textquotesingle s Guide. For most GSI analysis applications, only a few namelist variables need to be changed. Here we introduce frequently used variables for regional analyses: - -%------------------------------------------------------------------------------- -\subsection{Set Up the Number of Outer and Inner Loops} -%------------------------------------------------------------------------------- - -To change the number of outer loops and the number of inner iterations in each outer loop, the following three variables in the namelist need to be modified: - -\begin{itemize} -\item \verb|miter|: number of outer analysis loops. -\item \verb|niter(1)|: maximum iteration number of inner loop iterations for the 1\textsuperscript{st} outer loop. The inner loop will stop when it reaches this maximum number, when it reaches the convergence threshold, or when it fails to converge. -\item \verb|niter(2)|: maximum iteration number of inner loop iterations for the 2\textsuperscript{nd} outer loop. -\item If \verb|miter| is larger than two, repeat \verb|niter| with larger index. -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Set Up the Analysis Variable for Moisture} -%------------------------------------------------------------------------------- - -There are two moisture analysis variable options. It is based on the following namelist variable: - -\verb|qoption = 1 or 2|: -\begin{itemize} -\item If \verb|qoption=1|, the moisture analysis variable is pseudo-relative humidity. The saturation specific humidity, qsatg, is computed from the guess and held constant during the inner loop. Thus, the relative humidity control variable can only change via changes in specific humidity, q. -\item If \verb|qoption=2|, the moisture analysis variable is normalized relative humidity. This formulation allows relative humidity to change in the inner loop via changes to surface pressure, temperature, or specific humidity. -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Set Up the Background File} -%------------------------------------------------------------------------------- - -The following four variables define which background field will be used in the GSI analyses: - -\begin{itemize} -\item \verb|regional|: if true, perform a regional GSI run using either ARW or NMM inputs as the background. If false, perform a global GSI analysis. If either \verb|wrf_nmm_regional| or \verb|wrf_mass_regional| are true, it will be set to true. -\item \verb|wrf_nmm_regional|: if true, the background comes from WRF-NMM. When using other background fields, set it to false. -\item \verb|wrf_mass_regional|: if true, the background comes from WRF-ARW. When using other background fields, set it to false. -\item \verb|nems_nmmb_regional|: if true, the background comes from NMMB. When using other background fields, set it to false. -\item \verb|netcdf|: if true, WRF files are in NetCDF format, otherwise WRF files are in binary format. This option only works for a regional GSI analysis. -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Set Up the Output of Diagnostic Files} -%------------------------------------------------------------------------------- - -The following variables tell the GSI to write out diagnostic results in certain loops: - -\begin{itemize} -\item \verb|write_diag(1)|: if true, write out diagnostic data in the beginning of the analysis, so that we can have information on observation $-$ background (O-B) differences. -\item \verb|write_diag(2)|: if true, write out diagnostic data at the end of the 1\textsuperscript{st} outer loop (before the 2\textsuperscript{nd} outer loop starts). -\item \verb|write_diag(3)|: if true, write out diagnostic data at the end of the 2\textsuperscript{nd} outer loop (after the analysis finishes if the outer loop number is two), so that we can have information on observation $-$ analysis (O-A) differences. -\end{itemize} - -Please check appendix A.2 for the tools to read the diagnostic files. - -%------------------------------------------------------------------------------- -\subsection{Set Up the GSI Recognized Observation Files} -%------------------------------------------------------------------------------- - -The following sets up the GSI recognized observation files for GSI observation ingest: - -\begin{scriptsize} -\begin{verbatim} -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 1.0 0 0 - prepbufr t null t 1.0 0 0 - prepbufr q null q 1.0 0 0 - prepbufr pw null pw 1.0 0 0 - satwndbufr uv null uv 1.0 0 0 - prepbufr uv null uv 1.0 0 0 - prepbufr spd null spd 1.0 0 0 - prepbufr dw null dw 1.0 0 0 - radarbufr rw null rw 1.0 0 0 - prepbufr sst null sst 1.0 0 0 - gpsrobufr gps_ref null gps 1.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 -\end{verbatim} -\end{scriptsize} - -\begin{itemize} -\item \verb|dfile|: GSI recognized observation file name. The observation file contains observations used for a GSI analysis. This file can include several observation variables from different observation types. The file name listed by this parameter will be read in by GSI. This name can be changed as long as the name in the link from the BUFR/PrepBUFR file in the run scripts also changes correspondingly. -\item \verb|dtype|: analysis variable name that GSI can read in. Please note this name should be consistent with that used in the GSI code. -\item \verb|dplat|: sets up the observation platform for a certain observation, which will be read in from the file \verb|dfile|. -\item \verb|dsis|: sets up the data name (including both data type and platform name) used inside GSI. -\end{itemize} - -Please see Section 4.3 for examples and explanations of these variables. - -%------------------------------------------------------------------------------- -\subsection{Set Up Observation Time Window} -%------------------------------------------------------------------------------- - -In the namelist section \verb|OBS_INPUT|, use \verb|time_window_max| to set the maximum half time window (hours) for all data types. In the \verb|convinfo| file, you can use the column "twindow" to set the half time window for a certain data type (hours). For conventional observations, only observations within the smaller window of these two will be kept for further processing. For others, observations within \verb|time_window_max| will be kept for further processing. - -%------------------------------------------------------------------------------- -\subsection{Set Up Data Thinning} -%------------------------------------------------------------------------------- - -1) Radiance data thinning - -Radiance data thinning is controlled through two GSI namelist variables in the section \verb| &OBS_INPUT|. Below is an example: - -\begin{scriptsize} -\begin{verbatim} -&OBS_INPUT - dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=30,time_window_max=1.5,ext_sonde=.true., - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 1.0 0 0 - - gpsrobufr gps_ref null gps 1.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 1.0 -1 0 - - hirs3bufr hirs3 n17 hirs3_n17 6.0 1 0 - hirs4bufr hirs4 metop-a hirs4_metop-a 6.0 2 0 -\end{verbatim} -\end{scriptsize} - -The two namelist variables that control the radiance data thinning are real array "dmesh" in the 1\textsuperscript{st} line and the "dthin" values in the 6\textsuperscript{th} column. The "dmesh" array sets mesh sizes for radiance thinning grids in kilometers, while "dthin" defines if the data type it represents needs to be thinned and which thinning grid (mesh size) to use. If the value of \verb|dthin| is: - -\begin{itemize} -\item an integer less than or equal to zero, no thinning is needed -\item an integer larger than zero, this kind of radiance data will be thinned using the mesh size defined as dmesh (dthin). -\end{itemize} - -The following section provides several thinning examples defined by the above sample \verb| &OBS_INPUT| section: -\begin{itemize} -\item Data type \verb|ps| from prepbufr: no thinning because \verb|dthin=0| -\item Data type \verb|gps_ref| from gpsrobufr: no thinning because \verb|dthin=0| -\item Data type \verb|pcp_ssmi| from dmsp: no thinning because \verb|dthin(01)=-1| -\item Data type \verb|hirs3| from NOAA-17: thinning in a 120 km grid because \verb|dthin=1| and \verb|dmesh(1)=120| -\item Data type \verb|hirs4| from metop-a: thinning in a 60 km grid because \verb|dthin=2| and \verb|dmesh(2)=60| -\end{itemize} - -2) Conventional data thinning - -The conventional data can also be thinned. However, the setup of thinning is not in the namelist. To give users a complete picture of data thinning, conventional data thinning is briefly introduced here. There are three columns, \verb|ithin|, \verb|rmesh|, \verb|pmesh|, in the \verb|convinfo| file (more details on this file are in Section 4.3) to configure conventional data thinning: - -\begin{itemize} -\item \verb|ithin|: 0 = no thinning; - 1 = thinning with grid mesh decided by \verb|rmesh| and \verb|pmesh| -\item \verb|rmesh|: horizontal thinning grid size in km -\item \verb|pmesh|: vertical thinning grid size in mb; if 0, then use background vertical grid. -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Set Up Background Error Factor} -%------------------------------------------------------------------------------- - -In the namelist section BKGERR, vs is used to set up the scale factor for vertical correlation length and \verb|hzscl| is defined to set up scale factors for horizontal smoothing. The scale factors for the variance of each analysis variables are set in the \verb|anavinfo| file. The typical values used in operations for regional and global background error covariance are given and picked based on the choice of background error covariance in the run scripts and sample \verb|anavinfo| files - -%------------------------------------------------------------------------------- -\subsection{Single Observation Test} -%------------------------------------------------------------------------------- - -To do a single observation test, the following namelist option has to be set to true: - -\begin{small} -\begin{verbatim} -oneobtest=.true. -\end{verbatim} -\end{small} - -Then go to the namelist section \verb|SINGLEOB_TEST| to set up the single observation location and variable to be tested, please see Section 4.2 for an example and details on the single observation test. diff --git a/doc/GSI_user_guide/gsi_ch4.tex b/doc/GSI_user_guide/gsi_ch4.tex deleted file mode 100644 index e763fca70..000000000 --- a/doc/GSI_user_guide/gsi_ch4.tex +++ /dev/null @@ -1,2281 +0,0 @@ -\chapter{GSI Diagnostics and Tuning}\label{gsi_diag} -\setlength{\parskip}{12pt} - -The guidance in this chapter will help users understand how and where to check output from GSI to determine whether a run was successful. Properly checking the GSI output will also provide useful information to diagnose potential errors in the system. This chapter starts with an introduction to the content and structure of the GSI standard output file: (\textbf{stdout}). It continues with the use of a single observation to check the features of the GSI analysis. Then, observation usage control, analysis domain partitioning, fit files, and the optimization process will all be presented from information within the GSI output files (including \textbf{stdout}). - -This chapter follows the online case example for 2014061700. This case uses a WRF-ARW NetCDF file as the background and analyzes several observations typical for operations, including most conventional observation data, several radiance data sets (AMSU-A, HIRS4, and MHS), and GPSRO data. The case was run on a Linux cluster supercomputer, using four processors. Users can execute this test to reproduce the following results by visiting: - -\begin{center} -\url{http://www.dtcenter.org/com-GSI/users/tutorial/index.php} -\end{center} - -%------------------------------------------------------------------------------- -\section{Understanding Standard Output (\textit{stdout})} -\label{sec4.1} -%------------------------------------------------------------------------------- - -In Section \ref{sec3.3}, we listed the files present in the GSI run directory following a successful GSI analysis and briefly introduced the contents of several important files. Of these, \textbf{stdout} is the most useful because critical information about the GSI analysis can be obtained from the file. From \textbf{stdout}, users can check if the GSI has successfully completed, if optimal iterations look correct, and if the background and analysis fields are reasonable. Understanding the content of this file can also be very helpful for users to find where and why the GSI failed if it crashes. - -The structure of \textbf{stdout} follows the typical steps of a meteorological data analysis system: - -\begin{enumerate} -\item Read in all data and prepare analysis: -\begin{itemize} -\item Read in configuration (namelist) -\item Read in the background -\item Read in observations -\item Partition domain and data for parallel analysis -\item Read in constant fields (fixed files) -\end{itemize} -\item Calculate observation innovations -\item Optimal iteration (analysis) -\item Save analysis results -\end{enumerate} - -In this section, the detailed structure and content of \textbf{stdout} are explained using the online example case: 2014061700. To keep the output concise and make it more readable, most repeated content was deleted (shown with a dotted line). For the same reason, the precision of some numbers has been reduced to avoid line breaks in \textbf{stdout}. - -The following indicates the start of the GSI analysis. It shows the date and time that GSI started running: - -\begin{scriptsize} -\begin{verbatim} -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . - PROGRAM GSI_ANL HAS BEGUN. COMPILED 1999232.55 ORG: NP23 - STARTING DATE-TIME JUL 02,2016 20:36:21.760 184 SAT 2457572 -\end{verbatim} -\end{scriptsize} - -The following shows the content of anavinfo, a list of state and control variables: - -\begin{scriptsize} -\begin{verbatim} - gsi_metguess_mod*init_: 2D-MET STATE VARIABLES: - ps - z - gsi_metguess_mod*init_: 3D-MET STATE VARIABLES: - u - v - div - vor - tv - q - oz - cw - gsi_metguess_mod*init_: ALL MET STATE VARIABLES: - u - v - div - vor - tv - q - oz - cw - ps - z - state_vectors*init_anasv: 2D-STATE VARIABLES ps - sst - state_vectors*init_anasv: 3D-STATE VARIABLES u - v tv - tsen q - oz cw - prse - state_vectors*init_anasv: ALL STATE VARIABLES u - v tv - tsen q - oz cw - prse ps - sst - control_vectors*init_anacv: 2D-CONTROL VARIABLES ARE - ps sst - control_vectors*init_anacv: 3D-CONTROL VARIABLES ARE - sf vp - t q - oz cw - control_vectors*init_anacv: MOTLEY CONTROL VARIABLES - stl sti - control_vectors*init_anacv: ALL CONTROL VARIABLES - sf vp - ps t - q oz - sst cw - stl sti -\end{verbatim} -\end{scriptsize} - -Next is the content of all namelist variables used in this analysis. The 1st part shows 4DVAR setup information. Please note that while this version of the GSI includes a 4DVAR option, it remains untested. The general setup for the GSI analysis (3DVAR) is located in the \verb|&SETUP| section of the GSI namelist. Please check Appendix B for definitions and default values of each namelist variable. - -\begin{scriptsize} -\begin{verbatim} - GSI_4DVAR: nobs_bins = 1 - SETUP_4DVAR: l4dvar= F - SETUP_4DVAR: l4densvar= F - SETUP_4DVAR: winlen= 3.00000000000000 - SETUP_4DVAR: winoff= 3.00000000000000 - SETUP_4DVAR: hr_obsbin= 3.00000000000000 - SETUP_4DVAR: nobs_bins= 1 - SETUP_4DVAR: ntlevs_ens= 1 - SETUP_4DVAR: nsubwin,nhr_subwin= 1 3 - SETUP_4DVAR: lsqrtb= F - SETUP_4DVAR: lbicg= F - SETUP_4DVAR: lcongrad= F - SETUP_4DVAR: lbfgsmin= F - SETUP_4DVAR: ltlint= F - SETUP_4DVAR: ladtest,ladtest_obs,lgrtest= F F F - SETUP_4DVAR: iwrtinc= -1 - SETUP_4DVAR: lanczosave= F - SETUP_4DVAR: ltcost= F - SETUP_4DVAR: jsiga= -1 - SETUP_4DVAR: nwrvecs= -1 - SETUP_4DVAR: iorthomax= 0 - SETUP_4DVAR: liauon= F - SETUP_4DVAR: ljc4tlevs= F - SETUP_4DVAR: ibin_anl= 1 - in gsimod: use_gfs_stratosphere,nems_nmmb_regional,wrf_nmm_regional= F F F - GSIMOD: ***WARNING*** set l_cloud_analysis=false - INIT_OBSMOD_VARS: reset time window for one or more OBS_INPUT entries to - 1.50000000000000 - INIT_OBSMOD_VARS: ndat_times,ndat_types,ndat= 1 81 - 81 - INIT_OBSMOD_VARS: nhr_assimilation= 3 - GSIMOD: ***WARNING*** reset oberrflg= T -calling gsisub with following input parameters: - -&SETUP - GENCODE = 78.0000000000000 , - FACTQMIN = 0.000000000000000E+000, - FACTQMAX = 0.000000000000000E+000, - CLIP_SUPERSATURATION = F, - FACTV = 1.00000000000000 , - FACTL = 1.00000000000000 , - FACTP = 1.00000000000000 , - FACTG = 1.00000000000000 , - FACTW10M = 1.00000000000000 , - FACTHOWV = 1.00000000000000 , - R_OPTION = F, - DELTIM = 1200.00000000000 , - DTPHYS = 3600.00000000000 , - BIASCOR = -1.00000000000000 , - BCOPTION = 1, - DIURNALBC = 0.000000000000000E+000, - NITER = 0, 2*50, 48*0, - NITER_NO_QC = 51*1000000, - MITER = 2, - QOPTION = 2, - CWOPTION = 0, - NHR_ASSIMILATION = 3, - MIN_OFFSET = 180, - PSEUDO_Q2 = F, - IOUT_ITER = 220, - NPREDP = 6, - - - / - &GRIDOPTS - ... - &BKGERR - ... - &ANBKGERR - ... - &JCOPTS - ... - &STRONGOPTS - ... - &OBSQC - ... - &SUPEROB_RADAR - ... - &LAG_DATA - ... - &HYBRID_ENSEMBLE - ... - &RAPIDREFRESH_CLDSURF - ... - &CHEM - ... -\end{verbatim} -\end{scriptsize} -This version of GSI attempts to read multiple time level backgrounds for option FGAT (First Guess at Appropriate Time), however we only have provided one time level in this test case. Therefore, there is an error while reading background information: -\begin{scriptsize} -\begin{verbatim} -CONVERT_NETCDF_MASS: problem with flnm1 = wrf_inou1, Status = -1021 -\end{verbatim} -\end{scriptsize} - -We can ignore errors for missing files \textit{wrf\_inou1}, \textit{wrf\_inou2}, \ldots, and \textit{wrf\_inou9}, because we are only running 3DVAR with one background. - -Next, the background fields for the analysis are read in, and the maximum, minimum, and median values of the fields at each vertical level are displayed. Here, only part of the variables ZNU and T are shown, with all other variables read by the GSI listed solely as the variable name in the NetCDF file(rmse\_var = T). Maximum and minimum values are useful for a quick verification that the background fields have been read successfully. From this section, we also know the time (\verb|iy,m,d,h,m,s|) and dimension (\verb|nlon,lat,sig_regional|) of the background field. - -\begin{scriptsize} -\begin{verbatim} - dh1 = 3 - iy,m,d,h,m,s= 2014 6 17 0 0 - 0 - dh1 = 3 - rmse_var = SMOIS - ndim1 = 3 - ordering = XYZ - staggering = N/A - start_index = 1 1 1 0 - end_index = 332 215 4 0 - WrfType = 104 - ierr = 0 - rmse_var = T ndim1 = 3 dh1 = 3 - WrfType = 104 ierr = 0 - ordering = XYZ staggering = N/A - start_index = 1 1 1 0 - end_index = 332 215 50 0 - nlon,lat,sig_regional= 332 215 50 - rmse_var = P_TOP ndim1= 0 - WrfType = 104 WRF_REAL= 104 ierr = 0 - ordering = 0 staggering = N/A - start_index = 1 1 1 0 - end_index = 332 215 50 0 - p_top= 2000.000 -... -... - rmse_var = ZNU ndim1= 1 - WrfType = 104 WRF_REAL= 104 ierr = 0 - ordering = Z staggering = N/A - start_index = 1 1 1 0 - end_index = 50 215 50 0 - k,znu(k)= 1 0.9990000 - k,znu(k)= 2 0.9960001 - k,znu(k)= 3 0.9905000 -... -... - k,znu(k)= 49 7.1999999E-03 - k,znu(k)= 50 2.3500000E-03 - rmse_var = ZNW ndim1= 1 -... - rmse_var = RDX ndim1= 0 -... - rmse_var = RDY ndim1= 0 -... - rmse_var = MAPFAC_M ndim1= 2 -... - rmse_var = XLAT ndim1= 2 -... - rmse_var = XLONG ndim1= 2 -... - rmse_var = MUB ndim1= 2 -... - rmse_var = MU ndim1= 2 -... - rmse_var = PHB ndim1= 3 -... - rmse_var = T ndim1= 3 - WrfType = 104 WRF_REAL= 104 ierr = 0 - ordering = XYZ staggering = N/A - start_index = 1 1 1 0 - end_index = 332 215 50 0 - k,max,min,mid T= 1 321.5280 270.7682 309.0504 - k,max,min,mid T= 2 321.6272 270.9064 309.1002 - k,max,min,mid T= 3 321.4596 271.1610 309.1918 - k,max,min,mid T= 4 321.2505 271.6038 309.3501 - k,max,min,mid T= 5 321.6713 272.2668 309.4191 -... -... - k,max,min,mid T= 48 632.2557 567.8249 596.6701 - k,max,min,mid T= 49 659.2219 604.4777 630.4330 - k,max,min,mid T= 50 689.7565 646.8995 668.5146 - rmse_var = QVAPOR ndim1= 3 -... - rmse_var = U ndim1= 3 -... - rmse_var = V ndim1= 3 -... - rmse_var = XLAND ndim1= 2 -... - rmse_var = SEAICE ndim1= 2 -... - rmse_var = SST ndim1= 2 -... - rmse_var = IVGTYP ndim1= 2 -... - rmse_var = ISLTYP ndim1= 2 -... - rmse_var = VEGFRA ndim1= 2 -... - rmse_var = SNOW ndim1= 2 -... - rmse_var = U10 ndim1= 2 -... - rmse_var = V10 ndim1= 2 -... - rmse_var = SMOIS ndim1= 3 -... - rmse_var = TSLB ndim1= 3 -... - rmse_var = TSK ndim1= 2 -... - rmse_var = Q2 ndim1= 2 -... - rmse_var = QCLOUD ndim1= 3 -... - rmse_var = QRAIN ndim1= 3 -... - rmse_var = QSNOW ndim1= 3 -... - rmse_var = QICE ndim1= 3 -... - rmse_var = QGRAUP ndim1= 3 -... - rmse_var = QNRAIN ndim1= 3 -... - rmse_var = RAD_TTEN_DFI ndim1= 3 -... -\end{verbatim} -\end{scriptsize} - -For some variables, the following NETCDF error information might show up when they are not in the background fields. These errors don\textquotesingle t affect the GSI run so you can ignore them. - -\begin{scriptsize} -\begin{verbatim} - - rmse_var = QSNOW ndim1= 3 - WrfType = 104 WRF_REAL= 104 ierr = -1021 - ordering = XYZ staggering = N/A - start_index = 1 1 1 0 - end_index = 332 215 50 0 - NetCDF error: NetCDF: Variable not found - NetCDF error: NetCDF: Variable not found - NetCDF error in wrf_io.F90, line 2842 Varname QSNOW - NetCDF error in wrf_io.F90, line 2842 Varname QSNOW - -\end{verbatim} -\end{scriptsize} -Again, some error information on missing background files shows up. Ignore if you are not doing FGAT. -\begin{scriptsize} -\begin{verbatim} - CONVERT_NETCDF_MASS: problem with flnm1 = wrf_inou4, Status = -1021 -\end{verbatim} -\end{scriptsize} - -Following this is information on the byte order of the binary background files. Since we used a NetCDF file, there is no need to be concerned with byte order. When using a binary format background, byte-order can be a problem. Beginning with the release version v3.2, GSI can automatically check the background byte-order and read it in the right order: - -\begin{scriptsize} -\begin{verbatim} - in convert_regional_guess, for wrf arw binary input, byte_swap= F -\end{verbatim} -\end{scriptsize} -Information on setting the grid related variables, and the beginning and ending indices for thread one: -\begin{scriptsize} -\begin{verbatim} - INIT_GRID_VARS: number of threads 1 - INIT_GRID_VARS: for thread 1 jtstart,jtstop = 1 - 168 -\end{verbatim} -\end{scriptsize} -Information on the initial pointer location for each variable in the Jacobian for the use of satellite radiance data: -\begin{scriptsize} -\begin{verbatim} - Vars in Rad-Jacobian (dims) - -------------------------- - sst 0 - u 1 - v 2 - tv 3 - q 53 - oz 103 -\end{verbatim} -\end{scriptsize} -Starting subroutine \textit{gsisub} (major GSI control subroutine) and displaying the analysis and background file time (they should be the same): - -\begin{scriptsize} -\begin{verbatim} - -[000]gsisub(): : starting ... - READ_wrf_mass_FILES: analysis date,minutes 2014 6 - 17 0 0 19175040 - READ_wrf_mass_FILES: sigma guess file, nming2 0.000000000000000E+000 - 2014 6 17 0 0 19175040 - READ_wrf_mass_FILES: sigma fcst files used in analysis : 3 - 3.00000000000000 1 - READ_wrf_mass_FILES: surface fcst files used in analysis: 3 - 3.00000000000000 1 - GESINFO: Guess date is 0 6 17 2014 - 0.000000000000000E+000 - GESINFO: Analysis date is 2014 6 17 0 - 0 2014061700 3.00000000000000 - using restart file date = 2014 6 17 0 -\end{verbatim} -\end{scriptsize} -Read in radar location information and generate superobs for radar level-II radial velocity. This case didn\textquotesingle t have radar level-II velocity data linked, therefore there is warning about when opening the file, but this will not impact the rest of the GSI analysis. -\begin{scriptsize} -\begin{verbatim} - RADAR_BUFR_READ_ALL: analysis time is 2014 6 17 - 0 - RADAR_BUFR_READ_ALL: NO RADARS KEPT IN radar_bufr_read_all, - continue without level 2 data -\end{verbatim} -\end{scriptsize} - -Read in information from fix file \textit{scaninfo} (see table 3.2) and \textit{pcpinfo} (see table 3.2). - -\begin{scriptsize} -\begin{verbatim} -***WARNING file scaninfo not found, use default - CREATE_PCP_RANDOM: iseed= 2014061700 - PCPINFO_READ: no pcpbias file. set predxp=0.0 -\end{verbatim} -\end{scriptsize} -Read in and show the content of the conventional observation information file (\textit{convinfo}; see Section \ref{sec4.3} for details). Here is the part of the \textbf{stdout} file showing information from \textit{convinfo}: -\begin{tiny} -\begin{verbatim} - -READ_CONVINFO: tcp 112 0 1 3.00000 0 0 0 75.0000 5.00000 1.00000 75.0000 - 0.00000 0 0.00000 0.00000 0 0.00000 0.00000 2 -READ_CONVINFO: ps 120 0 1 3.00000 0 0 0 4.00000 3.00000 1.00000 4.00000 - 0.300000E-03 0 0.00000 0.00000 0 0.00000 0.00000 2 - -... - -READ_CONVINFO: t 120 0 1 3.00000 0 0 0 8.00000 5.60000 1.30000 8.00000 - 0.100000E-05 0 0.00000 0.00000 0 0.00000 0.00000 2 -READ_CONVINFO: t 126 0 -1 3.00000 0 0 0 8.00000 5.60000 1.30000 8.00000 - 0.100000E-02 0 0.00000 0.00000 0 0.00000 0.00000 2 - -... - -READ_CONVINFO: gps 729 0 -1 3.00000 0 0 0 10.0000 10.0000 1.00000 10.0000 - 0.00000 0 0.00000 0.00000 0 0.00000 0.00000 2 -READ_CONVINFO: gps 44 0 -1 3.00000 0 0 0 10.0000 10.0000 1.00000 10.0000 - 0.00000 0 0.00000 0.00000 0 0.00000 0.00000 2 - -\end{verbatim} -\end{tiny} -Starting subroutine \textit{glbsoi} with information on reading in background fields from the intermediate binary file \textit{sigf03} and partitioning the whole 2D field into subdomains for parallel analysis: - -\begin{scriptsize} -\begin{verbatim} - glbsoi: starting ... - gsi_metguess_mod*create_: alloc() for met-guess done - guess_grids*create_chemges_grids: trouble getting number of chem/gases - at 0 in read_wrf_mass_guess - at 0.1 in read_wrf_mass_guess - at 1 in read_wrf_mass_guess, lm = 50 - at 1 in read_wrf_mass_guess, num_mass_fields= 215 - at 1 in read_wrf_mass_guess, nfldsig = 1 - at 1 in read_wrf_mass_guess, num_all_fields= 215 - at 1 in read_wrf_mass_guess, npe = 4 - at 1 in read_wrf_mass_guess, num_loc_groups= 53 - at 1 in read_wrf_mass_guess, num_all_pad = 216 - at 1 in read_wrf_mass_guess, num_loc_groups= 54 - READ_WRF_MASS_GUESS: open lendian_in= 15 to file=sigf03 - READ_WRF_MASS_GUESS: open lendian_in= 15 to file=sigf03 - in read_wrf_mass_guess, num_doubtful_sfct_all = 0 - in read_wrf_mass_guess, num_doubtful_sfct_all = 0 - -\end{verbatim} -\end{scriptsize} - -Show observation observer as successfully initialized and inquire about the control vectors (space for analysis variables). - -\begin{scriptsize} -\begin{verbatim} - observer_init: successfully initialized - control_vectors: length= 5613648 - control_vectors: currently allocated= 0 - control_vectors: maximum allocated= 0 - control_vectors: number of allocates= 0 - control_vectors: number of deallocates= 0 -control_vectors: Estimated max memory used= 0.0 Mb -\end{verbatim} -\end{scriptsize} -Show the source of observation error used in the analysis (details see Section \ref{sec4.7.1}): -\begin{scriptsize} -\begin{verbatim} - CONVERR: using observation errors from user provided table -\end{verbatim} -\end{scriptsize} - -The following information is related to the observation ingest processes, which is distributed over all the processors with each processor reading in at least one observation type. To speed up the reading process, some of the large datasets will use more than one (ntasks) processor for the ingest process. - -Before reading in data from BUFR files, GSI checks the file status to insure the observation time matches the analysis time and whether the namelist option \textit{offtime\_data} is set (can be used to turn off the time consistency check between observation and analysis time). This step also checks for consistency between the satellite radiance data types in the BUFR files and the usage setups in the \textit{satinfo} files. The following shows \textbf{stdout} information from this step: - -\begin{scriptsize} -\begin{verbatim} - read_obs_check: bufr file date is 2014061700 prepbufr ps - read_obs_check: bufr file uv not available satwndbufr - read_obs_check: bufr file rw not available radarbufr - read_obs_check: bufr file pcp_tmi trmm not available tmirrbufr - read_obs_check: bufr file hirs3 n17 not available hirs3bufr - read_obs_check: bufr file goes_img g11 not available gimgrbufr - read_obs_check: bufr file date is 2014061700 prepbufr q - read_obs_check: bufr file date is 2014061700 prepbufr t - read_obs_check: bufr file date is 2014061700 amsuabufr amsua n18 - read_obs_check: bufr file amsua n18 not available amsuabufrears - -... -... - - read_obs_check: bufr file sndrd3 g15 not available gsnd1bufr - read_obs_check: bufr file omi aura not available omibufr - read_obs_check: bufr file seviri m09 not available seviribufr - read_obs_check: bufr file atms npp not available atmsbufr - read_obs_check: bufr file date is 2014061700 prepbufr sst - -... -... - - read_obs_check: bufr file seviri m08 not available seviribufr - read_obs_check: bufr file gome metop-b not available gomebufr - read_obs_check: bufr file uv not available oscatbufr - data type mta_cld not used in info file -- do not read file - prepbufr - data type gos_ctp not used in info file -- do not read file - prepbufr - data type rad_ref not used in info file -- do not read file - refInGSI - data type lghtn not used in info file -- do not read file - lghtInGSI - data type larccld not used in info file -- do not read file - larcInGSI -\end{verbatim} -\end{scriptsize} - -The list of observation types that were read in and processors used to read them: - -\begin{scriptsize} -\begin{verbatim} - number of extra processors 1 - READ_OBS: read 33 mhs mhs_n18 using ntasks= 2 0 131 0 - READ_OBS: read 34 mhs mhs_n19 using ntasks= 2 2 153 0 - READ_OBS: read 35 mhs mhs_metop-a using ntasks= 2 0 563 0 - READ_OBS: read 36 mhs mhs_metop-b using ntasks= 2 2 2 0 - READ_OBS: read 1 ps ps using ntasks= 1 0 0 0 - READ_OBS: read 2 t t using ntasks= 1 1 0 0 - READ_OBS: read 3 q q using ntasks= 1 2 0 0 - READ_OBS: read 4 pw pw using ntasks= 1 3 839 0 - READ_OBS: read 6 uv uv using ntasks= 1 0 0 0 - READ_OBS: read 10 sst sst using ntasks= 1 1 504 0 - READ_OBS: read 11 gps_ref gps using ntasks= 1 2 0 0 - READ_OBS: read 19 hirs4 hirs4_metop-a using ntasks= 2 3 277 0 - READ_OBS: read 21 hirs4 hirs4_n19 using ntasks= 1 0 75 0 - READ_OBS: read 22 hirs4 hirs4_metop-b using ntasks= 1 1 2 0 - READ_OBS: read 26 amsua amsua_n15 using ntasks= 1 2 27 0 - READ_OBS: read 27 amsua amsua_n18 using ntasks= 1 3 45 0 - READ_OBS: read 28 amsua amsua_n19 using ntasks= 1 0 47 0 - READ_OBS: read 29 amsua amsua_metop-a using ntasks= 1 1 124 0 - READ_OBS: read 30 amsua amsua_metop-b using ntasks= 1 2 2 0 -\end{verbatim} -\end{scriptsize} -Display basic statistics for full horizontal surface fields (If radiance BUFR files are not linked, this section will not be in the \textbf{stdout} file): - -\begin{scriptsize} -\begin{verbatim} - GETSFC: enter with nlat_sfc,nlon_sfc= 0 0 and nlat,nlon= - 215 332 - GETSFC: set nlat_sfc,nlon_sfc= 215 332 -================================================================================ -Status Var Mean Min Max -sfcges2 FC10 1.000000000000E+00 1.000000000000E+00 1.000000000000E+00 -sfcges2 SNOW 8.137817211798E-02 0.000000000000E+00 9.510296630859E+01 -sfcges2 VFRC 1.701514588514E-01 0.000000000000E+00 9.899999499321E-01 -sfcges2 SRGH 5.003234230527E-02 5.000000074506E-02 5.000000074506E-02 -sfcges2 STMP 2.936729335948E+02 2.643117675781E+02 3.229424743652E+02 -sfcges2 SMST 7.664003944557E-01 6.047149747610E-02 1.000000000000E+00 -sfcges2 SST 2.942266741384E+02 2.688000183105E+02 3.240092468262E+02 -sfcges2 VTYP 1.463281031101E+01 1.000000000000E+00 2.400000000000E+01 -sfcges2 ISLI 3.405295601009E-01 0.000000000000E+00 2.000000000000E+00 -sfcges2 STYP 1.137135051835E+01 1.000000000000E+00 1.600000000000E+01 -================================================================================ -\end{verbatim} -\end{scriptsize} -Loop over all data files to read in observations, also read in rejection list for surface observations and show GPS observations outside the time window: - -\begin{tiny} -\begin{verbatim} - READ_BUFRTOVS : file=mhsbufr type=mhs sis=mhs_n18 nread= 248485 ithin= 2 - rmesh= 60.000000 isfcalc= 0 ndata= 26765 ntask= 2 - READ_BUFRTOVS : file=mhsbufr type=mhs sis=mhs_n19 nread= 60900 ithin= 2 - rmesh= 60.000000 isfcalc= 0 ndata= 6725 ntask= 2 - READ_BUFRTOVS : file=mhsbufr type=mhs sis=mhs_metop-a nread= 142555 ithin= 2 - rmesh= 60.000000 isfcalc= 0 ndata= 15145 ntask= 2 - READ_BUFRTOVS : file=mhsbufr type=mhs sis=mhs_metop-b nread= 113590 ithin= 2 - rmesh= 60.000000 isfcalc= 0 ndata= 12185 ntask= 2 - READ_PREPBUFR: messages/reports = 142 / 20925 ntread = - 1 - new vad flag:: F - READ_PREPBUFR : file=prepbufr type=pw sis=pw nread= 252 ithin= 0 rmesh= - 120.000000 isfcalc= 0 ndata= 252 ntask= 1 - READ_PREPBUFR: messages/reports = 682 / 67083 ntread = - 1 - READ_PREPBUFR: time offset is 3.00000000000000 hours. - new vad flag:: F - READ_PREPBUFR: messages/reports = 682 / 67083 ntread = - 1 - mesonetuselist: listexist,nprov= F 0 - w_rejectlist: wlistexist,nwrjs= F 0 - t_rejectlist: tlistexist,ntrjs= F 0 - -... - - READ_PREPBUFR : file=prepbufr type=ps sis=ps nread= 23868 ithin= 0 rmesh= - 120.000000 isfcalc= 0 ndata= 15819 ntask= 1 - READ_PREPBUFR : file=prepbufr type=t sis=t nread= 26296 ithin= 0 rmesh= - 120.000000 isfcalc= 0 ndata= 25686 ntask= 1 - READ_PREPBUFR : file=prepbufr type=sst sis=sst nread= 0 ithin= 0 rmesh= - 120.000000 isfcalc= 0 ndata= 0 ntask= 1 - READ_PREPBUFR : file=prepbufr type=q sis=q nread= 24461 ithin= 0 rmesh= - 120.000000 isfcalc= 0 ndata= 20989 ntask= 1 - - .. - - READ_BUFRTOVS : file=hirs4bufr type=hirs4 sis=hirs4_n19 nread= 55613 ithin= 2 rmesh= - 60.000000 isfcalc= 0 ndata= 23408 ntask= 1 - READ_BUFRTOVS : file=amsuabufr type=amsua sis=amsua_n19 nread= 20370 ithin= 2 - rmesh= 60.000000 isfcalc= 0 ndata= 16912 ntask= 1 -\end{verbatim} -\end{tiny} - -Using the above output information, many details on the observations can be obtained. For example, the last line indicates that subroutine \textit{READ\_BUFRTOVS} was called to read in NOAA-19 AMSU-A (\verb|sis=amsua_n19|) data from the BUFR file \textit{amsuabufr} (\verb|file=amsuabufr|). Furthermore, there are 20370 observations in this file (\verb|nread=20370|) and 16912 in the analysis domain and within the time window (\verb|ndata=16912|). The data was thinned on a 60 km coarse grid (\verb|rmesh=60.000000|). - -The next step partitions observations into subdomains. The observation distribution is summarized below by listing the number of observations for each variable per subdomain (see Section \ref{sec4.4} for more information): - -\begin{scriptsize} -\begin{verbatim} - -OBS_PARA: ps 1429 3190 4655 6774 -OBS_PARA: t 2564 5200 7057 11128 -OBS_PARA: q 2346 4626 6148 8128 -OBS_PARA: pw 65 80 63 49 -OBS_PARA: uv 3358 6453 8091 11998 -OBS_PARA: gps_ref 1799 1368 2664 3520 -OBS_PARA: hirs4 metop-a 0 0 1146 1661 -OBS_PARA: hirs4 n19 213 1020 0 0 -OBS_PARA: hirs4 metop-b 0 0 85 555 -OBS_PARA: amsua n15 1458 2026 830 234 -OBS_PARA: amsua n18 2223 2318 108 0 -OBS_PARA: amsua n19 176 960 0 0 -OBS_PARA: amsua metop-a 0 0 1077 1559 -OBS_PARA: amsua metop-b 0 0 265 1829 -OBS_PARA: mhs n18 2550 2695 160 0 -OBS_PARA: mhs n19 246 1103 0 0 -OBS_PARA: mhs metop-a 0 0 1237 1809 -OBS_PARA: mhs metop-b 0 0 321 2128 - -\end{verbatim} -\end{scriptsize} -Information on ingesting background error statistics: -\begin{scriptsize} -\begin{verbatim} - m_berror_stats_reg::berror_read_bal_reg(PREBAL_REG): get balance variables" - berror_stats". mype,nsigstat,nlatstat = 0 60 93 - m_berror_stats_reg::berror_read_wgt_reg(PREWGT_REG): read error amplitudes " - berror_stats". mype,nsigstat,nlatstat = 0 60 93 - Assigned default statistics to variable oz - Assigned default statistics to variable cw -\end{verbatim} -\end{scriptsize} - -From this point forward in the \textbf{stdout} file, the output shows many repeated entries. This is because the information is written from inside the outer loop. Typically the outer loop is run twice. - -For each outer loop, the work begins with the calculation of the observation innovation. This calculation is done by the subroutine \textbf{setuprhsall}, which sets up the right hand side (rhs) of the analysis equation. This information is contained within the \textbf{stdout} file, which is shown in the following sections: - -Start the first outer analysis loop: - -\begin{scriptsize} -\begin{verbatim} - GLBSOI: jiter,jiterstart,jiterlast,jiterend= 1 1 - 2 1 -\end{verbatim} -\end{scriptsize} -Calculate observation innovation for each data type in the first outer loop: - -\begin{scriptsize} -\begin{verbatim} - SETUPALL:,obstype,isis,nreal,nchanl= ps ps 20 0 - SETUPALL:,obstype,isis,nreal,nchanl= t t 25 0 - SETUPALL:,obstype,isis,nreal,nchanl= q q 26 0 - SETUPALL:,obstype,isis,nreal,nchanl= pw pw 20 0 - SETUPALL:,obstype,isis,nreal,nchanl= uv uv 25 0 - SETUPALL:,obstype,isis,nreal,nchanl= gps_ref gps 16 0 - SETUPALL:,obstype,isis,nreal,nchanl= hirs4 hirs4_n19 33 19 - 0 setuprad: passive obs 21 hirs4_n19 - crtm_interface*init_crtm: crtm_init() on path "./" - SpcCoeff_ReadFile(Binary)(INFORMATION) : FILE: ./hirs4_n19.SpcCoeff.bin; ^M - SpcCoeff RELEASE.VERSION: 8.03^M - N_CHANNELS=19 - Read_ODPS_Binary(INFORMATION) : FILE: ./hirs4_n19.TauCoeff.bin; ^M - ODPS RELEASE.VERSION: 2.01 N_LAYERS=100 N_COMPONENTS=5 N_ABSORBERS=3 N_CHANNELS=19 N_COEFFS=82000 - SEcategory_ReadFile(INFORMATION) : FILE: ./NPOESS.IRland.EmisCoeff.bin; ^M - SEcategory RELEASE.VERSION: 3.01^M - CLASSIFICATION: NPOESS, N_FREQUENCIES=20 N_SURFACE_TYPES=20 - SETUPALL:,obstype,isis,nreal,nchanl= hirs4 hirs4_metop-a 33 19 - crtm_interface*init_crtm: crtm_init() on path "./" -... -... -\end{verbatim} -\end{scriptsize} -In the above section, when computing the radiance observation innovation, information on reading in CRTM coefficients follows SETUPALL information. In the \textbf{stdout} file, only information related to available radiance data are printed. The complete innovation information can be found in the diagnostic files for each observation (for details see Appendix A.2): - -\begin{scriptsize} -\begin{verbatim} -... -... - FitCoeff_ReadFile(INFORMATION) : FILE: ./FASTEM6.MWwater.EmisCoeff.bin; ^M - FitCoeff RELEASE.VERSION : 1.6; DIMENSIONS= 3, 6, 2 - MWwaterCoeff_ReadFile(INFORMATION) : FILE: ./FASTEM6.MWwater.EmisCoeff.bin; ^M - MWwaterCoeff RELEASE.VERSION: 1.6 - SETUPRAD: write header record for mhs_n19 12 30 - 8 0 0 22 4 30303 - to file pe0000.mhs_n19_01 2014061700 -\end{verbatim} -\end{scriptsize} -The inner iteration of the first outer loop is discussed in the example below. In this example, the maximum number of iterations is 50. - -Print cost function values for each inner iteration (see section \ref{sec4.6} for more details): - -\begin{tiny} -\begin{verbatim} - GLBSOI: START pcgsoi jiter= 1 -pcgsoi: gnorm(1:2),b= 2.767403469782257162E+03 2.767403469782257162E+03 0.000000000000000000E+00 - Begin J table inner/outer loop 0 1 - J term J -surface pressure 5.7012207042385944E+03 -temperature 6.4242087278840627E+03 -wind 1.6782607330525603E+04 -moisture 3.5878183830232451E+03 -gps 7.8814883785376896E+03 -radiance 3.4334884315701471E+04 - ----------------------------------------------------- - J Global 7.4712227839910673E+04 - End Jo table inner/outer loop 0 1 -Initial cost function = 7.471222783991067263E+04 -Initial gradient norm = 5.260611627731377382E+01 -cost,grad,step,b,step? = 1 0 7.471222783991067263E+04 5.260611627731377382E+01 1.717817994849075269E+00 0.000000000000000000E+00 good -pcgsoi: gnorm(1:2),b= 1.754232612149755596E+03 1.754232612149755141E+03 6.338911659627933792E-01 -cost,grad,step,b,step? = 1 1 6.995833236051093263E+04 4.188356016565158058E+01 4.106937422100393142E+00 6.338911659627933792E-01 good -pcgsoi: gnorm(1:2),b= 1.216588309725912268E+03 1.216588309725912268E+03 6.935159575188962755E-01 -cost,grad,step,b,step? = 1 2 6.275380879860417917E+04 3.487962599750622417E+01 2.174716042085542700E+00 6.935159575188962755E-01 good -pcgsoi: gnorm(1:2),b= 1.156766558917323891E+03 1.156766558917324346E+03 9.508282708864222998E-01 -cost,grad,step,b,step? = 1 3 6.010807468482949480E+04 3.401127105706759579E+01 2.916832102067935306E+00 9.508282708864222998E-01 good -pcgsoi: gnorm(1:2),b= 6.945724726018979709E+02 6.945724726018985393E+02 6.004430775142600707E-01 -... -... -cost,grad,step,b,step? = 1 49 4.142785387197384262E+04 1.680503228207865574E+00 2.338314294416948602E+00 1.076393393015242506E+00 good -pcgsoi: gnorm(1:2),b= 1.980029522220628557E+00 1.980029522219752591E+00 7.011209809087933786E-01 -cost,grad,step,b,step? = 1 50 4.142125025938593171E+04 1.407135218172236746E+00 5.458012252072157899E+00 7.011209809087933786E-01 good - update_guess: successfully complete -\end{verbatim} -\end{tiny} -At the end of the 1\textsuperscript{st} outer loop, print some diagnostics about the analysis increments as well as information on the guess fields after adding the analysis increments to the background: -\begin{scriptsize} -\begin{verbatim} -================================================================================ -Status Var Mean Min Max -analysis U 3.027810174754E+00 -4.616646796505E+01 6.874148210358E+01 -analysis V -2.783966384966E-02 -6.673607446514E+01 6.206906140999E+01 -analysis TV 2.466648731614E+02 1.909849532362E+02 3.159577451606E+02 -analysis Q 2.789588139811E-03 1.000000000000E-07 2.260955460480E-02 -analysis TSEN 2.461750146062E+02 1.909846857229E+02 3.153599236074E+02 -analysis OZ 1.000000000007E-15 1.000000000000E-15 1.000000000000E-15 -analysis CW 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -analysis DIV 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -analysis VOR 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -analysis PRSL 4.154470108570E+01 2.152367800892E+00 1.028272918117E+02 -analysis PS 9.910751025141E+01 6.684714489139E+01 1.029767184368E+02 -analysis SST 2.942451749464E+02 2.688000183105E+02 3.240092468262E+02 -analysis radb 6.939468963354E-02 -1.373884240000E+02 1.230549030000E+02 -analysis pcpb 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -analysis aftb 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -================================================================================ -increment u 6.699567621553E-04 -1.360159370531E+01 7.008598936474E+00 -increment v 1.598741317770E-03 -9.984198525101E+00 8.688133965521E+00 -increment tv -5.436012894801E-04 -2.969908758852E+00 4.753382796517E+00 -increment tsen 4.740094380224E-04 -2.966625119631E+00 4.955252532399E+00 -increment q -5.666454694731E-06 -4.783507458114E-03 4.607810408495E-03 -increment oz 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -increment cw 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -increment prse 4.684195247526E-03 -8.941125614721E-02 1.065972973935E-01 -increment ps 1.145022012350E-02 -8.941125614721E-02 1.065972973935E-01 -increment sst 2.337322205329E-02 -5.017646098146E-01 1.017498439243E+00 -\end{verbatim} -\end{scriptsize} -Start the second outer loop. -\begin{scriptsize} -\begin{verbatim} - GLBSOI: jiter,jiterstart,jiterlast,jiterend= 2 1 - 2 1 -\end{verbatim} -\end{scriptsize} -Calculate observation innovations for each data type in the second outer loop: -\begin{scriptsize} -\begin{verbatim} - SETUPALL:,obstype,isis,nreal,nchanl= ps ps 20 0 - SETUPALL:,obstype,isis,nreal,nchanl= t t 25 0 - SETUPALL:,obstype,isis,nreal,nchanl= q q 26 0 -... -\end{verbatim} -\end{scriptsize} - -When calculating the radiance data innovation, there is no need to read in CRTM coefficients again because they were already read in during the first outer loop: -\begin{scriptsize} -\begin{verbatim} - SETUPALL:,obstype,isis,nreal,nchanl= ps ps 20 0 - SETUPALL:,obstype,isis,nreal,nchanl= t t 25 0 - SETUPALL:,obstype,isis,nreal,nchanl= q q 26 0 - SETUPALL:,obstype,isis,nreal,nchanl= pw pw 20 0 - SETUPALL:,obstype,isis,nreal,nchanl= uv uv 25 0 - SETUPALL:,obstype,isis,nreal,nchanl= gps_ref gps 16 0 - SETUPALL:,obstype,isis,nreal,nchanl= hirs4 hirs4_n19 33 19 - 0 setuprad: passive obs 21 hirs4_n19 - SETUPALL:,obstype,isis,nreal,nchanl= hirs4 hirs4_metop-a 33 19 - SETUPALL:,obstype,isis,nreal,nchanl= amsua amsua_n15 33 15 - SETUPALL:,obstype,isis,nreal,nchanl= amsua amsua_n18 33 15 - SETUPALL:,obstype,isis,nreal,nchanl= hirs4 hirs4_metop-b 33 19 - SETUPALL:,obstype,isis,nreal,nchanl= amsua amsua_metop-a 33 15 - SETUPALL:,obstype,isis,nreal,nchanl= amsua amsua_n19 33 15 - SETUPALL:,obstype,isis,nreal,nchanl= amsua amsua_metop-b 33 15 - SETUPALL:,obstype,isis,nreal,nchanl= mhs mhs_n18 33 5 - SETUPALL:,obstype,isis,nreal,nchanl= mhs mhs_metop-a 33 5 - SETUPALL:,obstype,isis,nreal,nchanl= mhs mhs_metop-b 33 5 - SETUPALL:,obstype,isis,nreal,nchanl= mhs mhs_n19 33 5 -\end{verbatim} -\end{scriptsize} - -The output from the inner iterations in the second outer loop is shown below. In this example, the maximum number of iterations is 50. - -Print cost function values for each inner iteration (see section \ref{sec4.6} for more details): - -\begin{tiny} -\begin{verbatim} - GLBSOI: START pcgsoi jiter= 2 -pcgsoi: gnorm(1:2),b= 9.125529304049867960E+02 9.125529304049867960E+02 0.000000000000000000E+00 - Begin J table inner/outer loop 0 2 - J term J -background 5.1520678195203345E+03 -surface pressure 4.1180289830866377E+03 -temperature 4.3079774551559522E+03 -wind 1.0714401927194920E+04 -moisture 1.3696062777723114E+03 -gps 3.1175680587783127E+03 -radiance 2.4255186183427002E+04 - ----------------------------------------------------- - J Global 5.3034836704935471E+04 - End Jo table inner/outer loop 0 2 -Initial cost function = 5.303483670493547106E+04 -Initial gradient norm = 3.020849103157896565E+01 -cost,grad,step,b,step? = 2 0 5.303483670493547106E+04 3.020849103157896565E+01 1.417696886759607366E+00 0.000000000000000000E+00 good -pcgsoi: gnorm(1:2),b= 3.752399307247351885E+02 3.752399307247339380E+02 4.111979899710630493E-01 -cost,grad,step,b,step? = 2 1 5.174111325649695937E+04 1.937111072511680021E+01 5.251908998246061167E+00 4.111979899710630493E-01 good -pcgsoi: gnorm(1:2),b= 2.403892651142143109E+02 2.403892651142157320E+02 6.406281566301591512E-01 -cost,grad,step,b,step? = 2 2 4.977038728782249382E+04 1.550449177219989672E+01 3.447718424869901543E+00 6.406281566301591512E-01 good -pcgsoi: gnorm(1:2),b= 3.513995903418547186E+02 3.513995903418544913E+02 1.461794020522907633E+00 -cost,grad,step,b,step? = 2 3 4.894159278934728354E+04 1.874565523906419173E+01 1.888694950411589302E+00 1.461794020522907633E+00 good -... -... -pcgsoi: gnorm(1:2),b= 4.240269047847287087E-01 4.240269047846388362E-01 8.928029496575288215E-01 -cost,grad,step,b,step? = 2 49 4.549093632176067331E+04 6.511734828636134287E-01 3.659140330083644699E+00 8.928029496575288215E-01 good -pcgsoi: gnorm(1:2),b= 3.162643690270069974E-01 3.162643690267226138E-01 7.458592024656659492E-01 -cost,grad,step,b,step? = 2 50 4.548938474781232799E+04 5.623738694383008108E-01 3.375651104905403432E+00 7.458592024656659492E-01 good - update_guess: successfully complete -\end{verbatim} -\end{tiny} - -Diagnostics of the analysis results after adding the analysis increment to the guess, as well as diagnostics about the analysis increments: -\begin{scriptsize} -\begin{verbatim} -================================================================================ -Status Var Mean Min Max -analysis U 3.031191508676E+00 -4.617266089077E+01 6.889816661368E+01 -analysis V -2.943556460524E-02 -6.653467898266E+01 6.166408410383E+01 -analysis TV 2.467118072154E+02 1.909576489123E+02 3.159594232825E+02 -analysis Q 2.792097480151E-03 1.000000000000E-07 2.263794691793E-02 -analysis TSEN 2.462214978004E+02 1.909573814527E+02 3.153808896427E+02 -analysis OZ 1.000000000007E-15 1.000000000000E-15 1.000000000000E-15 -analysis CW 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -analysis DIV 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -analysis VOR 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -analysis PRSL 4.154936446270E+01 2.152390788296E+00 1.028757430184E+02 -analysis PS 9.910817481416E+01 6.684789651716E+01 1.029802303066E+02 -analysis SST 2.942451749464E+02 2.688000183105E+02 3.240092468262E+02 -analysis radb 6.938254104671E-02 -1.373884240000E+02 1.230549030000E+02 -analysis pcpb 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -analysis aftb 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -================================================================================ -increment u 3.381333921427E-03 -1.617060550844E+00 3.067216672606E+00 -increment v -1.595900755559E-03 -2.932441477540E+00 1.626847973396E+00 -increment tv 4.693405394733E-02 -9.818098783002E-01 2.215784626624E+00 -increment tsen 4.648264962860E-02 -9.818069362856E-01 2.215777805989E+00 -increment q 2.508348182621E-06 -2.410389935149E-03 1.663695364258E-03 -increment oz 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -increment cw 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 -increment prse 2.718674106775E-04 -5.539352084836E-02 4.239997318097E-02 -increment ps 6.645627545749E-04 -5.539352084836E-02 4.239997318097E-02 -increment sst -2.077555444927E-03 -3.656869699698E-01 7.433384932582E-01 -\end{verbatim} -\end{scriptsize} - -Because the outer loop is set to two, the completion of the 2\textsuperscript{nd} outer loop marks the end of the analysis. The next step is to save the analysis results. Again, only a portion of variable "T" is shown and all other variables are listed according to variable name in the NetCDF file (\verb|rmse_var = T|). The maximum and minimum values are useful information for a quick sanity check of the analysis: - -\begin{scriptsize} -\begin{verbatim} - at 2 in wrwrfmassa - update sigf03 - at 3 in wrwrfmassa - at 6 in wrwrfmassa - at 10.11 in wrwrfmassa,max,min(temp1)= 2.1931874E-02 1.3461057E-03 - at 10.12 in wrwrfmassa,max,min(tempa)= 0.0000000E+00 0.0000000E+00 - at 10.13 in wrwrfmassa,max,min(tempa)= 0.0000000E+00 -2.1931874E-02 - at 10.14 in wrwrfmassa,max,min(temp1)= 0.0000000E+00 0.0000000E+00 - iy,m,d,h,m,s= 2014 6 17 0 0 - 0 - nlon,lat,sig_regional= 332 215 50 - rmse_var=P_TOP - ordering=0 - WrfType,WRF_REAL= 104 104 - ndim1= 0 - staggering= N/A - start_index= 1 1 1 0 - end_index1= 332 215 50 0 - p_top= 2000.000 - rmse_var=MUB - ordering=XY - WrfType,WRF_REAL= 104 104 - ndim1= 2 - staggering= N/A - start_index= 1 1 1 0 - end_index1= 332 215 50 0 - max,min MUB= 98672.59 63425.52 - max,min psfc= 102799.7 66795.70 - max,min MU= 2799.734 -1187.844 - rmse_var=MU - ordering=XY - WrfType,WRF_REAL= 104 104 - ndim1= 2 - staggering= N/A - start_index= 1 1 1 0 - end_index1= 332 215 50 0 - k,max,min,mid T= 1 321.6379 270.7839 309.3401 - k,max,min,mid T= 2 321.7433 270.9335 309.3846 - k,max,min,mid T= 3 321.4780 271.1794 309.3658 -... - - k,max,min,mid T= 49 662.7022 604.6494 637.0358 - k,max,min,mid T= 50 693.4219 647.1161 675.5701 - - rmse_var=T -... - rmse_var=QVAPOR -... - rmse_var=U -... - rmse_var=V -... - rmse_var=SEAICE -... - rmse_var=SST -... - rmse_var=TSK -... - rmse_var=Q2 -... -\end{verbatim} -\end{scriptsize} -After completion of the analysis, the subroutine "setuprhsall" is called again if \verb|write_diag(3)=.true.|, to calculate analysis and O-A information (this marks the third time this information is presented): -\begin{scriptsize} -\begin{verbatim} - - SETUPALL:,obstype,isis,nreal,nchanl= ps ps 20 0 - SETUPALL:,obstype,isis,nreal,nchanl= t t 25 0 - SETUPALL:,obstype,isis,nreal,nchanl= q q 26 0 - SETUPALL:,obstype,isis,nreal,nchanl= pw pw 20 0 - SETUPALL:,obstype,isis,nreal,nchanl= uv uv 25 0 - SETUPALL:,obstype,isis,nreal,nchanl= gps_ref gps 16 0 - SETUPALL:,obstype,isis,nreal,nchanl= hirs4 hirs4_n19 33 19 - 0 setuprad: passive obs 21 hirs4_n19 - SETUPRAD: write header record for hirs4_n19 12 30 - 8 0 0 22 4 30303 - to file pe0000.hirs4_n19_03 2014061700 - SETUPALL:,obstype,isis,nreal,nchanl= hirs4 hirs4_metop-a 33 19 - SETUPRAD: write header record for hirs4_metop-a 12 30 - 8 0 0 22 4 30303 - -\end{verbatim} -\end{scriptsize} -Deallocate the data arrays and finalize the GSI run: -\begin{scriptsize} -\begin{verbatim} - gsi_metguess_mod*destroy_: dealloc() for met-guess done - observer_final: successfully finalized - glbsoi: complete -[000]gsisub(): : complete. -\end{verbatim} -\end{scriptsize} -The end of the GSI analysis (reaching this point does not necessarily guarantee a successful analysis), which shows the date and time when GSI finished and some additional resource statistics: -\begin{scriptsize} -\begin{verbatim} - ENDING DATE-TIME JUL 02,2016 20:43:40.422 184 SAT 2457572 - PROGRAM GSI_ANL HAS ENDED. -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . -*****************RESOURCE STATISTICS******************************* -The total amount of wall time = 438.663534 -The total amount of time in user mode = 427.578998 -The total amount of time in sys mode = 9.457562 -The maximum resident set size (KB) = 2020132 -Number of page faults without I/O activity = 312762 -Number of page faults with I/O activity = 0 -Number of times filesystem performed INPUT = 0 -Number of times filesystem performed OUTPUT = 0 -Number of Voluntary Context Switches = 7641 -Number of InVoluntary Context Switches = 851 -*****************END OF RESOURCE STATISTICS************************* -\end{verbatim} -\end{scriptsize} - -Different GSI applications may write out slightly different \textbf{stdout} file information but the major flow and information are the same. A good knowledge of the \textbf{stdout} file gives users a clear picture of how GSI runs and the key information provided during a GSI run like data distribution and inner iterations. - - -%------------------------------------------------------------------------------- -\section{Single Observation Test} -\label{sec4.2} -%------------------------------------------------------------------------------- - -A single observation test is a GSI where only one (pseudo) observation is assimilated from a specific time and location within the analysis domain. By examining the analysis increments from a single observation test, one can visualize the important features of the analysis, such as the ratio of background error and observation error variance and the pattern of the background error covariance. Therefore, the single observation test is the first thing that users should run after successfully installing the GSI. - -%------------------------------------------------------------------------------- -\subsection{Setup a Single Observation Test} -%------------------------------------------------------------------------------- - -To perform the single observation test with the GSI, the following GSI namelist variables need to be set, which should be done through editing the script \textit{run/comgsi\_namelist.sh}: - -Under the \verb|&SETUP| section, turn on the single observation test: - -\begin{scriptsize} -\begin{verbatim} -oneobtest=.true., -\end{verbatim} -\end{scriptsize} - -under the \verb|&SINGLEOB_TEST| section, set up single observation features like: - -\begin{scriptsize} -\begin{verbatim} -maginnov=1.0, -magoberr=0.8, -oneob_type='t', -oblat=38., -oblon=262., -obpres=500., -obdattim= 2014061700, -obhourset=0., -\end{verbatim} -\end{scriptsize} - -Note: - -\begin{itemize} -\item Please check Appendix C in the User\textquotesingle s Guide for the explanation of each parameter. From these parameters, we can see that a useful observation in the analysis should include information like the observation type (\verb|oneob_type|), value (\verb|maginnov|), observation error (\verb|magoberr|), location (\verb|oblat|, \verb|oblong|, \verb|obpres|), and time (\verb|obdattim|, \verb|obhourset|). Users can dump out (use \textit{ncdump}) the global attributes from the NetCDF background file and set \verb|oblat|=\textit{CEN\_LAT}, \verb|oblong|=\textit{360-CEN\_LON} to have the observation at the center of the domain. -\item In the analysis, the GSI first generates a prepbufr file including only one observation based on the information given in the namelist \verb|&SINGLEOB_TEST| section. To generate this prepbufr file, the GSI needs to read in a PrepBUFR table, which is not needed when running a GSI analysis with real observations. The BUFR table is in the \textit{fix/} directory and needs to be copied to the run directory. We have put the following lines in the GSI run script for the single observation test: -\begin{scriptsize} -\begin{verbatim} - bufrtable=${FIX_ROOT}/prepobs_prep.bufrtable - cp $bufrtable ./prepobs_prep.bufrtable -\end{verbatim} -\end{scriptsize} -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Examples of Single Observation Tests for GSI} -%------------------------------------------------------------------------------- - -Figure \ref{fig:singleobs} is a single observation test that has a temperature observation (\verb|oneob_type='t'|) with a one degree innovation (\verb|maginnov=1.0|) and a 0.8 degree observation error (\verb|magoberr=0.8|). The background error covariance converted from global (GFS) BE was picked to provide for better illustration. - -\begin{figure}[h!] - \centering - \includegraphics[width=0.7\textwidth]{images/SingleObs} - \caption{Horizontal cross sections (left column) and vertical cross sections (right column) of analysis increment of T, U, V, and Q from a single T observation} - \label{fig:singleobs} -\end{figure} - -This single observation was located at the center of the domain. The results are shown with figures of the horizontal and vertical cross sections through the point of maximum analysis increment. The Figure \ref{fig:singleobs} was generated using NCL scripts, which can be found in the \textit{util/Analysis\_Utilities/plots\_ncl} directory, introduced in Section A.4. - -%------------------------------------------------------------------------------- -\section{Control Data Usage} -\label{sec4.3} -%------------------------------------------------------------------------------- - -Observation data used in the GSI analysis can be controlled through three parts of the GSI system: - -\begin{enumerate} -\item In the GSI run script, by linking observation BUFR files to the working directory -\item In section \verb|&OBS_INPUT| of the GSI namelist (inside \textit{comgsi\_namelist.sh}) -\item Through parameters in info files (e.g.: convinfo, satinfo, etc.) -\end{enumerate} - -Each part provides different levels of control for data usage in the GSI, which is introduced below: - -\begin{enumerate}[leftmargin=*] -\item Link observation BUFR files to the working directory in the GSI run script:\\ - -All BUFR/PrepBUFR observation files need to be linked to the working directory with GSI recognizable names before they can be used in a GSI analysis. The run script (\textit{run\_gsi\_regional.ksh}) makes these links after locating the working directory. Turning these links on or off can control the use of all the data contained in the BUFR files. Table \ref{tab41} provides a list of all default observation file names recognized by GSI and the corresponding examples of the observation BUFR files from NCEP. The following is the first three rows of the table as an example: -\begin{table}[htbp] -\centering -\caption{List of all default observation file names recognized by GSI.} -\begin{tabular}{|p{2cm}|p{9cm}|p{5cm}|} -\hline -\hline -GSI Name & Content & Example file names \\ -\hline -prepbufr & Conventional observations, including ps, t, q, pw, uv, spd, dw, sst, from observation platforms such as METAR, soundings, etc. & \textit{gdas1.t12z.prepbufr} \\ -\hline -satwndbufr & satellite winds & \textit{gdas1.t12z.satwnd.tm00.bufr\_d} \\ -\hline -amsuabufr & AMSU-A 1b radiance (brightness temperatures) from satellites NOAA-15, 16, 17,18, 19, and METOP-A/B & \textit{gdas1.t12z.1bamua.tm00.bufr\_d} \\ -\hline -\end{tabular} -\label{tab41} -\end{table} - -The left column is the GSI recognized name (bold) and the right column are names of BUFR files from NCEP (italic). In the run script, the following lines are used to link the BUFR files in the right column to the working directory using the GSI recognized names shown in the left column: - -\begin{scriptsize} -\begin{verbatim} -# Link to the prepbufr data -ln -s ${PREPBUFR} ./prepbufr - -# Link to the radiance data - ln -s ${OBS_ROOT}/gdas1.t12z.1bamua.tm00.bufr_d amsuabufr -\end{verbatim} -\end{scriptsize} -The GSI recognized default observation filenames are set up in the namelist section \verb|&OBS_INPUT|, which can be changed based on application needs (see below for details). \\ - -\item In the GSI namelist (inside \textit{comgsi\_namelist.sh}), section \verb|&OBS_INPUT|:\\ - -In this namelist section, observation files ("dfile" column) are tied to the observation variables used inside the GSI code ("dsis" column). For example, part of section \verb|OBS_INPUT| shows: - -\begin{scriptsize} -\begin{verbatim} - -&OBS_INPUT - dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=30,time_window_max=1.5,ext_sonde=.true., - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 1.0 0 0 - prepbufr t null t 1.0 0 0 - prepbufr q null q 1.0 0 0 - prepbufr pw null pw 1.0 0 0 - satwndbufr uv null uv 1.0 0 0 - prepbufr uv null uv 1.0 0 0 - prepbufr spd null spd 1.0 0 0 - prepbufr dw null dw 1.0 0 0 - radarbufr rw null rw 1.0 0 0 - prepbufr sst null sst 1.0 0 0 - gpsrobufr gps_ref null gps 1.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 1.0 -1 0 - ... - amsuabufr amsua n15 amsua_n15 10.0 2 0 - amsuabufr amsua n18 amsua_n18 10.0 2 0 - ... -\end{verbatim} -\end{scriptsize} - -This setup tells GSI that conventional observation variables \verb|ps|, \verb|t|, and \verb|q| should be read in from the file prepbufr, while AMSU-A radiances from NOAA-15 and NOAA-18 satellites should be read in from the file \textbf{amsuabufr}. Deleting a particular line in \verb|&OBS_INPUT| will turn off the use of the observation variable presented by the line in the GSI analysis but other variables under the same type can still be used. For example, if we delete: - -\begin{scriptsize} -\begin{verbatim} -amsuabufr amsua n15 amsua_n15 10.0 2 0 -\end{verbatim} -\end{scriptsize} - -Then, the AMSU-A observation from NOAA-15 will not be used in the analysis but the AMSU-A observations from NOAA-18 will still be used.\\ - - -The observation filename in "dfile" can be different from the sample script (\textit{comgsi\_namelist.ksh}). If the filename in "dfile" has been changed, the link from the BUFR files to the GSI recognized name in the run script also needs to be changed correspondingly. For example, if we change the "dfile" in \textbf{amsuabufr} for NOAA-15 to be \verb|amsuabufr_n15|, - -\begin{scriptsize} -\begin{verbatim} -amsuabufr_n15 amsua n15 amsua_n15 10.0 2 0 -amsuabufr amsua n18 amsua_n18 10.0 2 0 -\end{verbatim} -\end{scriptsize} - -Then a new link needs to be added in the run script: - -\begin{scriptsize} -\begin{verbatim} -# Link to the radiance data -ln -s ${OBS_ROOT}/le_gdas1.t00z.1bamua.tm00.bufr_d amsuabufr -ln -s ${OBS_ROOT}/le_gdas1.t00z.1bamua.tm00.bufr_d amsuabufr_n15 -\end{verbatim} -\end{scriptsize} - -The GSI will read NOAA-18 AMSU-A observations from file \textbf{amsuabufr} and NOAA-15 AMSU-A observations from file \verb|amsuabufr_n15| based on the above changes to the run scripts and namelist. In this example, both \textbf{amsuabufr} and \verb|amsuabufr_15| are linked to the same BUFR file and NOAA-15 AMSU-A and NOAA-18 AMSU-A observations are still read in from the same BUFR file. If \textbf{amsuabufr} and \verb|amsuabufr_15| link to different BUFR files, then NOAA-15 AMSU-A and NOAA-18 AMSU-A will be read in from different BUFR files. The changeable filename in \textit{dfile} gives GSI more flexibility to handle multiple data resources.\\ - - -\item Use info files to control data usage\\ - -For each variable, observations can come from multiple platforms (data types or observation instruments). For example, surface pressure (ps) can come from METAR observation stations (data type 187) and rawinsonde (data type 120). There are several files named *info in the GSI system (located in \textit{./fix}) to control the usage of observations based on the observation platform. Table \ref{tab42} is a list of info files and their function: -\begin{table}[htbp] -\centering -\caption{The content of info files } -\begin{tabular}{|p{2cm}|p{14cm}|} -\hline -\hline -File name in GSI & Function and Content \\ -\hline -convinfo & Control the usage of conventional data, including tcp, ps, t, q, pw, sst, uv, spd, dw, radial wind (Level 2 \textit{rw} and 2.5 \textit{srw}), gps, and \textit{pm2\_5} \\ -\hline -satinfo & Control the usage of satellite data. Instruments include AMSU-A/B, HIRS3/4, MHS, ssmi, ssmis, iasi, airs, sndr, cris, amsre, imgr, seviri, atms, avhrr3, etc., and satellites include NOAA 15, 17, 18, 19, aqua, GOES 11, 12, 13, METOP-A/B, NPP, DMSP 15,16,17,18,19,20, -M08, M09, M10, etc.\\ -ozinfo & Control the usage of ozone data, including sbuv6, 8 from NOAA 14, 16, 17, 18, 19. omi\_aura, gome\_metop-a, and mls\_aura \\ -\hline -pcpinfo & Control the usage of precipitation data, including pcp\_ssmi and pcp\_tmi \\ -\hline -aeroinfo & Control the usage of aerosol data, including modis\_aqua and modis\_terra \\ -\hline -\end{tabular} -\label{tab42} -\end{table} - -The header of each info file includes an explanation of the content of the file. Here we discuss the two most commonly used info files: - -\begin{itemize}[leftmargin=*] -\item convinfo\\ - -The \textbf{convinfo} file controls the usage of conventional data. The following is part of the \textbf{convinfo} file: - -\begin{tiny} -\begin{verbatim} - -!otype type sub iuse twindow numgrp ngroup nmiter gross ermax ermin var_b var_pg ithin rmesh pmesh npred pmot ptime - tcp 112 0 1 3.0 0 0 0 75.0 5.0 1.0 75.0 0.000000 0 0. 0. 0 0. 0. - ps 120 0 1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 0. 0. 0 0. 0. - ps 132 0 -1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 0. 0. 0 0. 0. - ps 180 0 1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 0. 0. 0 0. 0. - ps 180 01 1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 0. 0. 0 0. 0. - ps 181 0 1 3.0 0 0 0 3.6 3.0 1.0 3.6 0.000300 0 0. 0. 0 0. 0. - ps 182 0 1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 0. 0. 0 0. 0. - ps 183 0 -1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 0. 0. 0 0. 0. - ps 187 0 1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 0. 0. 0 0. 0. - t 120 0 1 3.0 0 0 0 8.0 5.6 1.3 8.0 0.000001 0 0. 0. 0 0. 0. - t 126 0 -1 3.0 0 0 0 8.0 5.6 1.3 8.0 0.001000 0 0. 0. 0 0. 0. - t 130 0 1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.001000 0 0. 0. 0 0. 0. - t 131 0 1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.001000 0 0. 0. 0 0. 0. - t 132 0 1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.001000 0 0. 0. 0 0. 0. - t 133 0 1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.004000 0 0. 0. 0 0. 0. - t 134 0 -1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.004000 0 0. 0. 0 0. 0. - t 135 0 -1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.004000 0 0. 0. 0 0. 0. - t 180 0 1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.004000 0 0. 0. 0 0. 0. - t 180 01 1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.004000 0 0. 0. 0 0. 0. - t 181 0 -1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.004000 0 0. 0. 0 0. 0. - t 182 0 1 3.0 0 0 0 7.0 5.6 1.3 7.0 0.004000 0 0. 0. 0 0. 0. -\end{verbatim} -\end{tiny} - -The meaning of each column is explained in the header of the file and is listed in Table \ref{tab43}. \\ - -\begin{table}[htbp] -\centering -\caption{list of the content for each convinfo column} -\begin{tabular}{|p{2cm}|p{14cm}|} -\hline -\hline -Column Name & Content of the column \\ -\hline -otype & observation variables (t, uv, q, etc.) \\ -\hline -type & prepbufr observation type (if available) \\ -\hline -sub & prepbufr subtype (not yet available) \\ -\hline -iuse & flag if to use/not use / monitor data; \newline -= 1, use data, the data type will be read and used in the analysis after quality control;\newline -= 0, read in and process data, use for quality control, but do NOT assimilate;\newline -= -1, monitor data. This data type will be read in and monitored but not be used in the GSI analysis. \\ -\hline -twindow & time window (+/- hours) for data used in the analysis \\ -\hline -numgrp & cross validation parameter - number of groups \\ -\hline -ngroup & cross validation parameter - group to remove from data use \\ -\hline -nmiter & cross validation parameter - external iteration to introduce removed data \\ -\hline -gross & gross error parameter - gross error \\ -\hline -ermax & gross error parameter - maximum error \\ -\hline -ermin & gross error parameter - minimum error \\ -\hline -var\_b & variational quality control parameter - b parameter \\ -\hline -var\_pg & variational quality control parameter - pg parameter\\ -\hline -ithin & Flag to turn on thinning (0, no thinning, 1 - thinning) \\ -\hline -rmesh & size of horizontal thinning mesh (in kilometers) \\ -\hline -pmesh & size of vertical thinning mesh \\ -\hline -npred & Number of bias correction predictors \\ -\hline -pmot & Option to keep thinned data as monitored, 0: do not keep, other values: keep \\ -\hline -ptime & time interval for thinning, 0, no temporal thinning, other values define time interval (less than six) \\ -\hline -\end{tabular} -\label{tab43} -\end{table} - -From this table, we can see that parameter "iuse" is used to control the usage of data and parameter "twindow" is used to control the time window of data usage. Parameters gross, ermax, and ermin are for gross quality control. Through these parameters, GSI can control how to use certain types of data in the analysis.\\ - -\item satinfo\\ - -The \textit{satinfo} file contains information about the channels, sensors, and satellites. It specifies observation error (cloudy or clear) for each channel, how to use the channels (assimilate, monitor, etc), and other useful information. The following is part of the content of \textit{satinfo}. The meaning of each column is explained in Table \ref{tab44}. - -\begin{scriptsize} -\begin{verbatim} - -!sensor/instr/sat chan iuse error error_cld ermax var_b var_pg cld_det - amsua_n15 1 1 3.000 20.000 4.500 10.000 0.000 -2 - amsua_n15 2 1 2.200 18.000 4.500 10.000 0.000 -2 - amsua_n15 3 1 2.000 12.000 4.500 10.000 0.000 -2 - amsua_n15 4 1 0.600 3.000 2.500 10.000 0.000 -2 - amsua_n15 5 1 0.300 0.500 2.000 10.000 0.000 -2 - amsua_n15 6 -1 0.230 0.300 2.000 10.000 0.000 -2 - amsua_n15 7 1 0.250 0.250 2.000 10.000 0.000 -2 - amsua_n15 8 1 0.275 0.275 2.000 10.000 0.000 -2 - amsua_n15 9 1 0.340 0.340 2.000 10.000 0.000 -2 - amsua_n15 10 1 0.400 0.400 2.000 10.000 0.000 -2 - amsua_n15 11 -1 0.600 0.600 2.500 10.000 0.000 -2 - amsua_n15 12 1 1.000 1.000 3.500 10.000 0.000 -2 - amsua_n15 13 1 1.500 1.500 4.500 10.000 0.000 -2 - amsua_n15 14 -1 2.000 2.000 4.500 10.000 0.000 -2 - amsua_n15 15 1 3.500 15.000 4.500 10.000 0.000 -2 - hirs3_n17 1 -1 2.000 0.000 4.500 10.000 0.000 -1 - hirs3_n17 2 -1 0.600 0.000 2.500 10.000 0.000 1 - hirs3_n17 3 -1 0.530 0.000 2.500 10.000 0.000 1 -\end{verbatim} -\end{scriptsize} - -\begin{table}[htbp] -\centering -\caption{list of the content for each satinfo column} -\begin{tabular}{|p{4cm}|p{10cm}|} -\hline -\hline -Column Name & Content of the column \\ -\hline -\hline -sensor/instr/sat & Sensor, instrument, and satellite name \\ -\hline -chan & Channel number for certain sensor\\ -\hline -iuse& = 1, use this channel data; \newline -=-1, don\textquotesingle t use this channel data \\ -\hline -error & Variance for each satellite channel \\ -\hline -error\_cld & Variance for each satellite channel if cloudy \\ -\hline -ermax & Error maximum for gross check to observations \\ -\hline -var\_b & Possible range of variable for gross errors \\ -\hline -var\_pg & Probability of gross error \\ -\hline -icld\_det & Use this channel in cloud detection if > 0 \\ -\hline -\end{tabular} -\label{tab44} -\end{table} - - -\end{itemize} - -\end{enumerate} - -%------------------------------------------------------------------------------- -\section{Domain Partition for Parallelization and Observation Distribution} -\label{sec4.4} -%------------------------------------------------------------------------------- - -The standard output file (\textit{stdout}) has an information block that shows the distribution of different kinds of observations in each sub-domain. This block follows the observation input section. The following is the observation distribution from the case shown in Section \ref{sec4.1}. From the introduction, we know the prepbufr (conventional data), radiance BUFR files, and GPS BUFR files were used. In this list, the conventional observations (\verb|ps|, \verb|t|, \verb|q|, \verb|pw|, and \verb|uv|), GPSRO (\verb|gps_ref|), and radiance data (\verb|amusa|, \verb|hirs4|, and \verb|mhs| from \verb|Metop-a|, \verb|Metop-b|, \verb|NOAA 15|, and \verb|18|) were distributed among four sub-domains: - -\begin{scriptsize} -\begin{verbatim} -OBS_PARA: ps 1429 3190 4655 6774 -OBS_PARA: t 2564 5200 7057 11128 -OBS_PARA: q 2346 4626 6148 8128 -OBS_PARA: pw 65 80 63 49 -OBS_PARA: uv 3358 6453 8091 11998 -OBS_PARA: gps_ref 1799 1368 2664 3520 -OBS_PARA: hirs4 metop-a 0 0 1146 1661 -OBS_PARA: hirs4 n19 213 1020 0 0 -OBS_PARA: hirs4 metop-b 0 0 85 555 -OBS_PARA: amsua n15 1458 2026 830 234 -OBS_PARA: amsua n18 2223 2318 108 0 -OBS_PARA: amsua n19 176 960 0 0 -OBS_PARA: amsua metop-a 0 0 1077 1559 -OBS_PARA: amsua metop-b 0 0 265 1829 -OBS_PARA: mhs n18 2550 2695 160 0 -OBS_PARA: mhs n19 246 1103 0 0 -OBS_PARA: mhs metop-a 0 0 1237 1809 -OBS_PARA: mhs metop-b 0 0 321 2128 -\end{verbatim} -\end{scriptsize} - -This list is a good way to quickly check which kinds of data are used in the analysis and how they are distributed in the analysis domain. - - -%------------------------------------------------------------------------------- -\section{Observation Innovation Statistics} -%------------------------------------------------------------------------------- - -The GSI analysis provides a set of files named \textit{fort.2*} to summarize observations fit to the current solution in each outer loop (except for \textit{fort.220}, see explanation in the next section). The content of some of these files is listed in Table \ref{tab45}: - -\begin{table}[htbp] -\centering -\caption{List of the content and units for each fort files} -\begin{tabular}{|p{4cm}|p{7cm}|p{3cm}|} -\hline -\hline -File Name & Variables in file & Ranges/units \\ -\hline -\textit{fort.201 or fit\_p1.analysis\_time} & fit of surface pressure data & mb \\ -\hline -\textit{fort.202 or fit\_w1.analysis\_time} & fit of u, v wind data & m/s \\ -\hline -\textit{fort.203 or fit\_t1.analysis\_time} & fit of temperature data & K \\ -\hline -\textit{fort.204 or fit\_q1.analysis\_time} & fit of moisture data & percent of qsaturation guess \\ -\hline -\textit{fort.205} & fit of precipitation water data & mm \\ -\hline -\textit{fort.206} & fit of ozone observations from sbuv6\_n14 (, \_n16, \_n17, \_n18), sbuv8\_n16 (, \_n17, \_n18, \_n19), omi\_aura, gome\_metop-a/b, and mls\_aura & \\ -\hline -\textit{fort.207 or fit\_rad1.analysis\_time} & fit of satellite radiance data, such as: -amsua\_n15(, n16, n17, n18, metop-a, aqua, n19), amsub\_n17, hirs3\_n17, hirs4\_n19 (, metop-a), etc. & \\ -\hline -\textit{fort.208} & fit of precipitation rate (pcp\_ssmi and pcp\_tmi) & \\ -\hline -\textit{fort.209} & fit of radar radial wind (rw) & \\ -\hline -\textit{fort.210} & fit of lidar wind (dw) & \\ -\hline -\textit{fort.211} & fit of radar superob wind data (srw) & \\ -\hline -\textit{fort.212} & fit of GPS data (refractivity or bending angle) & fractional difference \\ -\hline -\textit{fort.213} & fit of conventional sst data & C \\ -\hline -\textit{fort.214} & fit of tropical cyclone central pressure & \\ -\hline -\textit{fort.215} & fit of Lagrangian tracer data & \\ -\hline -\textit{fort.217} & fit of aerosol product (aod) & \\ -\hline -\textit{fort.218} & fit of wind gust & \\ -\hline -\textit{Fort.219} & fit of visibility & - \\ -\hline -\end{tabular} -\label{tab45} -\end{table} - -To help users understand the information inside these files, some examples are given in the following sub-sections with corresponding explanations. - -%------------------------------------------------------------------------------- -\subsection{Conventional observations} -\label{sec4.5.1} -%------------------------------------------------------------------------------- - -Example of files, including single level data (\textit{fort.201}, \textit{fort.205}, and \textit{fort.213}) - -\begin{scriptsize} -\begin{verbatim} -current fit of surface pressure data, ranges in mb --------------------------------------------------- - pressure levels (hPa)= 0.0 2000.0 - it obs type stype count bias rms cpen qcpen - o-g 01 ps 120 0000 101 0.1813 0.6089 0.4711 0.4711 - o-g 01 ps 180 0000 601 0.0378 0.6354 0.7171 0.7171 - o-g 01 ps 180 0001 1428 0.1857 0.8555 0.7164 0.7164 - o-g 01 ps 181 0000 610 0.1959 0.8991 0.7387 0.7387 - o-g 01 ps 182 0000 1 0.9173 0.9173 2.8976 2.8976 - o-g 01 ps 187 0000 11149 0.1999 0.7877 0.3360 0.3360 - o-g 01 all 13890 0.1912 0.7931 0.4105 0.4105 - o-g 01 ps rej 120 0000 1 -3.5799 3.5799 0.0000 0.0000 - o-g 01 ps rej 180 0001 7 -0.3349 4.9273 0.0000 0.0000 - o-g 01 ps rej 181 0000 47 1.1146 54.8539 0.0000 0.0000 - o-g 01 ps rej 183 0000 3 10.4797 10.4836 0.0000 0.0000 - o-g 01 ps rej 187 0000 52 4.2528 7.4112 0.0000 0.0000 - o-g 01 rej all 110 2.7186 36.2804 0.0000 0.0000 - o-g 01 ps mon 132 0000 1 0.9173 0.9173 0.2104 0.2104 - o-g 01 ps mon 180 0000 113 0.0447 0.5158 0.8709 0.8709 - o-g 01 ps mon 180 0001 24 0.2122 0.4050 0.3559 0.3559 - o-g 01 ps mon 181 0000 207 0.0910 0.9492 1.2514 1.2514 - o-g 01 ps mon 183 0000 1386 0.3974 1.0861 0.0000 0.0000 - o-g 01 ps mon 187 0000 88 -0.0100 0.5290 0.7534 0.7534 - o-g 01 mon all 1819 0.3188 1.0169 0.2378 0.2378 -\end{verbatim} -\end{scriptsize} - -Example of files including multiple level data (\textit{fort.202}, \textit{fort.203}, and \textit{fort.204}) - -\begin{scriptsize} -\begin{verbatim} - ptop 1000.0 900.0 800.0 600.0 100.0 50.0 0.0 - it obs type styp pbot 1200.0 1000.0 900.0 800.0 150.0 100.0 2000.0 ------------------------------------------------------------------------------------------- - o-g 01 uv 220 0000 count 44 223 223 478 437 519 4231 - o-g 01 uv 220 0000 bias 0.26 0.51 0.04 0.35 0.99 0.97 0.59 - o-g 01 uv 220 0000 rms 2.21 2.48 2.51 2.84 5.88 4.79 4.18 - o-g 01 uv 220 0000 cpen 0.31 0.38 0.44 0.61 1.64 1.18 0.90 - o-g 01 uv 220 0000 qcpen 0.31 0.38 0.44 0.60 1.63 1.18 0.89 - o-g 01 uv 223 0000 count 0 6 16 88 32 8 331 - o-g 01 uv 223 0000 bias 0.00 0.23 -0.29 0.85 -0.76 -4.89 0.27 - o-g 01 uv 223 0000 rms 0.00 1.28 1.32 2.86 5.21 6.63 3.76 - o-g 01 uv 223 0000 cpen 0.00 0.06 0.07 0.45 0.88 1.31 0.73 - -... - - o-g 01 all count 1799 1726 2001 3050 469 527 13124 - o-g 01 all bias 0.05 0.91 0.78 0.63 0.87 0.88 0.62 - o-g 01 all rms 2.46 2.58 2.65 3.21 5.83 4.82 3.54 - o-g 01 all cpen 0.24 0.24 0.30 0.45 1.58 1.19 0.52 - o-g 01 all qcpen 0.23 0.24 0.30 0.44 1.58 1.19 0.52 - o-g 01 uv rej 220 0000 count 0 0 0 0 0 0 800 - o-g 01 uv rej 220 0000 bias 0.00 0.00 0.00 0.00 0.00 0.00 3.11 - o-g 01 uv rej 220 0000 rms 0.00 0.00 0.00 0.00 0.00 0.00 6.41 - -... - - o-g 01 rej all count 23 108 21 41 2 0 1008 - o-g 01 rej all bias 44.72 6.40 -0.30 -7.38 11.46 0.00 3.84 - o-g 01 rej all rms 56.08 16.60 6.87 10.47 43.15 0.00 12.28 - o-g 01 rej all cpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 01 rej all qcpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 01 uv mon 220 0000 count 0 4 0 1 8 9 29 - o-g 01 uv mon 220 0000 bias 0.00 1.07 0.00 6.04 -1.03 0.23 -2.21 - o-g 01 uv mon 220 0000 rms 0.00 20.49 0.00 17.78 9.06 8.51 12.52 - o-g 01 uv mon 220 0000 cpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 01 uv mon 220 0000 qcpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - -... - - o-g 01 mon all count 3573 7736 1004 563 8 9 13052 - o-g 01 mon all bias -0.01 0.40 0.05 -0.30 -1.03 0.23 0.23 - o-g 01 mon all rms 2.55 3.25 4.67 5.98 9.06 8.51 3.60 - o-g 01 mon all cpen 0.81 1.21 1.67 1.28 0.00 0.00 1.12 - o-g 01 mon all qcpen 0.80 1.15 1.53 1.16 0.00 0.00 1.07 -... -\end{verbatim} -\end{scriptsize} - -Please note that five layers from 600 to 150 hPa have been deleted to make each row fit into one line. Only observation type 220 and 223 are shown as an example. - -Table \ref{tab46} lists the meaning of each item in file \textit{fort.201-213} except file \textit{fort.207}: - -\begin{table}[htbp] -\centering -\caption{List of each item in file fort.201-213 (except fort.207).} -\begin{tabular}{|p{1cm}|p{10cm}|} -\hline -\hline - Name & Explanation \\ -\hline -\textit{it} & outer loop number \newline -= 01: observation - background \newline -= 02: observation - analysis (after 1\textsuperscript{st} outer loop) \newline -= 03: observation - analysis (after 2\textsuperscript{nd} outer loop) \\ -\hline -\textit{obs} & observation variable type (such as uv or ps) and usage, which includes: \newline -blank: used in GSI analysis \newline -mon: monitored (read in but not assimilated by GSI) \newline -rej: rejected because of quality control in GSI \\ -\hline -\textit{type} & prepbufr observation type (see the BUFR User\textquotesingle s Guide for details) \\ -\hline -\textit{styp} & prepbufr observation subtype (not used) \\ -\hline -\textit{ptop} & for multiple level data: pressure at the top of the layer \\ -\hline -\textit{pbot} & for multiple level data: pressure at the bottom of the layer \\ -\hline -\textit{count} & the number of observations summarized under observation types and vertical layers \\ -\hline -\textit{bias} & bias of observation departure for each outer loop (it) \\ -\hline -\textit{rms} & root mean square error of observation departure for each outer loop (it) \\ -\hline -\textit{cpen} & observation part of penalty (cost function) \\ -\hline -\textit{qcpen} & nonlinear qc penalty \\ -\hline -\end{tabular} -\label{tab46} -\end{table} - -The contents of the fit files are calculated based on O-B or O-A for each observation. The detailed departure information about each observation is saved in the diagnostic files. For the content of the diagnostic files, please check the content of the array "rdiagbuf" in one of the setup subroutines for conventional data (for example, setupt.f90). We provide a tool in appendix A.2 to help users read in the information from the diagnostic files. - -These fit files give lots of useful information on how data are analyzed by the GSI, such as how many observations are used and rejected, the bias and root mean squared (RMS) error for certain data types or for all observations, and how analysis results fit to the observation before and after analysis. Again, we use observation type 220 in \textit{fort.202} (\textit{fit\_w1.2014061700}) as an example to illustrate how to read this information. The fit information for observation type 220 (soundings) is listed below. Like the previous example, five layers from 600 to 150 hPa were deleted to make each row fit into one line. All fit information of observation type 220 is shown. - -\begin{scriptsize} -\begin{verbatim} - ptop 1000.0 900.0 800.0 600.0 100.0 50.0 0.0 - it obs type styp pbot 1200.0 1000.0 900.0 800.0 150.0 100.0 2000.0 -------------------------------------------------------------------------------------- - o-g 01 uv 220 0000 count 44 223 223 478 437 519 4231 - o-g 01 uv 220 0000 bias 0.26 0.51 0.04 0.35 0.99 0.97 0.59 - o-g 01 uv 220 0000 rms 2.21 2.48 2.51 2.84 5.88 4.79 4.18 - o-g 01 uv 220 0000 cpen 0.31 0.38 0.44 0.61 1.64 1.18 0.90 - o-g 01 uv 220 0000 qcpen 0.31 0.38 0.44 0.60 1.63 1.18 0.89 - -... - o-g 01 uv rej 220 0000 count 0 0 0 0 0 0 800 - o-g 01 uv rej 220 0000 bias 0.00 0.00 0.00 0.00 0.00 0.00 3.11 - o-g 01 uv rej 220 0000 rms 0.00 0.00 0.00 0.00 0.00 0.00 6.41 - o-g 01 uv rej 220 0000 cpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 01 uv rej 220 0000 qcpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - -... - - o-g 01 uv mon 220 0000 count 0 4 0 1 8 9 29 - o-g 01 uv mon 220 0000 bias 0.00 1.07 0.00 6.04 -1.03 0.23 -2.21 - o-g 01 uv mon 220 0000 rms 0.00 20.49 0.00 17.78 9.06 8.51 12.52 - o-g 01 uv mon 220 0000 cpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 01 uv mon 220 0000 qcpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - -... - - ptop 1000.0 900.0 800.0 600.0 100.0 50.0 0.0 - it obs type styp pbot 1200.0 1000.0 900.0 800.0 150.0 100.0 2000.0 -------------------------------------------------------------------------------------- - o-g 02 uv 220 0000 count 44 223 223 478 437 519 4231 - o-g 02 uv 220 0000 bias 0.21 0.05 -0.43 0.03 0.69 0.96 0.39 - o-g 02 uv 220 0000 rms 2.13 2.26 2.29 2.56 5.19 4.55 3.73 - o-g 02 uv 220 0000 cpen 0.32 0.31 0.37 0.50 1.27 1.07 0.71 - o-g 02 uv 220 0000 qcpen 0.32 0.31 0.37 0.50 1.27 1.07 0.71 - -... - - o-g 02 uv rej 220 0000 count 0 0 0 0 0 0 800 - o-g 02 uv rej 220 0000 bias 0.00 0.00 0.00 0.00 0.00 0.00 2.96 - o-g 02 uv rej 220 0000 rms 0.00 0.00 0.00 0.00 0.00 0.00 6.33 - o-g 02 uv rej 220 0000 cpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 02 uv rej 220 0000 qcpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - -... - - o-g 02 uv mon 220 0000 count 0 4 0 1 8 9 29 - o-g 02 uv mon 220 0000 bias 0.00 2.16 0.00 5.80 -1.00 0.23 -0.82 - o-g 02 uv mon 220 0000 rms 0.00 18.44 0.00 12.60 10.31 8.58 10.87 - o-g 02 uv mon 220 0000 cpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 02 uv mon 220 0000 qcpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - - -... - ptop 1000.0 900.0 800.0 600.0 100.0 50.0 0.0 - it obs type styp pbot 1200.0 1000.0 900.0 800.0 150.0 100.0 2000.0 ----------------------------------------------------------------------------------------- - o-g 03 uv 220 0000 count 44 223 223 478 437 519 4231 - o-g 03 uv 220 0000 bias 0.28 0.08 -0.32 0.11 0.74 1.00 0.43 - o-g 03 uv 220 0000 rms 2.11 2.17 2.20 2.38 5.00 4.46 3.60 - o-g 03 uv 220 0000 cpen 0.31 0.29 0.34 0.43 1.18 1.03 0.65 - o-g 03 uv 220 0000 qcpen 0.31 0.29 0.34 0.43 1.18 1.03 0.65 - -... - - o-g 03 uv rej 220 0000 count 0 0 0 0 0 0 800 - o-g 03 uv rej 220 0000 bias 0.00 0.00 0.00 0.00 0.00 0.00 2.98 - o-g 03 uv rej 220 0000 rms 0.00 0.00 0.00 0.00 0.00 0.00 6.35 - o-g 03 uv rej 220 0000 cpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 03 uv rej 220 0000 qcpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - -... - - o-g 03 uv mon 220 0000 count 0 4 0 1 8 9 29 - o-g 03 uv mon 220 0000 bias 0.00 1.86 0.00 6.09 -0.98 0.07 -0.94 - o-g 03 uv mon 220 0000 rms 0.00 18.76 0.00 12.59 10.34 8.69 11.01 - o-g 03 uv mon 220 0000 cpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - o-g 03 uv mon 220 0000 qcpen 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - -\end{verbatim} -\end{scriptsize} - -In loop section \verb|o-g 01|, from the \verb|count| line, we can see there were 4231 sounding observations used in the analysis. Among them, 44 were within the 1000-1200 hPa layer. Also from the \verb|count| lines, in the rejection and monitoring section, there were 800 observations rejected and 29 observations monitored. In the same loop section, from the \verb|bias| line and \verb|rms| lines, we can see the total bias and RMS error of O-B for the sounding information is 0.59 and 4.18. The bias and RMS error for each vertical layer can also be found in this file. - -Next we can see bias and RMS error values from different loops, as shown with the comparison in the following three lines: - -\begin{scriptsize} -\begin{verbatim} -o-g 01 uv 220 0000 rms 2.21 2.48 2.51 2.84 5.88 4.79 4.18 -o-g 02 uv 220 0000 rms 2.13 2.26 2.29 2.56 5.19 4.55 3.73 -o-g 03 uv 220 0000 rms 2.11 2.17 2.20 2.38 5.00 4.46 3.60 -\end{verbatim} -\end{scriptsize} - -These three lines show that the RMS error reduced from 4.18 (o-g 01, which is O-B) to 3.73 (o-g 02, which is O-A after the 1\textsuperscript{st} outer loop) and then to 3.60 (o-g 03, which is O-A after the 2\textsuperscript{nd} outer loop, which is also the final analysis result). The reduction in the RMS error shows that observation type 220 (sounding) was used in the GSI analysis to modify the background fields to fit to the observations. - -%------------------------------------------------------------------------------- -\subsection{Satellite Radiance} -\label{sec4.5.2} -%------------------------------------------------------------------------------- - -The file \textit{fort.207} is the fit file for radiance data. Its content includes important information about the radiance data analysis. - -The first part of the file \textit{fort.207} lists the content that corresponds to those in the file \textbf{satinfo}, which is the info file to control radiance data usage. - -\begin{tiny} -\begin{verbatim} - -RADINFO_READ: jpch_rad= 2723 - 1 amsua_n15 chan= 1 var= 3.000 varch_cld= 20.000 use= 1 ermax= 4.500 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 - 2 amsua_n15 chan= 2 var= 2.200 varch_cld= 18.000 use= 1 ermax= 4.500 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 - 3 amsua_n15 chan= 3 var= 2.000 varch_cld= 12.000 use= 1 ermax= 4.500 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 - 4 amsua_n15 chan= 4 var= 0.600 varch_cld= 3.000 use= 1 ermax= 2.500 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 - 5 amsua_n15 chan= 5 var= 0.300 varch_cld= 0.500 use= 1 ermax= 2.000 b_rad= 10.00 pg_rad= 0.00 icld_det=-2 - -... -\end{verbatim} -\end{tiny} - -This shows there are 2723 channels listed in the \textit{satinfo} file and the 2723 lines following this line include the details for each channel. - -The second part of the file is a list of the coefficients for bias correction, after reading the \textit{satbias\_in} file: - -\begin{tiny} -\begin{verbatim} - RADINFO_READ: ***WARNING instrument/channel ahi_himawari8 16 - not found in satbias_pc file - set to zero - RADINFO_READ: guess air mass bias correction coefficients below - 1 amsua_n15 -1.965181 0.000000 39.068176 -0.923195 0.408460 0.000000 0.000000 0.001735 3.689709 - 2.367472 8.862940 -1.848292 - 2 amsua_n15 -7.415403 0.000000 80.138019 -0.818472 -1.013216 0.000000 0.000000 0.014279 2.638804 - 8.315096 22.041458 -1.564773 -... -\end{verbatim} -\end{tiny} - -Each channel has 12 coefficients listed in a line. Therefore, there are 2723 lines of radiance bias correction coefficients for all channels, though some of the coefficients are zero. - -The 3\textsuperscript{rd} part of the \textit{fort.207} file is similar to other fit files with content repeated in three sections, providing detailed statistics about the data in stages before the 1\textsuperscript{st} outer loop, between the 1\textsuperscript{st} and 2\textsuperscript{nd} outer loops, and after the 2\textsuperscript{nd} outer loop. The results before the 1\textsuperscript{st} outer loop are used here as an example to explain the content of the results: - -\begin{itemize}[leftmargin=*] - -\item Summaries for various statistics as a function of observation type - -\begin{scriptsize} -\begin{verbatim} - sat type penalty nobs iland isnoice icoast ireduce ivarl nlgross - metop-a hirs4 371.46818888 385 143 0 25 0 1452 0 - qcpenalty qc1 qc2 qc3 qc4 qc5 qc6 qc7 - 371.46818888 0 0 1651 3330 0 0 0 - - - sat type penalty nobs iland isnoice icoast ireduce ivarl nlgross - metop-b hirs4 0.00000000 34 25 0 0 0 139 0 - qcpenalty qc1 qc2 qc3 qc4 qc5 qc6 qc7 - 0.00000000 0 0 97 279 0 0 0 - - 6 - -rad total penalty_all= 13986.0933845987129 -rad total qcpenalty_all= 13986.0933845987129 -rad total failed nonlinqc= 0 - -... -\end{verbatim} -\end{scriptsize} - -Table \ref{tab47} outlines the meaning of each item in the above statistics: - -\begin{table}[htbp] -\centering -\caption{Summary of the radiance observation fit file (fort.207)} -\begin{tabular}{|p{2cm}|p{10cm}|} -\hline -\hline - Name & Explanation \\ -\hline -\hline -\textit{sat} & satellite name \\ -\hline -\textit{type} & instrument type \\ -\hline -\textit{penalty} & contribution to cost function from this observation type \\ -\hline -\textit{nobs} & number of good observations used in the assimilation\\ -\hline -\textit{iland} & number of observations over land \\ -\hline -\textit{isnoice} & number of observations over sea ice and snow \\ -\hline -\textit{icoast} & number of observations over coast \\ -\hline -\textit{ireduce} & number of observations that reduce qc bounds in tropics \\ -\hline -\textit{ivarl} & number of observations removed by gross check \\ -\hline -\textit{nlgross} & number of observation removed by nonlinear qc\\ -\hline -\textit{qcpenalty} & nonlinear qc penalty from this data type \\ -\hline -\textit{qc1-7} & number of observations whose quality control criteria has been adjusted by each qc method (1-7). For details, see the Radiance Chapter of the Advanced User\textquotesingle s Guide \\ -\hline -\textit{rad total penalty\_all} & summary of penalty for all radiance observation types \\ -\hline -\textit{rad total qcpenalty\_all} & summary of qcpenalty for all radiance observation types \\ -\hline -\textit{rad total failed nonlinqc} & summary of observations removed by nonlinear qc for all radiance observation types \\ -\hline -\end{tabular} -\label{tab47} -\end{table} - -Note: One radiance observation may include multiple channels, and not all channels are necessarily used in the analysis. - -\item Summaries for various statistics as a function of channel - -\begin{scriptsize} -\begin{verbatim} - - 1 2 3 4 5 6 7 8 9 10 11 - 1 1 amsua_n15 915 247 3.000 0.6623748 1.2673027 0.2414967 2.4209147 2.0627099 - 2 2 amsua_n15 902 261 2.000 0.5209886 1.1773765 0.2626527 2.2705374 1.9414234 - 3 3 amsua_n15 1114 48 2.000 1.2349467 -1.5090660 0.3421312 1.9416738 1.2218089 - 4 4 amsua_n15 1162 0 0.600 -0.2114506 -0.3195250 0.5286580 0.6271317 0.5396275 - 5 5 amsua_n15 1162 3 0.300 -0.0888496 -0.1685199 0.4352839 0.2734131 0.2153040 - 6 6 amsua_n15 2093 3 -0.230 -1.8141034 -0.0695503 0.8415303 0.2646033 0.2552992 - 7 7 amsua_n15 2342 28 0.250 -0.0830293 0.0453835 0.6141132 0.2522587 0.2481427 - 8 8 amsua_n15 2311 59 0.275 0.0201868 0.1758359 0.7782391 0.3173862 0.2642267 - 9 9 amsua_n15 2124 246 0.340 0.1262987 0.5008846 1.4907547 0.5544190 0.2376868 -10 10 amsua_n15 82 2288 0.400 0.6700157 0.8263504 2.0387089 0.8304076 0.0819868 -15 15 amsua_n15 862 300 3.000 0.8244923 -2.2960147 0.3769625 2.7445692 1.5036544 - -... - -63 4 hirs4_metop-a 11 217 0.400 0.9717384 0.9536444 1.8583033 0.9570578 0.0807581 -64 5 hirs4_metop-a 81 4 0.360 0.1655806 -0.2231640 0.3231878 0.3433454 0.2609289 -65 6 hirs4_metop-a 25 27 0.460 -0.8415009 -1.1454801 2.6082742 1.1558578 0.1545404 -66 7 hirs4_metop-a 20 3 0.570 -0.9563649 -1.1287970 1.4138248 1.1699278 0.3074870 -67 8 hirs4_metop-a 23 0 1.000 1.3954294 0.6716651 0.1668694 0.9134028 0.6190078 -... -\end{verbatim} -\end{scriptsize} - -Table \ref{tab48} lists the meaning of each column in the above statistics: - -\begin{table}[htbp] -\centering -\caption{Content of fit statistics for each channel in the fort.207 file.} -\begin{tabular}{|p{1.5cm}|p{10cm}|} -\hline -\hline - Column \# & Content \\ -\hline -\hline -\textit{1} & series number of the channel in satinfo file \\ -\hline -\textit{2} & channel number for certain radiance observation type \\ -\hline -\textit{3} & radiance observation type (for example: amsua\_n15) \\ -\hline -\textit{4} & number of observations (nobs) used in GSI analysis within this channel\\ -\hline -\textit{5} & number of observations (nobs) tossed by gross check within this channel \\ -\hline -\textit{6} & variance for each satellite channel \\ -\hline -\textit{7} & bias (observation-guess before bias correction) \\ -\hline -\textit{8} & bias (observation-guess after bias correction) \\ -\hline -\textit{9} & penalty contribution from this channel \\ -\hline -\textit{10} & square root of (observation-guess with bias correction)**2\\ -\hline -\textit{11} & standard deviation \\ -\hline -\end{tabular} -\label{tab48} -\end{table} - - -\item Final summary for each observation type - -\begin{scriptsize} -\begin{verbatim} - -it satellite instrument # read # keep # assim penalty qcpnlty cpen qccpen -o-g 01 rad n16 hirs3 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad n17 hirs3 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad metop-a hirs4 13832 7315 651 371.47 371.47 0.57061 0.57061 -o-g 01 rad n18 hirs4 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad n19 hirs4 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad metop-b hirs4 2527 646 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad g11 goes_img 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad g12 goes_img 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad aqua airs 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad n15 amsua 43515 30810 12976 8854.4 8854.4 0.68236 0.68236 -o-g 01 rad n18 amsua 30690 25575 8203 3642.7 3642.7 0.44407 0.44407 -o-g 01 rad n19 amsua 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad metop-a amsua 4890 3878 1466 652.20 652.20 0.44489 0.44489 -o-g 01 rad metop-b amsua 810 718 294 201.79 201.79 0.68636 0.68636 -o-g 01 rad aqua amsua 0 0 0 0.0000 0.0000 0.0000 0.0000 -o-g 01 rad n17 amsub 0 0 0 0.0000 0.0000 0.0000 0.0000 -... -\end{verbatim} -\end{scriptsize} - -Table \ref{tab49} lists the meaning of each column in the above statistics: - -\begin{table}[htbp] -\centering -\caption{Content of the final summary section for the fort.207 file.} -\begin{tabular}{|p{2.0cm}|p{10cm}|} -\hline -\hline - Name & Explanation \\ -\hline -\hline -\textit{it} & stage (o-g 01 rad = before 1st outer loop for radiance data) \\ -\hline -\textit{satellite} & satellite name (n16=NOAA -16) \\ -\hline -\textit{instrument} & instrument name (HIRS-3) \\ -\hline -\textit{\# read} & number of data (channels) read in within analysis time window and domain\\ -\hline -\textit{\# keep} & number of data (channels) kept after data thinning \\ -\hline -\textit{\# assim} & number of data (channels) used in analysis (passed all qc process) \\ -\hline -\textit{penalty} & contribution from this observation type to cost function \\ -\hline -\textit{qcpnlty} & nonlinear qc penalty from this data type \\ -\hline -\textit{cpen} & penalty divided by (the number of data assimilated) \\ -\hline -\textit{qccpen} & qcpnlty divided by (the number of data assimilated)\\ -\hline -\end{tabular} -\label{tab49} -\end{table} - -Similar to other fit files, a comparison between results from different outer loops can give us very useful information on how much impact each channel and data type has in the GSI. - -\end{itemize} - -%------------------------------------------------------------------------------- -\section{Convergence Information} -\label{sec4.6} -%------------------------------------------------------------------------------- - -There are two ways to check the convergence information for each iteration of the GSI: - -\begin{enumerate} -\item Standard output file (\textit{stdout}):\\ - - -The value of the cost function and norm of the gradient for each iteration are listed in the file \textit{stdout}. - -The following is an example showing the iterations from the first outer loop: - -\begin{tiny} -\begin{verbatim} -GLBSOI: START pcgsoi jiter= 1 -pcgsoi: gnorm(1:2),b= 9.869857497554413276E+05 9.869857497554413276E+05 0.000000000000000000E+00 -Initial cost function = 3.915930707165839704E+04 -Initial gradient norm = 9.934715646436194447E+02 -cost,grad,step,b,step? = 1 0 3.915930707165839704E+04 9.934715646436194447E+02 4.821051367939106942E-03 0.000000000000000000E+00 good -pcgsoi: gnorm(1:2),b= 4.101618851769856410E+05 4.101618851769853500E+05 4.155702200144395508E-01 -cost,grad,step,b,step? = 1 1 3.440099807266351127E+04 6.404388223530688720E+02 5.837551195665082078E-03 4.155702200144395508E-01 good -pcgsoi: gnorm(1:2),b= 4.679752995326447999E+05 4.679752995326457312E+05 1.140952673675940110E+00 -cost,grad,step,b,step? = 1 2 3.200665706943234181E+04 6.840872017021256397E+02 3.727016244273905453E-03 1.140952673675940110E+00 good -pcgsoi: gnorm(1:2),b= 2.579351145588153449E+05 2.579351145588165091E+05 5.511724973869557287E-01 - -... -cost,grad,step,b,step? = 1 9 2.515019683100273687E+04 2.511847728725914237E+02 5.552768045789822915E-03 9.872916643640710088E-01 good -pcgsoi: gnorm(1:2),b= 5.868194961445817898E+04 5.868194961445837544E+04 9.300748853414525508E-01 -cost,grad,step,b,step? = 1 10 2.479985164931967302E+04 2.422435749704379191E+02 5.481216572289848883E-03 9.300748853414525508E-01 good - -\end{verbatim} -\end{tiny} - -The following are the iterations from the second outer loop: - -\begin{tiny} -\begin{verbatim} - -Initial cost function = 2.792919782749931983E+04 -Initial gradient norm = 4.241369976412337337E+02 -cost,grad,step,b,step? = 2 0 2.792919782749931983E+04 4.241369976412337337E+02 4.301269527061492466E-03 0.000000000000000000E+00 good -pcgsoi: gnorm(1:2),b= 1.641799966598818428E+05 1.641799966598813771E+05 9.126577097845959274E-01 -cost,grad,step,b,step? = 2 1 2.715543302058953486E+04 4.051913087171068923E+02 3.965037770683364597E-03 9.126577097845959274E-01 good -pcgsoi: gnorm(1:2),b= 7.369958699881075881E+04 7.369958699881142820E+04 4.488950450613589660E-01 -cost,grad,step,b,step? = 2 2 2.650445313264244396E+04 2.714766785541821719E+02 6.065878225371862040E-03 4.488950450613589660E-01 good -pcgsoi: gnorm(1:2),b= 5.010117245725526300E+04 5.010117245725520479E+04 6.798026216627733875E-01 - -... -cost,grad,step,b,step? = 2 9 2.488459155328830457E+04 1.491452772915179139E+02 6.349376870755444636E-03 9.522651754285673675E-01 good -pcgsoi: gnorm(1:2),b= 2.350218829989638834E+04 2.350218829989681763E+04 1.056548139732611746E+00 -cost,grad,step,b,step? = 2 10 2.474335402213209454E+04 1.533042344486817683E+02 5.304880218120413757E-03 1.056548139732611746E+00 good - -\end{verbatim} -\end{tiny} -Here, we can see the number of outer and inner loops (minimization iteration). The meaning of the names (bold) used in \textit{stdout} are explained in the following: - -\begin{itemize} -\item \verb|cost|: the cost function values, (=J) -\item \verb|grad|: inner product of gradients (norm of the gradient (Y*X)) -\item \verb|step|: stepsize -\item \verb|b|: parameter to estimate the new search direction -\end{itemize} - -As a quick check, the cost function reduced from 3.915930707165839704E+04 to 2.479985164931967302E+04 in the 1\textsuperscript{st} outer loop and reduced from 2.792919782749931983E+04 to 2.474335402213209454E+04 in the 2\textsuperscript{nd} outer loop. - -\item Convergence information in file \textit{fort.220}:\\ - -In file \textit{fort.220}, users can find more detailed minimization information about each iteration. A detailed description and example are provided in the Advanced User\textquotesingle s Guide. - -To evaluate the iteration convergence, we usually make plots based on the information from \textit{fort.220}, such as the value of the cost function and the norm of the gradient. The following are example plots showing the evolution of the cost function and the norm of the gradient in different outer loops: - -\begin{figure}[h!] - \centering - \includegraphics[width=0.7\textwidth]{images/CostGrad} - \caption{Evolution of the cost function (left column) and the norm of the gradient (right column) in the first outer loop (top row) and the second outer loop (bottom row). The Y-axis is the iteration number.} - \label{fig:costgrad} -\end{figure} - -Scripts are available in the release code to read convergence information from \textit{fort.220} and produce the above plots. Please see Section A.3 for information on where to locate and how to run these scripts. -\end{enumerate} - -%------------------------------------------------------------------------------- -\section{Conventional Observation Errors} -%------------------------------------------------------------------------------- - -Each observation type has its own observation errors. In this section, we introduce several topics related to the conventional observation error processing in GSI. The observation error for satellite radiance and its adjustment is discussed in the Advanced User\textquotesingle s Guide. - -%------------------------------------------------------------------------------- -\subsection{Getting Original Observation Errors} -\label{sec4.7.1} -%------------------------------------------------------------------------------- - -For the global GSI analysis, when \verb|oberrflg| (a namelist option in section \verb|&obsqc|) is true, observation errors are generated based on an external observation error table according to the observation type. Otherwise, observation errors are read in from the PrepBUFR file. - -For regional analyses, GSI forces the use of an external observation error table to get observation errors no matter what the \verb|oberrflg| is set to (\verb|oberrflg| is forced to be true for regional runs in \textit{gsimod.F90}). - -The external observation error table file, \textit{errtable}, includes observation errors for all types of conventional observations. It is copied from the \textit{./fix} directory by the run script. This release package has three sample external observation error table files, \textit{nam\_errtable.r3dv}, \textit{prepobs\_errtable.global}, and \textit{rtma/new\_rtma\_nam\_errtable.r3dv} in the \textit{./fix} directory. The \textit{nam\_errtable.r3dv} is used in the sample run script as a default observation error table. The observation error file is a text file that can be easily edited to tune the error values. The following shows a portion of \textit{nam\_errtable.r3dv} file for rawinsondes and its description of each column in Table \ref{tab410}: - -\begin{scriptsize} -\begin{verbatim} -Column # 1 2 3 4 5 6 - 120 OBSERVATION TYPE - 0.11000E+04 0.12696E+01 0.60737E+00 0.10000E+10 0.76322E+00 0.10000E+10 - 0.10500E+04 0.13282E+01 0.66294E+00 0.10000E+10 0.76322E+00 0.10000E+10 - 0.10000E+04 0.13932E+01 0.74223E+00 0.10000E+10 0.76322E+00 0.10000E+10 - 0.95000E+03 0.14390E+01 0.83688E+00 0.10000E+10 0.79899E+00 0.10000E+10 - 0.90000E+03 0.14354E+01 0.94025E+00 0.10000E+10 0.83561E+00 0.10000E+10 - 0.85000E+03 0.13669E+01 0.10439E+01 0.10000E+10 0.87224E+00 0.10000E+10 - - - 220 OBSERVATION TYPE - 0.11000E+04 0.10000E+10 0.10000E+10 0.18521E+01 0.10000E+10 0.10000E+10 - 0.10500E+04 0.10000E+10 0.10000E+10 0.20636E+01 0.10000E+10 0.10000E+10 - 0.10000E+04 0.10000E+10 0.10000E+10 0.22799E+01 0.10000E+10 0.10000E+10 - 0.95000E+03 0.10000E+10 0.10000E+10 0.24211E+01 0.10000E+10 0.10000E+10 - 0.90000E+03 0.10000E+10 0.10000E+10 0.24934E+01 0.10000E+10 0.10000E+10 - 0.85000E+03 0.10000E+10 0.10000E+10 0.25155E+01 0.10000E+10 0.10000E+10 - -\end{verbatim} -\end{scriptsize} - -\begin{table}[htbp] -\centering -\caption{Description of each column in the observation error table file} -\begin{tabular}{|p{2cm}|p{2cm}|p{2cm}|p{2cm}|p{1cm}|p{1cm}|p{2.5cm}|} -\hline -\hline - Column \# & 1 & 2 & 3 & 4 & 5 & 6 \\ -\hline -\textit{Content} & Pressure & T & RH & UV & Ps & Pw \\ -\hline -\textit{Unit} & hPa & degree C & percent/10 & m/s & mb & kg/m2(or mm)\\ -\hline -\end{tabular} -\label{tab410} -\end{table} - -For each observation type, the error table has six columns and 33 rows (levels). The 1\textsuperscript{st} column prescribes 33 pressure levels, covering 1100 hPa to 0 hPa. Columns 2-6 prescribe observation errors for temperature (T), relative humidity (RH), horizontal wind component (UV), surface pressure (Ps), and the total column precipitable water (Pw). The missing value is 0.10000E+10. - -The observation error table for each observation type starts with the observation type number defined for the PrepBUFR files, such as: - -\begin{scriptsize} -\begin{verbatim} -120 OBSERVATION TYPE -220 OBSERVATION TYPE -\end{verbatim} -\end{scriptsize} - -The PrepBUFR data type numbers 100-199 are for temperature (T), moisture (q), and surface pressure (Ps) observations, while numbers 200-299 are for horizontal wind component (UV) observations. A detailed explanation of each data type number can be found in the following table on the EMC website: - -\begin{small} -\url{http://www.emc.ncep.noaa.gov/mmb/data_processing/prepbufr.doc/table_2.htm} -\end{small} - -For more details on PrepBUFR/BUFR, please check the BUFR/PrepBUFR User\textquotesingle s Guide, which is freely available at the DTC BUFR/PrepBUFR website: - -\begin{small} -\url{http://www.dtcenter.org/com-GSI/BUFR/index.php} -\end{small} - -%------------------------------------------------------------------------------- -\subsection{Observation Error Gross Error Check within GSI} -%------------------------------------------------------------------------------- - -The gross error check is an important quality control step to exclude questionable observations that degrade the analysis. Users can adjust the threshold of the gross error check for each data type within the \textit{convinfo} file to make the gross error check more or less strict for a certain data type. For example, the following is a part of the \textit{convinfo} file without the last five columns: - -\begin{scriptsize} -\begin{verbatim} -!otype type sub iuse twindow numgrp ngroup nmiter gross ermax ermin var_b var_pg ithin -ps 183 0 -1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 -ps 187 0 1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 -t 120 0 1 3.0 0 0 0 8.0 5.6 1.3 8.0 0.000001 0 -t 126 0 -1 3.0 0 0 0 8.0 5.6 1.3 8.0 0.001000 0 -\end{verbatim} -\end{scriptsize} - -The gross check for each data type is controlled by columns "gross", "ermax", and "ermin." If an observation has observation error set to "obserror," then a gross check ratio is calculated: - -\textit{ratio = (Observation-Background)/max(ermin,min(ermax,obserror))} - -If \textit{ratio > gross}, then this observation fails the gross check and will not be used in the analysis. The unused observation is indicated as a "rejection" in the fit files. - -%------------------------------------------------------------------------------- -\section{Background Error Covariance} -\label{sec4.8} -%------------------------------------------------------------------------------- - -The GSI package has several files in \textit{./fix} to hold the pre-computed background error statistics for different GSI applications with different grid configurations. Within the \textit{./fix} subdirectories \textit{./fix/Big\_Endian} and \textit{./fix/Little\_Endian} contain the fix files corresponding to each endianness. Since the GSI code has a build-in mechanism to interpolate the input background error matrix to any desired analysis grid, the following two background error files can be used to specify the B matrix for any GSI regional application. - -\begin{itemize} -\item \textit{nam\_nmmstat\_na.gcv} : contains the regional background error statistics, computed using forecasts from the NCEP\textquotesingle s NAM model covering North America. The values of this B matrix cover the northern hemisphere with 93 latitude lines, from -2.5 degrees to 89.5 degrees with 60 vertical sigma levels from 0.9975289 to 0.01364. -\item \textit{nam\_glb\_berror.f77.gcv} : contains the global background errors based on NCEP\textquotesingle s GFS model, a global forecast model. The values of this B matrix cover the globe with 192 latitude lines from -90 degrees to 90 degrees and 42 vertical sigma levels from 0.99597 to 0.013831. -\end{itemize} - -The background error matrix files listed above are in Big Endian binary form (therefore located in the \textit{Big\_Endian} directory). In the \textit{Little\_Endian} directory, \textit{nam\_nmmstat\_na.gcv} and \textit{nam\_glb\_berror.f77.gcv} are their Little Endian versions for certain computer platforms that cannot compile GSI with the Big Endian option. In this release version, GSI can be compiled with the Big Endian option with PGI and Intel. - -%------------------------------------------------------------------------------- -\subsection{Tuning Background Error Covariance through the Namelist and Anavinfo File} -%------------------------------------------------------------------------------- - -The final background error covariance matrix used in the GSI analysis is the content from the fixed file "berror", which is a copy of \textit{nam\_nmmstat\_na.gcv} or \textit{nam\_glb\_berror.f77.gcv}, multiplied by several factors set by the namelist and the \textbf{anavinfo} file. - -In GSI namelist, three variables are used for tuning horizontal and vertical impact scales: - -\begin{itemize} -\item \verb|vs| scale factor for vertical correlation lengths for background error -\item \verb|hzscl(3)| scale factor for three scales specified for horizontal smoothing -\item \verb|hswgt(3)| weights to apply to each horizontal scales -\end{itemize} - -In the GSI anavinfo file, the column \textbf{as/tsfc\_sdv} in the \textit{control\_vector} section are factors for tuning the variance of each analysis control variable. - -These values can be used to tune the background error covariance used in the GSI analysis. For each background error matrix file, there are recommended values for these parameters listed in table \ref{tab411}. - -\begin{table}[htbp] -\centering -\caption{Recommended tuning values for the provided B matrix.} -\begin{tabular}{|p{2cm}|p{5cm}|p{5cm}|} -\hline -\hline - & Global & Regional \\ -\hline -\textit{fixed B matrix} & nam\_glb\_berror.f77.gcv & nam\_nmmstat\_na.gcv \\ -\hline -\textit{vs} & 0.7 & 1.0\\ -\hline -\textit{hzscl} & 1.7, 0.8, 0.5 & 0.373,0.746,1.50\\ -\hline -\textit{hswgt} & 0.45, 0.3,0.25 & 0.45, 0.3,0.25\\ -\hline -\textit{ss/tsfc\_sdv} & -\begin{verbatim} -control_vector:: -!var as/tsfc_sdv - sf 0.60 - vp 0.60 - ps 0.75 - t 0.75 - q 0.75 - oz 0.75 - sst 1.00 - cw 1.00 - stl 3.00 - sti 3.00 -\end{verbatim} - & -\begin{verbatim} -control_vector:: -!var as/tsfc_sdv - sf 1.00 - vp 1.00 - ps 0.50 - t 0.70 - q 0.70 - oz 0.50 - sst 1.00 - cw 1.00 - stl 1.00 - sti 1.00 -\end{verbatim} -\\ -\hline -\end{tabular} -\label{tab411} -\end{table} - -%------------------------------------------------------------------------------- -\section{Analysis Increments} -%------------------------------------------------------------------------------- - -Analysis increments are defined as the difference between analysis results and the background (A-B). A plot of analysis increments can help users understand how the analysis procedure modifies the background fields according to observations, background and observation error covariances, and other constraints. You can either calculate \textit{analysis-guess} and plot the difference field or use the tools introduced in Appendix A.4 to make analysis increment figures for different analysis fields. - -%------------------------------------------------------------------------------- -\section{Running Time and Memory Usage} -%------------------------------------------------------------------------------- - -In addition to analysis increments, run time and memory usage are other important features of an analysis system, especially for operational code like the GSI. - -The GSI standard output file (\textit{stdout}) gives the GSI start time and end time of the analysis at the beginning and end of the file. For example: - -\begin{scriptsize} -\begin{verbatim} -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . - PROGRAM GSI_ANL HAS BEGUN. COMPILED 1999232.55 ORG: NP23 - STARTING DATE-TIME JUL 02,2016 20:36:21.760 184 SAT 2457572 - -... - - ENDING DATE-TIME JUL 02,2016 20:43:40.422 184 SAT 2457572 - PROGRAM GSI_ANL HAS ENDED. -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . -\end{verbatim} -\end{scriptsize} - -This tells us the analysis started at 20:36:21.760 and ended at 20:43:40.422, which means GSI used 7 minutes and 19 seconds to finish. - -Following the ending date-time, there is a resource statistics section at the end of the \textit{stdout} file, which gives information about run time and memory usage for the analysis: - -\begin{scriptsize} -\begin{verbatim} -*****************RESOURCE STATISTICS******************************* -The total amount of wall time = 438.663534 -The total amount of time in user mode = 427.578998 -The total amount of time in sys mode = 9.457562 -The maximum resident set size (KB) = 2020132 -Number of page faults without I/O activity = 312762 -Number of page faults with I/O activity = 0 -Number of times filesystem performed INPUT = 0 -Number of times filesystem performed OUTPUT = 0 -Number of Voluntary Context Switches = 7641 -Number of InVoluntary Context Switches = 851 -*****************END OF RESOURCE STATISTICS************************* -\end{verbatim} -\end{scriptsize} diff --git a/doc/GSI_user_guide/gsi_ch5.tex b/doc/GSI_user_guide/gsi_ch5.tex deleted file mode 100644 index 9940f2a1a..000000000 --- a/doc/GSI_user_guide/gsi_ch5.tex +++ /dev/null @@ -1,1168 +0,0 @@ -\chapter{GSI Applications for Regional 3DVar, Hybrid 3DEnVar and Hybrid 4DEnVar}\label{gsi_reg} -\setlength{\parskip}{12pt} - -In this chapter, information from the previous chapters will be applied to three regional GSI cases with different data sources. These examples are to give users a clear idea of how to set up GSI with various configurations and properly check the run status and analysis results in order to determine if a particular GSI application was successful. Note that the examples here only use the WRF-ARW system - WRF-NMM runs are similar, but require different background and namelist options. - -For illustrations of all the cases, it is assumed that the reader has successfully compiled GSI on a local machine. For regional case studies, users should have the following data available: - -\begin{enumerate} -\item Background file -\begin{itemize} -\item When using WRF, WPS and real.exe will be run to create a WRF input file: wrfinput\_\_ -\end{itemize} -\item Conventional data - -\begin{itemize} -\item Real time NAM PrepBUFR data can be obtained from the server: - -\url{ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/nam/prod} - -\textit{Note: An NDAS PrepBUFR file was chosen to increase the amount of data used in the analysis (compared to a NAM PrepBUFR file) } -\end{itemize} - -\item Radiance data and GPS RO data - -\begin{itemize} -\item Real time GDAS BUFR files can be obtained from the following server: - -\url{ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod} - -\textit{Note: GDAS data was chosen to get better coverage for radiance and GPS/RO refractivity} -\end{itemize} - -\end{enumerate} - -The following cases will give users an example of a successful GSI run with various data sources. Users are welcome to download these example data from the GSI users\textquotesingle \ webpage (online case) or create a new background and get the observational data from the above server. The background and observations used in this case study are as follows: - -\begin{enumerate} -\item Background files: wrfinput\_d01\_2014-06-17\_00:00:00 -\begin{itemize} -\item The horizontal grid spacing is 30-km with 51 vertical sigma levels -\begin{figure}[h!] - \begin{minipage}[t]{0.5\linewidth} - \centering - \includegraphics[width=0.7\textwidth]{images/terrain} - \end{minipage} % - \begin{minipage}[t]{0.5\linewidth} - \centering - \includegraphics[width=0.7\textwidth]{images/landmask} - \end{minipage} - \caption{The terrain (left) and land mask (right) of the background used in this case study.} - \label{fig:terland} -\end{figure} -\end{itemize} -\item Conventional data: NAM PrepBUFR data from 0000 UTC 17 June 2014 -\begin{itemize} -\item File: \textit{nam.t00z.prepbufr.tm00.nr} -\end{itemize} -\item Radiance and GPS RO data: GDAS PREPBUFR data from 0000 UTC 17 June 2014 -\begin{itemize} -\item Files: \textit{gdas.t00z.1bamua.tm00.bufr\_d} - - \qquad\quad \textit{gdas.t00z.1bhrs4.tm00.bufr\_d} - - \qquad\quad \textit{gdas.t00z.gpsro.tm00.bufr\_d} -\end{itemize} -\end{enumerate} - -This case study was run on a Linux cluster. As of version 3.2, the BUFR/PrepBUFR files do not need to be byte-swapped to little endian format. BUFRLIB can automatically handle byte order issues. - -Assume the background file is located at: - -\textit{data/2014061700/arw} - -All the observations are located at: - -\textit{data/2014061700/obs} - -And the GSI release version 3.6 is located at: - -\textit{code/comGSI(version\_number)\_EnKF(version\_number)} - -%------------------------------------------------------------------------------- -\section{Assimilating Conventional Observations with Regional GSI} -%------------------------------------------------------------------------------- - -%------------------------------------------------------------------------------- -\subsection{Run Script} -\label{sec5.1.1} -%------------------------------------------------------------------------------- - -With GSI successfully compiled and background and observational data acquired, move to the \textit{./run} directory under \textit{./comGSIv3.5\_EnKFv1.1} to run the GSI using the sample script \textit{run\_gsi\_regional.ksh}. The \textit{run\_gsi\_regional.ksh} script must be modified in several places before running: - -\begin{itemize} -\item Set up batch queuing system. \\ -To run GSI with multi-processors, a job queuing section has to be added at the beginning of the \textit{run\_gsi\_regional.ksh} script. The set up of the job queue is dependent on the machine and the job control system. More setup examples are described in section \ref{sec3.2.2}. The following example is set up to run on a Linux cluster supercomputer with LSF. The job section is as follows: - -\begin{scriptsize} -\begin{verbatim} -#BSUB -P ????????? # project code -#BSUB -W 00:20 # wall-clock time (hrs:mins) -#BSUB -n 4 # number of tasks in job -#BSUB -R "span[ptile=16]" # run 16 MPI tasks per node -#BSUB -J gsi # job name -#BSUB -o gsi.%J.out -#BSUB -e gsi.%J.err -#BSUB -q small # queue -\end{verbatim} -\end{scriptsize} - -In order to find out how to set up the job section, a good method is to use an existing MPI job script and copy the job section over. -\\ - -\item Set up the number of processors and the job queue system used. For this example, LINUX\_PBS and four processors are used: - -\begin{scriptsize} -\begin{verbatim} -GSIPROC=4 -ARCH='LINUX_PBS' -\end{verbatim} -\end{scriptsize} - -\item Set up the case data, analysis time, GSI fix files, GSI executable, and CRTM coefficients: - -Set up analysis time: - -\begin{scriptsize} -\begin{verbatim} -ANAL_TIME=2014061700 -\end{verbatim} -\end{scriptsize} - -Set up a working directory, which will hold all the analysis results. This directory must have correct write permissions, as well as enough space to hold the output. - -\begin{scriptsize} -\begin{verbatim} -WORK_ROOT=/scratch1/gsiprd_${ANAL_TIME}_prepbufr -\end{verbatim} -\end{scriptsize} - -Set path to the background directory and file: - -\begin{scriptsize} -\begin{verbatim} - BK_ROOT=data/20140617/${ANAL_TIME}/arw - BK_FILE=${BK_ROOT}/wrfinput_d01.${ANAL_TIME} -\end{verbatim} -\end{scriptsize} - -Set path to the observation directory and the PrepBUFR file within the observation directory. All observations to be assimilated should be in the observation directory. - -\begin{scriptsize} -\begin{verbatim} - OBS_ROOT=data/20140617/${ANAL_TIME}/obs - PREPBUFR=${OBS_ROOT}/nam.t${HH}z.prepbufr.tm00.nr -\end{verbatim} -\end{scriptsize} - -Set up the GSI system used for this case, including the paths of fix files and the CRTM coefficients as well as the location of the GSI executable and the namelist file: - -\begin{scriptsize} -\begin{verbatim} - CRTM_ROOT=data/fix/CRTM_2.2.3 - GSI_ROOT=/comGSIv3.5_EnKFv1.1 - FIX_ROOT=${GSI_ROOT}/fix - GSI_EXE=${GSI_ROOT}/run/gsi.exe - GSI_NAMELIST=${GSI_ROOT}/run/comgsi_namelist.sh -\end{verbatim} -\end{scriptsize} - -\item Set which background and background error file to use: - -\begin{scriptsize} -\begin{verbatim} -bk_core=ARW -bkcv_option=NAM -if_clean=clean -\end{verbatim} -\end{scriptsize} - -This example uses the ARW NetCDF background; therefore \verb|bk_core| is set to 'ARW.' The regional background error covariance file is used in this case, as set by \verb|bkcv_option=NAM|. Finally, the run scripts are set to clean the run directory to delete all temporary intermediate files. -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Run GSI and Check the Run Status} -\label{sec5.1.2} -%------------------------------------------------------------------------------- - -Once the run script is set up properly for the case and machine, and the anavinfo file has been updated with the same number of vertical levels as the background (please see section \ref{sec3.1} for more details), GSI can be run through the run script. On our test machine, the GSI run is submitted as follows: - -\begin{scriptsize} -\begin{verbatim} -$ bsub < run_gsi_regional.ksh -\end{verbatim} -\end{scriptsize} - -While the job is running, move to the working directory and check the details. Given the following working directory setup: - -\begin{scriptsize} -\begin{verbatim} - WORK_ROOT=/scratch1/gsiprd_${ANAL_TIME}_prepbufr -\end{verbatim} -\end{scriptsize} - -Go to directory \textit{/scratch1} to check the GSI run directory. - -A directory named \textit{gsiprd\_2014061700\_prepbufr} should have been created. This directory is the run directory for this GSI case study. While GSI is still running, the contents of this directory should include files such as: - -\begin{scriptsize} -\begin{verbatim} -imgr_g12.TauCoeff.bin ssmi_f15.SpcCoeff.bin -imgr_g13.SpcCoeff.bin ssmi_f15.TauCoeff.bin -imgr_g13.TauCoeff.bin ssmis_f16.SpcCoeff.bin -\end{verbatim} -\end{scriptsize} - -These are CRTM coefficient files that have been linked to this run directory through the GSI run script. Additionally, many other files are linked or copied to this run directory or generated during the run, such as: - -\begin{itemize} -\item \verb|stdout|: standard output file -\item \verb|wrf_inout|: background file -\item \verb|gsiparm.anl|: GSI namelist -\item \verb|prepbufr|: prepBUFR file for conventional observation -\item \verb|convinfo|: data usage control for conventional data -\item \verb|berror_stats|: background error file -\item \verb|errtable|: observation error file -\end{itemize} - -The presence of these files indicates that the GSI run scripts have successfully set up a run environment for GSI and that the GSI executable is running. While GSI is still running, checking the content of the standard output file (\textit{stdout}) can monitor the status of the GSI analysis: - -\begin{tiny} -\begin{verbatim} -$ tail stdout -[mhu@yslogin2 testarw_conv]$ tail stdout -pcgsoi: gnorm(1:2),b= 4.971613638691962543E-04 4.971613637988174387E-04 6.539937387039491679E-01 -cost,grad,step,b,step? = 2 21 2.283071832605468444E+04 2.229711559527815246E-02 4.235685495878949780E+01 6.539937387039491679E-01 good -pcgsoi: gnorm(1:2),b= 2.427998455757554152E-04 2.427998455925739387E-04 4.883723137754825139E-01 -cost,grad,step,b,step? = 2 22 2.283069726786290266E+04 1.558203598942562579E-02 5.370146211199837438E+01 4.883723137754825139E-01 good -pcgsoi: gnorm(1:2),b= 1.349871612172568163E-04 1.349871612633241600E-04 5.559606553423739328E-01 -cost,grad,step,b,step? = 2 23 2.283068422915619885E+04 1.161839753224414365E-02 6.137769018004394894E+01 5.559606553423739328E-01 good -pcgsoi: gnorm(1:2),b= 9.116990149652581994E-05 9.116990145686963470E-05 6.753968350377786978E-01 -cost,grad,step,b,step? = 2 24 2.283067594395604101E+04 9.548293119533240308E-03 5.219011413742769179E+01 6.753968350377786978E-01 good -pcgsoi: gnorm(1:2),b= 5.783146215365002791E-05 5.783146214669085264E-05 6.343262545796939378E-01 -cost,grad,step,b,step? = 2 25 2.283067118578847294E+04 7.604700004184913528E-03 5.599317818817987558E+01 6.343262545796939378E-01 good -\end{verbatim} -\end{tiny} - -The above output shows that GSI is in the inner iteration stage. It may take several minutes to finish the GSI run. Once GSI has finished running, the number of files in the directory will be greatly reduced from those during the run stage. This is because the run script was set to clean the working directory after a successful run. The important analysis result files and configuration files will remain. Please check Section \ref{sec3.3} for more details on GSI run results. Upon successful completion of GSI, the run directory will look as follows: - -\begin{scriptsize} -\begin{verbatim} - -anavinfo fort.202 fort.214 fort.228 satbias_ang.out -berror_stats fort.203 fort.215 fort.229 satbias_in -convinfo fort.204 fort.217 fort.230 satbias_out -diag_conv_anl.2014061700 fort.205 fort.218 gsi.exe satbias_out.int -diag_conv_ges.2014061700 fort.206 fort.219 gsiparm.anl satbias_pc -errtable fort.207 fort.220 l2rwbufr satbias_pc.out -fit_p1.2014061700 fort.208 fort.221 list_run_directory satinfo -fit_q1.2014061700 fort.209 fort.223 ozinfo stdout -fit_rad1.2014061700 fort.210 fort.224 pcpbias_out stdout.anl.2014061700 -fit_t1.2014061700 fort.211 fort.225 pcpinfo wrfanl.2014061700 -fit_w1.2014061700 fort.212 fort.226 prepbufr wrf_inout -fort.201 fort.213 fort.227 prepobs_prep.bufrtable -\end{verbatim} -\end{scriptsize} - -%------------------------------------------------------------------------------- -\subsection{Check for Successful GSI Completion} -\label{sec5.1.3} -%------------------------------------------------------------------------------- - -It is important to always check for a successful completion of the GSI analysis. However, completion of the GSI run without crashing does not guarantee a successful analysis. First, it is necessary to check the \textit{stdout} file in the run directory to make sure GSI completed each step without any obvious problems. The following are several important steps to check: - -\begin{enumerate} -\item Read in the anavinfo and namelist files\\ - -The following lines show that GSI started normally and has read in the anavinfo and namelist files: -\begin{scriptsize} -\begin{verbatim} - gsi_metguess_mod*init_: 2D-MET STATE VARIABLES: - ps - z - gsi_metguess_mod*init_: 3D-MET STATE VARIABLES: - u - v - ... ... - - control_vectors*init_anacv: ALL CONTROL VARIABLES - sf vp - ps t - q oz - ... ... - - GSI_4DVAR: nobs_bins = 1 - SETUP_4DVAR: l4dvar= F - SETUP_4DVAR: l4densvar= F - SETUP_4DVAR: winlen= 3.00000000000000 - SETUP_4DVAR: winoff= 3.00000000000000 - SETUP_4DVAR: hr_obsbin= 3.00000000000000 - SETUP_4DVAR: nobs_bins= 1 - - ... ... - - &SETUP - GENCODE = 78.0000000000000 , - FACTQMIN = 0.000000000000000E+000, - FACTQMAX = 0.000000000000000E+000, - CLIP_SUPERSATURATION = F, - FACTV = 1.00000000000000 , - FACTL = 1.00000000000000 , - FACTP = 1.00000000000000 , - FACTG = 1.00000000000000 , - - ... ... -\end{verbatim} -\end{scriptsize} -\item Read in the background field\\ - -The following lines in standard output file, immediately following the namelist section, indicate that GSI is reading the background fields. Checking the range of the 'max' and 'min' values will indicate if certain background fields are normal. - -\begin{scriptsize} -\begin{verbatim} - - dh1 = 3 - iy,m,d,h,m,s= 2014 6 17 0 0 - 0 - dh1 = 3 - RMS errore_var = SMOIS - ndim1 = 3 - ordering = XYZ - staggering = N/A - start_index = 1 1 1 0 - end_index = 332 215 4 0 - WrfType = 104 - ierr = 0 - RMS errore_var = T ndim1 = 3 dh1 = 3 - -............... - - RMS errore_var = U ndim1= 3 - WrfType = 104 WRF_REAL= 104 ierr = 0 - ordering = XYZ staggering = N/A - start_index = 1 1 1 0 end_index = - 333 215 50 0 - k,max,min,mid U= 1 18.50961 -17.84097 -0.8667576 - k,max,min,mid U= 2 18.68178 -18.39229 -0.8647658 - k,max,min,mid U= 3 19.28049 -19.42709 -0.8610985 - k,max,min,mid U= 4 19.60607 -21.29182 -0.8547171 - k,max,min,mid U= 5 21.58153 -24.50086 -0.8405453 -\end{verbatim} -\end{scriptsize} - -\item Read in observational data\\ - -Skipping through a majority of the content towards the middle of the standard output file, the following lines will appear: - -\begin{scriptsize} -\begin{verbatim} -OBS_PARA: ps 1429 3190 4655 6774 -OBS_PARA: t 2564 5200 7057 11128 -OBS_PARA: q 2346 4626 6148 8128 -OBS_PARA: pw 65 80 63 49 -OBS_PARA: uv 3358 6453 8091 11998 -\end{verbatim} -\end{scriptsize} - -This table is an important step to check if the observations have been read in, which types of observations have been read in, and the distribution of observations in each sub domain. At this point, GSI has read in all the data needed for the analysis. Following this table is the inner iteration information.\\ - -\item Inner iteration\\ - -The inner iteration step in the standard output file will look like this: - -\begin{tiny} -\begin{verbatim} - GLBSOI: START pcgsoi jiter= 1 -pcgsoi: gnorm(1:2),b= 1.131520548923311509E+02 1.131520548923311509E+02 0.000000000000000000E+00 - Begin J table inner/outer loop 0 1 - J term J -surface pressure 5.7012207042385944E+03 -temperature 6.4242087278840627E+03 -wind 1.6782607330525603E+04 -moisture 3.5878183830232451E+03 - ----------------------------------------------------- - J Global 3.2495855145671507E+04 - End Jo table inner/outer loop 0 1 -Initial cost function = 3.249585514567150676E+04 -Initial gradient norm = 1.063729546888358080E+01 -cost,grad,step,b,step? = 1 0 3.249585514567150676E+04 1.063729546888358080E+01 2.548553547231620442E+01 0.000000000000000000E+00 good -pcgsoi: gnorm(1:2),b= 9.711890653545569307E+01 9.711890653545563623E+01 8.583043995786756586E-01 -cost,grad,step,b,step? = 1 1 2.961211443694752961E+04 9.854892517701838273E+00 2.514521805501437157E+01 8.583043995786756586E-01 good -pcgsoi: gnorm(1:2),b= 8.597091659074136771E+01 8.597091659074150982E+01 8.852129791983981422E-01 -cost,grad,step,b,step? = 1 2 2.717003835484893352E+04 9.272050290563644381E+00 1.036575164309021346E+01 8.852129791983981422E-01 good -pcgsoi: gnorm(1:2),b= 5.683515872824821002E+01 5.683515872824790449E+01 6.610975081120487040E-01 - -... -\end{verbatim} -\end{tiny} - -Following the namelist set up, similar information will be repeated for each inner loop. In this case, two outer loops with 50 inner loops in each outer loop are shown. The last iteration looks like this: - -\begin{tiny} -\begin{verbatim} -... -cost,grad,step,b,step? = 2 43 2.283066393607995633E+04 1.877001128106250809E-04 2.191568845986752123E+01 1.034537274286373876E+00 good -pcgsoi: gnorm(1:2),b= 1.819672329827284049E-08 1.819678976283112548E-08 5.164945106960998622E-01 -cost,grad,step,b,step? = 2 44 2.283066393530783535E+04 1.348952308210814343E-04 4.180909725254741716E+01 5.164945106960998622E-01 good -pcgsoi: gnorm(1:2),b= 1.127913513618353988E-08 1.127903191777782680E-08 6.198386233002942669E-01 -cost,grad,step,b,step? = 2 45 2.283066393454704667E+04 1.062032727187987424E-04 2.399192596022169610E+01 6.198386233002942669E-01 good - PCGSOI: WARNING **** Stopping inner iteration *** - gnorm 0.996812222890348903E-10 less than 0.100000000000000004E-09 - update_guess: successfully complete -\end{verbatim} -\end{tiny} - -At the 45th iterationi, GSI met the stop threshold before getting to the maximum iteration number (50). As a quick check, the J value should descend with each iteration. Here, J has a value of 3.249585514567150676E+04 at the beginning and a value of 2.283066393454704667E+04 for the final iteration. Therefore, the value has reduced by about one third, which is an expected reduction.\\ - -\item Write out analysis results\\ - -The final step of the GSI analysis procedure looks very similar to the portion where the background fields were read in: - -\begin{scriptsize} -\begin{verbatim} - ... ... - - max,min psfc= 102799.9 66793.78 - max,min MU= 2799.898 -1195.195 - RMS errore_var=MU - ordering=XY - WrfType,WRF_REAL= 104 104 - ndim1= 2 - staggering= N/A - start_index= 1 1 1 0 - end_index1= 332 215 50 0 - k,max,min,mid T= 1 321.6157 270.8151 309.3634 - k,max,min,mid T= 2 321.7112 270.9660 309.4070 - k,max,min,mid T= 3 321.4324 271.2166 309.3831 - k,max,min,mid T= 4 321.2418 271.6100 309.3864 - k,max,min,mid T= 5 321.6863 272.2831 309.3308 - k,max,min,mid T= 6 320.9441 272.8387 309.1977 - k,max,min,mid T= 7 320.8511 273.1703 309.0908 - - ... ... -\end{verbatim} -\end{scriptsize} - -\item As an indication that GSI has successfully run, several lines will appear at the bottom of the file: - -\begin{scriptsize} -\begin{verbatim} - ENDING DATE-TIME JUL 05,2016 11:30:38.156 187 TUE 2457575 - PROGRAM GSI_ANL HAS ENDED. -* . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . * . -\end{verbatim} -\end{scriptsize} - -After carefully investigating each portion of the standard output file, it can be concluded that GSI successfully ran through every step and there were no run issues. A more complete description of the standard output file can be found in Section \ref{sec4.1}. However, it cannot be concluded that GSI successfully produced an analysis until more diagnosis has been completed. - -\end{enumerate} - -%------------------------------------------------------------------------------- -\subsection{Diagnose GSI Analysis Results} -%------------------------------------------------------------------------------- - -%------------------------------------------------------------------------------- -\subsubsection{Check Analysis Fit to Observations} -%------------------------------------------------------------------------------- - -The analysis uses observations to correct the background fields to fit to the observations under certain constraints. The easiest way to confirm the GSI analysis results fit the observations better than the background is to check a set of files with names \textit{fort.2??}, where ?? is a number from 01 to 19 or larger than 20. In the run scripts, several "fort" files have also been renamed as \textit{fit\_t1} (\textit{q1}, \textit{p1}, \textit{rad1}, \textit{w1}).\textit{YYYYMMDDHH}. Please check Section \ref{sec4.5.1} for a detailed explanation of the fit files. Here, we illustrate how to use these fit files. - -\begin{itemize}[leftmargin=*] -\item \textit{fit\_t1.2014061700} (\textit{fort.203}) - -This file shows how the background and analysis fields fit to temperature observations. The contents of this file show five data types were used in the analysis: 120, 130, 132, 180, and 182. Also included are the number of observations, bias, and RMS error of observation minus background (o-g 01) or analysis (o-g 03) on each level for the three data types. The following is part of the file, only showing data types 120 and 180: - -\begin{tiny} -\begin{verbatim} - - ptop 1000.0 900.0 800.0 600.0 400.0 300.0 250.0 200.0 150.0 100.0 50.0 0.0 - it obs type styp pbot 1200.0 1000.0 900.0 800.0 600.0 400.0 300.0 250.0 200.0 150.0 100.0 2000.0 ----------------------------------------------------------------------------------------------------------------------------------------------- - o-g 01 t 120 0000 count 107 350 357 866 1153 719 252 450 551 884 745 7188 - o-g 01 t 120 0000 bias 0.80 0.32 -0.10 -0.12 -0.15 -0.20 -0.24 -0.60 -0.22 0.15 -0.10 -0.07 - o-g 01 t 120 0000 RMS error 2.06 1.55 0.83 0.77 0.69 0.66 0.73 1.20 1.44 1.65 1.65 1.23 - o-g 01 t 120 0000 cpen 0.81 0.49 0.23 0.33 0.33 0.30 0.36 0.79 0.91 0.98 0.79 0.58 - o-g 01 t 120 0000 qcpen 0.81 0.49 0.23 0.33 0.33 0.30 0.36 0.79 0.91 0.98 0.79 0.58 - o-g 01 t 180 0000 count 339 35 0 0 0 0 0 0 0 0 0 374 - o-g 01 t 180 0000 bias 0.17 1.12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.26 - o-g 01 t 180 0000 RMS error 1.66 4.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.01 - o-g 01 t 180 0000 cpen 0.63 7.18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.25 - o-g 01 t 180 0000 qcpen 0.63 7.18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.25 - o-g 01 t 180 0001 count 1344 15 0 0 0 0 0 0 0 0 0 1359 - o-g 01 t 180 0001 bias 0.82 4.17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.86 - o-g 01 t 180 0001 RMS error 2.07 5.44 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.13 - o-g 01 t 180 0001 cpen 0.47 23.37 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.73 - o-g 01 t 180 0001 qcpen 0.47 23.37 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.73 - o-g 01 all count 1792 405 358 871 1172 725 325 800 651 884 745 9482 - o-g 01 all bias 0.69 0.53 -0.10 -0.12 -0.15 -0.19 -0.09 -0.50 -0.04 0.15 -0.10 0.08 - o-g 01 all RMS error 1.99 2.14 0.83 0.77 0.69 0.67 0.84 1.32 1.58 1.65 1.65 1.45 - o-g 01 all cpen 0.52 1.91 0.23 0.33 0.36 0.31 0.44 0.97 1.18 0.98 0.79 0.68 - o-g 01 all qcpen 0.52 1.91 0.23 0.33 0.36 0.31 0.44 0.97 1.18 0.98 0.79 0.68 - - - ----------------------------------------------------------------------------------------------------------------------------------------------- - o-g 03 t 120 0000 count 107 350 357 866 1153 719 252 450 551 884 745 7188 - o-g 03 t 120 0000 bias 0.58 0.29 -0.04 -0.02 -0.04 -0.02 0.01 -0.16 -0.04 0.06 0.04 0.01 - o-g 03 t 120 0000 RMS error 1.72 1.35 0.70 0.61 0.49 0.43 0.50 0.79 1.14 1.40 1.59 1.05 - o-g 03 t 120 0000 cpen 0.57 0.33 0.14 0.19 0.16 0.12 0.18 0.34 0.57 0.72 0.73 0.39 - o-g 03 t 120 0000 qcpen 0.57 0.33 0.14 0.19 0.16 0.12 0.18 0.34 0.57 0.72 0.73 0.39 - o-g 03 t 180 0000 count 339 35 0 0 0 0 0 0 0 0 0 374 - o-g 03 t 180 0000 bias -0.24 0.21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.19 - o-g 03 t 180 0000 RMS error 1.55 2.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.71 - o-g 03 t 180 0000 cpen 0.34 2.57 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.55 - o-g 03 t 180 0000 qcpen 0.34 2.57 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.55 - o-g 03 t 180 0001 count 1344 16 0 0 0 0 0 0 0 0 0 1360 - o-g 03 t 180 0001 bias 0.30 1.97 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.32 - o-g 03 t 180 0001 RMS error 1.75 2.88 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.77 - o-g 03 t 180 0001 cpen 0.27 6.05 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.34 - o-g 03 t 180 0001 qcpen 0.27 6.05 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.34 - o-g 03 all count 1792 406 358 871 1172 725 325 800 651 884 745 9483 - o-g 03 all bias 0.21 0.34 -0.04 -0.02 -0.04 -0.02 0.04 -0.13 0.06 0.06 0.04 0.05 - o-g 03 all RMS error 1.71 1.61 0.69 0.61 0.49 0.43 0.61 0.94 1.26 1.40 1.59 1.22 - o-g 03 all cpen 0.30 0.75 0.14 0.19 0.18 0.14 0.24 0.49 0.76 0.72 0.73 0.42 - o-g 03 all qcpen 0.30 0.75 0.14 0.19 0.18 0.14 0.24 0.49 0.76 0.72 0.73 0.42 -\end{verbatim} -\end{tiny} - -For example, data type 120 has 1153 observations in layer 400.0-600.0 hPa, a bias of -0.15, and a RMS error of 0.69. The last column shows the statistics for the whole atmosphere. There are several summary lines for all data types, which is indicated by "all" in the data types column. For summary O-B (which is "o-g 01" in the file), there are 9482 observations in total, for a bias of 0.08, and a RMS error of 1.45. \\ - - Skipping ahead in the "fort" file, "o-g 03" columns (under "it") show the observation minus analysis (O-A) information. Under the summary ("all") rows, it can be seen that there were 9483 total observations, a bias of 0.05, and a RMS error of 1.22. This shows that from the background to the analysis, one more observation data point is being used because of the recalculation of the innovation and the gross check after each outer loop, the bias reduced from 0.08 to 0.05, and the RMS error reduced from 1.45 to 1.22. This is about a 16\% reduction, which is a reasonable value for a large-scale analysis. \\ - - -\item \textit{fit\_w1.2014061700} (\textit{fort.202}) - -This file demonstrates how the background and analysis fields fit to wind observations. This file (as well as \textit{fit\_q1}) is formatted the same way as \textit{fort.203}. Therefore, only the summary lines for O-B and O-A will be shown here to gain a quick view of the fit to observations: - -\begin{tiny} -\begin{verbatim} - - ptop 1000.0 900.0 800.0 600.0 400.0 300.0 250.0 200.0 150.0 100.0 50.0 0.0 - it obs type styp pbot 1200.0 1000.0 900.0 800.0 600.0 400.0 300.0 250.0 200.0 150.0 100.0 2000.0 ----------------------------------------------------------------------------------------------------------------------------------------------- - o-g 01 all count 1597 1703 1839 2930 1213 828 290 687 533 694 798 14513 - o-g 01 all bias 0.27 0.84 0.68 0.61 0.56 0.45 0.67 0.91 0.48 0.83 1.21 0.64 - o-g 01 all RMS error 2.50 2.65 2.52 3.11 4.02 3.98 4.37 4.31 5.32 5.41 4.77 3.59 ----------------------------------------------------------------------------------------------------------------------------------------------- - o-g 03 all count 1608 1695 1843 2931 1212 828 290 687 533 694 798 14520 - o-g 03 all bias 0.23 0.42 0.26 0.30 0.37 0.33 0.22 0.37 0.32 0.67 1.22 0.39 - o-g 03 all RMS error 2.27 2.16 1.94 2.23 2.74 2.82 3.64 3.31 4.22 4.43 4.41 2.90 - -\end{verbatim} -\end{tiny} - - \hspace{1cm} O-B: 14513 observations in total, bias is 0.64, and RMS error is 3.59 - - \hspace{1cm} O-A: 14520 observations in total, bias is 0.39, and RMS error is 2.90\\ -The total bias was reduced from 0.64 to 0.39 and the RMS error was reduced from 3.59 to 2.90 (~20\% reduction).\\ - - -\item \textit{fit\_q1.2014061700} (\textit{fort.204}) - -This file demonstrates how the background and analysis fields fit to moisture observations (relative humidity). The summary lines for O-B and O-A are as follows: - -\begin{tiny} -\begin{verbatim} - - ptop 1000.0 950.0 900.0 850.0 800.0 700.0 600.0 500.0 400.0 300.0 0.0 0.0 - it obs type styp pbot 1200.0 1000.0 950.0 900.0 850.0 800.0 700.0 600.0 500.0 400.0 300.0 2000.0 ----------------------------------------------------------------------------------------------------------------------------------------------- - o-g 01 all count 543 186 182 211 146 457 406 520 621 623 0 3895 - o-g 01 all bias 1.17 -3.68 -2.47 -1.30 -3.55 0.19 0.64 -1.80 -4.28 -5.55 0.00 -2.05 - o-g 01 all RMS error 9.09 10.63 9.03 9.34 12.73 12.30 14.53 15.27 16.45 16.01 0.00 13.66 ----------------------------------------------------------------------------------------------------------------------------------------------- - o-g 03 all count 543 186 182 211 146 457 406 520 621 623 0 3895 - o-g 03 all bias -0.39 -0.88 -0.68 0.45 -0.51 0.06 0.13 -0.10 -0.70 -1.90 0.00 -0.53 - o-g 03 all RMS error 5.48 5.19 4.37 5.73 8.13 9.31 12.19 13.82 13.01 12.36 0.00 10.64 - -\end{verbatim} -\end{tiny} - -\hspace{1cm} O-B: 3895 observations in total, bias is -2.05, and RMS error is 13.66 - -\hspace{1cm} O-A: 3895 observations in total, bias is -0.53, and RMS error is 10.64\newline -The total bias and RMS error were reduced. \\ - - -\item \textit{fit\_p1.2014061700} (\textit{fort.201}) - - This file demonstrates how the background and analysis fields fit to surface pressure observations. Because surface pressure is a two-dimensional field, the table is formatted differently than the three-dimensional fields shown above. Once again, only the summary lines will be shown for O-B and O-A to gain a quick view of the fit to observations: - - \begin{scriptsize} - \begin{verbatim} --------------------------------------------------- - pressure levels (hPa)= 0.0 2000.0 - it obs type stype count bias RMS error cpen qcpen - o-g 01 all 13890 0.1912 0.7931 0.4105 0.4105 --------------------------------------------------- - o-g 03 all 13916 0.0403 0.6764 0.2921 0.2921 - \end{verbatim} - \end{scriptsize} - -\hspace{1cm} O-B: 13890 observations in total, bias is 0.1912, and RMS error is 0.7931 - -\hspace{1cm} O-A: 13916 observations in total, bias is 0.0403, and RMS error is 0.6764\newline - -Both the total bias and RMS error were reduced. \\ - -These statistics show that the analysis results fit to the observations closer than the background, which is what we would expect. How close the analysis fits to the observations is based on the ratio of background error variance and observation error. - -\end{itemize} - -%------------------------------------------------------------------------------- -\subsubsection{Check the Minimization} -\label{sec5.1.4.2} -%------------------------------------------------------------------------------- - -In addition to the minimization information in the standard output file, GSI writes more detailed information into a file called "fort.220." The content of "fort.220" is explained in the Advanced GSI User\textquotesingle s Guide. Below is an example of a quick check of the cost function trend and the norm of gradient. The values should get smaller with each iteration. - -In the run directory, information on the cost function and norm of the gradient can be dumped into an output file by using the following command: - -\begin{scriptsize} -\begin{verbatim} -$ grep 'cost,grad,step,b' fort.220 | sed -e 's/cost,grad,step,b,step? = //g' | sed -e 's/good//g' > cost_gradient.txt -\end{verbatim} -\end{scriptsize} - -The file \textit{cost\_gradient.txt} includes six columns, however only the first four columns are needed and are explained below. The first five and last five lines read are: - -\begin{scriptsize} -\begin{verbatim} -1 0 3.249585514567150676E+04 1.063729546888358080E+01 2.548553547231620442E+01 0.000000000000000000E+00 -1 1 2.961211443694752961E+04 9.854892517701838273E+00 2.514521805501437157E+01 8.583043995786756586E-01 -1 2 2.717003835484893352E+04 9.272050290563644381E+00 1.036575164309021346E+01 8.852129791983981422E-01 -1 3 2.627888518494048549E+04 7.538909651153024249E+00 1.948409284114243079E+01 6.610975081120487040E-01 -1 4 2.517150367563822510E+04 5.715354258100989071E+00 2.423238066649372513E+01 5.747370998254690555E-01 -... ... -2 41 2.283066394128102547E+04 2.700371175626514980E-04 4.661917669555924704E+01 3.046618826707093719E-01 -2 42 2.283066393788155256E+04 1.845403996927800583E-04 5.290241773629001187E+01 4.670206697407201513E-01 -2 43 2.283066393607995633E+04 1.877001128106250809E-04 2.191568845986752123E+01 1.034537274286373876E+00 -2 44 2.283066393530783535E+04 1.348952308210814343E-04 4.180909725254741716E+01 5.164945106960998622E-01 -2 45 2.283066393454704667E+04 1.062032727187987424E-04 2.399192596022169610E+01 6.198386233002942669E-01 - -\end{verbatim} -\end{scriptsize} - -The first column is the outer loop number and the second column is the inner iteration number. The third column is the cost function, and the forth column is the norm of the gradient. It can be seen that both the cost function and norm of the gradient are descending. - -To get a complete picture of the minimization process, the cost function and norm of the gradient can be plotted using an included NCL script located here: - -\begin{scriptsize} -\begin{verbatim} -./util/Analysis_Utilities/plot_ncl/GSI_cost_gradient.ncl. -\end{verbatim} -\end{scriptsize} - -The plot is shown as Fig.\ref{fig:costgrad_ch5}: - -\begin{figure}[h!] - \centering - \includegraphics[width=0.7\textwidth]{images/CostGrad_ch5} - \caption{The cost function (y-axes) and norm of the gradient (y-axes) change with each iteration (x-axes).} - \label{fig:costgrad_ch5} -\end{figure} - -The above plots demonstrate that both the cost function and norm of the gradient descend very fast in the first ten iterations in both outer loops and drop very slowly afterward. - -%------------------------------------------------------------------------------- -\subsubsection{Check the Analysis Increment} -\label{sec5.1.4.3} -%------------------------------------------------------------------------------- - -The analysis increment gives us an idea of where and how much the background fields have been modified by the observations through the analysis. Another useful graphics tool that can be used to look at the analysis increment is located here: - -\begin{scriptsize} -\begin{verbatim} -./util/Analysis_Utilities/plot_ncl/Analysis_increment.ncl. -\end{verbatim} -\end{scriptsize} - -The graphic below shows the analysis increment at the 15th sigma (vertical) level on the analysis grid. Notice that the scales are different for each of the plots. - -\begin{figure}[h!] - \centering - \includegraphics[width=0.9\textwidth]{images/increments} - \caption{Analysis increment at the 15th level} - \label{fig:increments} -\end{figure} - -The analysis increment indicates that conventional observations are mostly located within the continental United States and that data availability over the ocean is very sparse. - -%------------------------------------------------------------------------------- -\section{Assimilating Radiance Data with Regional GSI} -%------------------------------------------------------------------------------- - -%------------------------------------------------------------------------------- -\subsection{Run Script} -\label{sec5.2.1} -%------------------------------------------------------------------------------- - -Adding radiance data into the GSI analysis is straightforward after having already run GSI with conventional data. The same run script from the above section can be used to run GSI with radiance data (with or without PrepBUFR data). The key step to adding the radiance data is linking the radiance BUFR files to the GSI run directory with the names listed in the \verb|&OBS_INPUT| section of the GSI namelist. The following example adds the two radiance BUFR files: - -AMSU-A: \textit{gdas1.t00z.1bamua.tm00.bufr\_d}\newline -HIRS4: \textit{gdas1.t00z.1bhrs4.tm00.bufr\_d} - -The location of these radiance BUFR files is already included in the scripts variable \verb|OBS_ROOT|, therefore the following two lines can be inserted below the link to the prepBUFR data in the script \textit{run\_gsi\_regional.ksh}: - -\begin{scriptsize} -\begin{verbatim} - ln -s ${OBS_ROOT}/gdas1.t${HH}z.1bamua.tm00.bufr_d amsuabufr - ln -s ${OBS_ROOT}/gdas1.t${HH}z.1bhrs4.tm00.bufr_d hirs4bufr -\end{verbatim} -\end{scriptsize} - -If radiance data is desired in addition to conventional prepBUFR data, the following link to the prepBUFR data should be kept as is: - -\begin{scriptsize} -\begin{verbatim} -ln -s ${PREPBUFR} ./prepbufr -\end{verbatim} -\end{scriptsize} - -Alternatively, to analyze radiance data without conventional prepBUFR data, this line can be commented out in the script \textit{run\_gsi\_regional.ksh}: - -\begin{scriptsize} -\begin{verbatim} -# ln -s ${PREPBUFR} ./prepbufr -\end{verbatim} -\end{scriptsize} - -In the following example, both radiance and conventional observations will be assimilated. - -In order to link the correct name for the radiance BUFR file, the namelist section \verb|&OBS_INPUT| should be referenced. This section has a list of data types and BUFR file names that can be used in GSI. The 1\textsuperscript{st} column \verb|"dfile"| is the file name recognized by GSI. The 2\textsuperscript{nd} column \verb|"dtype"| and 3\textsuperscript{rd} column \verb|"dplat"| are the data type and data platform that are included in the file listed in "dfile," respectively. For example, the following line tells us the AMSU-A observation from NOAA-15 should be read from a BUFR file named \textit{"amsuabufr"}: - -\begin{scriptsize} -\begin{verbatim} -! dfile dtype dplat dsis dval dthin dsfcalc - amsuabufr amsua n15 amsua_n15 10.0 2 0 -\end{verbatim} -\end{scriptsize} - -With radiance data assimilation, data thinning and bias correction need to be checked carefully. The following is a brief description of these two: - -\begin{itemize} -\item Radiance data thinning - -Radiance data thinning is found in the namelist section \verb|&OBS_INPUT|. The following is a part of namelist in that section: - -\begin{scriptsize} -\begin{verbatim} -dmesh(1)=120.0,dmesh(2)=60.0,dmesh(3)=30,time_window_max=1.5,ext_sonde=.true. -! dfile dtype dplat dsis dval dthin dsfcalc - amsuabufr amsua n15 amsua_n15 10.0 2 0 -\end{verbatim} -\end{scriptsize} - -The first line of \verb|&OBS_INPUT| lists multiple mesh grids as elements of the array \verb|dmesh| (three mesh grids in the above example). For the line specifying data type, the 2\textsuperscript{nd} to last element of that line is used to specify the choice of \verb|dthin|. This selects the mesh grid to be used for thinning. The data thinning option for NOAA-15 AMSU-A observations is set to 60 km because the value of \verb|dthin| is two, corresponding to \verb|dmesh(2)|=60 km. For more information about radiance data thinning, please refer to the Advanced GSI User\textquotesingle s Guide.\\ - -\item Radiance data bias correction - -Radiance data bias correction is very important for successful radiance data assimilation. In the sample run scripts, there are two files related to bias correction: - -\begin{scriptsize} -\begin{verbatim} -# for satellite bias correction -cp ${FIX_ROOT}/gdas1.t00z.abias.20150617 ./satbias_in -cp ${FIX_ROOT}/gdas1.t00z.abias_pc.20150617 ./satbias_pc -\end{verbatim} -\end{scriptsize} - -For this case, the GDAS bias correction files were downloaded and saved in the fix directory as examples. For other cases, the run script should link to corresponding bias correction coefficient files. The first line sets the path to the bias coefficient file, and the second copies the bias correction coefficients for passive (monitored) channels into the working directory. These two coefficient files are usually calculated from within GSI in the previous cycle. Two files are provided in ./fix as examples of the bias correction coefficients. For the best results, it is necessary for the user to generate his or her own bias files. The details of radiance data bias correction are discussed in the Advanced GSI User\textquotesingle s Guide. Please note that GSI releases prior to v3.5 have coefficients for mass bias correction and angle bias correction calculated separately. \\ - -Once these links are set, we are ready to run GSI. - - -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Run GSI and Check Run Status} -\label{sec5.2.2} -%------------------------------------------------------------------------------- - -The process for running GSI is the same as described in section \ref{sec5.1.2}. Once \textit{run\_gsi\_regional.ksh} has been submitted, move into the run directory to check the GSI analysis results. For the current case, the run directory will look almost as it did for the conventional data case, the exception being the two links to the radiance BUFR files and new diag files for the radiance data types used. Following the same steps as in section \ref{sec5.1.2}, check the \textit{stdout} file to see if GSI has run through each part of the analysis process successfully. In addition to the information outlined for the conventional run, the radiance BUFR files should have been read in and distributed to each sub domain: - -\begin{scriptsize} -\begin{verbatim} -OBS_PARA: ps 1429 3190 4655 6774 -OBS_PARA: t 2564 5200 7057 11128 -OBS_PARA: q 2346 4626 6148 8128 -OBS_PARA: pw 65 80 63 49 -OBS_PARA: uv 3358 6453 8091 11998 -OBS_PARA: hirs4 metop-a 0 0 1146 1661 -OBS_PARA: hirs4 n19 213 1020 0 0 -OBS_PARA: hirs4 metop-b 0 0 85 555 -OBS_PARA: amsua n15 1458 2026 830 234 -OBS_PARA: amsua n18 2223 2318 108 0 -OBS_PARA: amsua n19 176 960 0 0 -OBS_PARA: amsua metop-a 0 0 1077 1559 -OBS_PARA: amsua metop-b 0 0 265 1829 -\end{verbatim} -\end{scriptsize} - - -When comparing this output to the content in step three of section \ref{sec5.1.3}, it can be seen that there are eight new radiance data types that have been read in: HIRS4 from METOP-A, METOP-B and NOAA-19, AMSU-A from NOAA-15, NOAA-18, NOAA-19, METOP-A, and METOP-B. The table above shows that most of the radiance data read in for this case are AMSU-A from NOAA satellite information. - -%------------------------------------------------------------------------------- -\subsection{Diagnose GSI Analysis Results} -%------------------------------------------------------------------------------- - -%------------------------------------------------------------------------------- -\subsubsection{Check File fort.207} -%------------------------------------------------------------------------------- - -The file \textit{fort.207} contains the statistics for the radiance data, similar to file \textit{fort.203} for temperature. This file contains important details about the radiance data analysis. Section \ref{sec4.5.2} explains this file in detail. Below are some values from the file \textit{fort.207} to provide a quick look at the radiance assimilation for this example. - -The \textit{fort.207} file contains the following lines: - -\hspace{4ex} For O-B, before the first outer loop: - -\begin{scriptsize} -\begin{verbatim} - it satellite instrument # read # keep # assim penalty qcpnlty cpen qccpen -o-g 01 rad n15 amsua 83190 58236 25226 10356. 10356. 0.41053 0.41053 -o-g 01 rad n18 amsua 83595 69147 27677 11067. 11067. 0.39988 0.39988 -\end{verbatim} -\end{scriptsize} - -\hspace{4ex} For O-A, after the second outer loop: - -\begin{scriptsize} -\begin{verbatim} -o-g 03 rad n15 amsua 83190 58236 30136 4672.4 4672.4 0.15504 0.15504 -o-g 03 rad n18 amsua 83595 69147 32253 8546.8 8546.8 0.26499 0.26499 -\end{verbatim} -\end{scriptsize} - -From the above information, it can be seen that AMSU-A data from NOAA-15 provides 83190 observations within the analysis time window and domain. After thinning, 58236 observations remained, and only 25226 passed the quality check and were used in the analysis. The penalty for this data decreased from 10356 to 4672.4 after two outer loops. It is important to note that the number of AMSU-A observations assimilated in the O-A calculation increased to 30136 from 25226 as more data passed the quality check in the 2\textsuperscript{nd} outer loop. - -The statistics for each channel can be viewed in the \textit{fort.207} file as well. Here, channels from AMSU-A NOAA-15 are listed as an example: - -\hspace{4ex} For O-B, before the first outer loop: - -\begin{scriptsize} -\begin{verbatim} - 1 1 amsua_n15 1903 24 3.000 1.6543287 -0.3164878 0.1411234 1.7151923 1.6857402 - 2 2 amsua_n15 1927 0 2.200 1.0105548 -0.2430249 0.0385590 1.0284683 0.9993427 - 3 3 amsua_n15 1927 0 2.000 1.7941589 -0.1480894 0.0575956 0.7909800 0.7769935 - 4 4 amsua_n15 1927 0 0.600 -0.1848763 -0.0460476 0.0856369 0.2497797 0.2454985 - 5 5 amsua_n15 1927 4 0.300 0.0314288 -0.0292998 0.3025052 0.2008865 0.1987383 - 6 6 amsua_n15 4126 10 -0.230 -1.8448526 -0.0778284 0.8969513 0.2463875 0.2337725 - 7 7 amsua_n15 4468 13 0.250 -0.1497841 -0.0810899 0.5245399 0.2042760 0.1874916 - 8 8 amsua_n15 4468 13 0.275 -0.0251081 -0.0869918 0.6195120 0.2420568 0.2258847 - 9 9 amsua_n15 4463 18 0.340 0.1824903 0.2108491 0.6987405 0.3453174 0.2734717 - 10 10 amsua_n15 294 4187 0.400 0.7946961 0.7908103 2.5281681 0.7982470 0.1087077 - 15 15 amsua_n15 1922 5 3.500 1.6785936 -0.1471413 0.0940713 1.6461928 1.6396037 -\end{verbatim} -\end{scriptsize} - -\hspace{4ex} For O-A, after the second outer loop: - -\begin{scriptsize} -\begin{verbatim} - 1 1 amsua_n15 2050 10 3.000 2.0842622 0.1363398 0.0414276 1.0332965 1.0242622 - 2 2 amsua_n15 2060 0 2.200 1.0926873 -0.0731534 0.0177924 0.8048238 0.8014923 - 3 3 amsua_n15 2060 0 2.000 1.8733559 -0.0257656 0.0406385 0.6841159 0.6836305 - 4 4 amsua_n15 2060 0 0.600 -0.1278763 0.0136412 0.0547146 0.2103718 0.2099291 - 5 5 amsua_n15 2060 4 0.300 0.0730860 0.0118626 0.1759475 0.1624923 0.1620587 - 6 6 amsua_n15 4234 0 -0.230 -1.7911421 -0.0262042 0.5247873 0.1975867 0.1958414 - 7 7 amsua_n15 4470 11 0.250 -0.0766482 -0.0094307 0.1918646 0.1288789 0.1285334 - 8 8 amsua_n15 4475 6 0.275 0.0675371 -0.0047226 0.1715888 0.1341703 0.1340871 - 9 9 amsua_n15 4481 0 0.340 -0.0508290 -0.0396425 0.1722334 0.1711928 0.1665396 - 10 10 amsua_n15 4362 119 0.400 0.2373520 0.1943598 0.3425567 0.3140220 0.2466457 - 15 15 amsua_n15 2058 2 3.500 1.8261335 0.0617429 0.0487809 1.2317674 1.2302190 -\end{verbatim} -\end{scriptsize} - -The second column is the channel number for AMSU-A and the last column is the standard deviation for each channel. It can be seen that most of the channels fit better to the observations after the second outer loop. - -%------------------------------------------------------------------------------- -\subsubsection{Check the Analysis Increment} -%------------------------------------------------------------------------------- - -The same methods for checking the optimal minimization as demonstrated in section \ref{sec5.1.4.2} can be used for radiance assimilation. Similar features to the conventional assimilation should be seen with the minimization. The figures below show detailed information on how the radiance data impact the analysis results on top of the conventional data. Using the same NCL script as in section \ref{sec5.1.4.3}, analysis increment fields are plotted comparing the analysis results with radiance and conventional data to the analysis results with conventional data assimilation only. Figure \ref{fig:increments_rad2} is for vertical level 49 and Figure \ref{fig:increments_rad} is for vertical level six, representing the maximum temperature increment level (49) and maximum moisture increment level (6), respectively. - -\begin{figure}[h!] - \centering - \includegraphics[width=0.9\textwidth]{images/increments_rad} - \caption{Analysis increment fields of the prepBUFR and radiance data analysis compared to the analysis with prepBUFR only at vertical level six} - \label{fig:increments_rad} -\end{figure} - -\begin{figure}[h!] - \centering - \includegraphics[width=0.9\textwidth]{images/increments_rad2} - \caption{Analysis increment fields of the prepBUFR and radiance data analysis compared to the analysis with prepBUFR only at vertical level 49} - \label{fig:increments_rad2} -\end{figure} - -In order to fully understand the analysis results, the following topics should be reviewed: - -\begin{enumerate} -\item The weighting functions of each channel and the data coverage at the analysis time. There are several sources on the internet that show the weighting functions of the AMSU-A channels. Channel one is the moisture channel, while the others are mainly temperature channels (Channels two, there, and 15 also have large moisture signals). Because a model top of 20 mb was specified for this case study, the actual impact should come from channels with peak weighting below 20 hPa. - -\item The usage of each channel is located in the file named \textit{'satinfo'} in the run directory. The first two columns show the observation type and platform of the channels, and the third column indicates if the channel is used in the analysis. Because many amsua\_n15 and amsua\_n18 data were used, they should be checked in detail. In this case, Channels six, 11, and 14 from amsua\_n15 and channels nine and 14 from amsua\_n18 were turned off. - -\item Thinning information, including a quick look at the namelist in the run directory. The file "gsiparm.anl" shows that both amsua\_n15 and amsu\_n18 use thinning grid two, which is 60 km. In this case, the grid spacing is 30 km, which indicates to use the satellite observations every four grid-spaces, which might be a little dense. - -\item Bias correction: Radiance bias correction was previously discussed. It is very important for a successful radiance data analysis. The run script can only link to the GDAS bias correction coefficients that are provided as an example in \textit{./fix}: - -\begin{scriptsize} -\begin{verbatim} -cp ${FIX_ROOT}/gdas1.t00z.abias.20150617 ./satbias_in -cp ${FIX_ROOT}/gdas1.t00z.abias_pc.20150617 ./satbias_pc -\end{verbatim} -\end{scriptsize} - -Users can download the operational bias correction coefficients during their experiment period as a starting point to calculate the coefficients suitable for their experiments. \\ - -Radiance bias correction for regional analyses is a difficult issue because of the limited coverage of radiance data. This topic is out of the scope of this document, but this issue should be considered and understood when using GSI with radiance applications. -\end{enumerate} - -%------------------------------------------------------------------------------- -\section{Assimilating GPS Radio Occultation Data with Regional GSI} -%------------------------------------------------------------------------------- - -%------------------------------------------------------------------------------- -\subsection{Run Script} -%------------------------------------------------------------------------------- - -The addition of GPS Radio Occultation (RO) data into the GSI analysis is similar to that of adding radiance data. In the example below, the RO data is used as refractivity. There is also an option to use the data as bending angles. The same run scripts in sections \ref{sec5.1.1} and \ref{sec5.2.1} can be used with the addition of the following link to RO observations: - -\begin{scriptsize} -\begin{verbatim} - ln -s ${OBS_ROOT}/gdas1.t${HH}z.gpsro.tm00.bufr_d gpsrobufr -\end{verbatim} -\end{scriptsize} - -For this case study, the GPS RO BUFR file was downloaded and saved in the \verb|OBS_ROOT| directory. The file is linked to the name \textit{gpsrobufr}, following the namelist section \verb|&OBS_INPUT|: - -\begin{scriptsize} -\begin{verbatim} -! dfile dtype dplat dsis dval dthin dsfcalc - - gpsrobufr gps_ref null gps 1.0 0 0 -\end{verbatim} -\end{scriptsize} -This indicates that GSI is expecting a GPS refractivity BUFR file named \textit{gpsrobufr}. In the following example, GPS RO and conventional observations are both assimilated. Change the run directory name in the run scripts to reflect this test: - -\begin{scriptsize} -\begin{verbatim} -WORK_ROOT=/scratch1/gsiprd_${ANAL_TIME}_gps_prepbufr -\end{verbatim} -\end{scriptsize} - -%------------------------------------------------------------------------------- -\subsection{Run GSI and Check the Run Status} -%------------------------------------------------------------------------------- - -The process of running GSI is the same as described in section \ref{sec5.1.2}. Once \textit{run\_gsi\_regional.ksh} has been submitted, move into the working directory, \textit{gsiprd\_2014061700\_gps\_prepbufr}, to check the GSI analysis results. The run directory will look exactly the same as with the conventional data, with the exception of the link to the GPS RO BUFR files used in this case. Following the same steps as in section \ref{sec5.1.3}, check the standard output file to see if GSI has run through each part of the analysis process successfully. In addition to the information outlined for the conventional run, the GPS RO BUFR files should have been read in and distributed to each sub domain: - -\begin{scriptsize} -\begin{verbatim} -OBS_PARA: ps 1429 3190 4655 6774 -OBS_PARA: t 2564 5200 7057 11128 -OBS_PARA: q 2346 4626 6148 8128 -OBS_PARA: pw 65 80 63 49 -OBS_PARA: uv 3358 6453 8091 11998 -OBS_PARA: gps_ref 1799 1368 2664 3520 -\end{verbatim} -\end{scriptsize} - -Comparing the output to the content in section \ref{sec5.1.3}, it can be seen that the GPS RO refractivity data have been read in and distributed to four sub-domains successfully. - -%------------------------------------------------------------------------------- -\subsection{Diagnose GSI Analysis Results} -%------------------------------------------------------------------------------- - -%------------------------------------------------------------------------------- -\subsubsection{Check File \textit{fort.212}} -%------------------------------------------------------------------------------- - -The file \textit{fort.212} shows the fit of the analysis/background to the GPS/RO data as fractional differences. It has the same structure as the fit files for conventional data. Below is a quick look to be sure the GPS RO data were used: - -\begin{tiny} -\begin{verbatim} - Observation - Background (O-B) - - ptop 1000.0 900.0 800.0 600.0 400.0 300.0 250.0 200.0 150.0 100.0 50.0 0.0 - it obs type styp pbot 1200.0 1000.0 900.0 800.0 600.0 400.0 300.0 250.0 200.0 150.0 100.0 2000.0 ----------------------------------------------------------------------------------------------------------------------------------------------- - o-g 01 all count 0 13 58 223 355 342 232 261 326 440 729 3740 - o-g 01 all bias 0.00 -0.76 -0.03 -0.06 -0.04 0.01 -0.03 0.04 -0.04 -0.16 -0.18 -0.14 - o-g 01 all RMS error 0.00 1.41 0.75 0.96 0.79 0.35 0.32 0.42 0.54 0.57 0.55 0.59 - - Observation - Analysis (O-A) - - ptop 1000.0 900.0 800.0 600.0 400.0 300.0 250.0 200.0 150.0 100.0 50.0 0.0 - it obs type styp pbot 1200.0 1000.0 900.0 800.0 600.0 400.0 300.0 250.0 200.0 150.0 100.0 2000.0 ----------------------------------------------------------------------------------------------------------------------------------------------- - o-g 03 all count 1 18 65 229 355 342 231 266 330 440 731 3776 - o-g 03 all bias -0.40 -0.43 0.03 0.02 -0.02 -0.01 -0.02 0.00 0.01 -0.01 -0.02 0.00 - o-g 03 all RMS error 0.40 1.03 0.54 0.59 0.70 0.26 0.14 0.20 0.24 0.28 0.39 0.41 -\end{verbatim} -\end{tiny} - -It can be seen that most of the GPS RO data are located in the upper levels, with a total of 3740 observations used in the analysis during the 1\textsuperscript{st} outer loop, and 3776 used to calculate O-A. After the analysis, the data bias reduced from -0.14 to 0.00, and the RMS error was reduced from 0.59 to 0.41. It can be concluded that the analysis with GPS RO data looks reasonable from these statistics. - -%------------------------------------------------------------------------------- -\subsubsection{Check the Analysis Increment} -%------------------------------------------------------------------------------- - -The same methods for checking the minimization in section \ref{sec5.1.4.2} can be used for the GPS RO assimilation. - -The following figures provide detailed information about how the new data impacts the analysis. Using the NCL script from section \ref{sec5.1.4}, analysis increment fields are plotted comparing the analysis results with GPS RO and conventional data to the analysis results with conventional data assimilation only for vertical level 48, which represents the maximum temperature increment. - -\begin{figure}[h!] - \centering - \includegraphics[width=0.9\textwidth]{images/increments_bufr} - \caption{Analysis increment fields comparing the use of GPS RO and conventional observations to only prepBUFR at vertical level 48.} - \label{fig:increments_bufr} -\end{figure} - -%------------------------------------------------------------------------------- -\section{Introduction to GSI Hybrid 3DEnVar Analysis} -%------------------------------------------------------------------------------- - -The three-dimensional hybrid ensemble-variational (hybrid 3DEnVar) analysis is an important option in the GSI system that has been used operationally. It provides the ability to bring the flow dependent background error covariance into the analysis based on ensemble forecasts. If ensemble forecasts have been generated, setting up GSI to do a hybrid analysis is straightforward and only requires two changes in the run script in addition to the current 3DVAR run script: - -\begin{itemize}[leftmargin=*] -\item \textit{Change 1: Link the ensemble members to the GSI run directory}\\ - -This change is required to link the ensemble members to the GSI run directory and assign each ensemble member a name that GSI recognizes. GSI can accept four kinds of ensemble forecasts, controlled by the namelist variable \textit{regional\_ensemble\_option}. Table \ref{tab51} provides a list of options for \textit{regional\_ensemble\_option} and the naming convention for linking the ensemble files to GSI recognized names. \\ - - -\begin{table}[htbp] -\centering -\begin{small} -\caption{List of ensemble forecasts that can be read by GSI} -\begin{tabular}{|p{1.7cm}|p{4cm}|p{4.6cm}|p{4cm}|} -\hline -\hline -regional\_ ensemble\_ option & explanation & Function called & GSI recognized ensemble file names \\ -\hline -1 & GFS ensemble internally interpolated to hybrid grid & get\_gefs\_for\_regional & \textit{filelist : a text file including the path and name of ensemble files} \\ -\hline -2 & Ensemble is in WRF-NMM (HWRF) format & get\_wrf\_nmm\_ensperts & -\textit{d01\_en001},\newline \textit{d01\_en002},\newline ... \\ -\hline -3 & Ensemble is in ARW netcdf format & get\_wrf\_mass\_ensperts\_netcdf & -\textit{wrf\_en001}, \newline -\textit{wrf\_en002}, \newline ... \\ -\hline -4 & Ensemble is in NMMB format & get\_nmmb\_ensperts & - \textit{nmmb\_ens\_mem001},\newline - \textit{nmmb\_ens\_mem002},\newline ...\\ -\hline -\end{tabular} -\label{tab51} -\end{small} -\end{table} - - -Users have to change the GSI run script to add the links to the ensemble forecasts if they want to use the GSI hybrid function. Below is an example of using an ensemble in ARW netcdf format, assuming that all the ensemble members are located in a directory defined by the parameter \textit{\${mempath}} and the ensemble members have a name such as: \textit{wrfout\_d01\_\${iiimem}}, where \textit{\${iiimem}} is an integer indicating the ensemble member ID. The following lines should be added to the run script with loop \textit{iiimem} from one to the total number of ensemble members: - -\begin{scriptsize} -\begin{verbatim} - if [ -r ${mempath}/wrfout_d01_${iiimem} ]; then - ln -sf ${mempath}/wrfout_d01_${iiimem} ./wrf_en${iiimem} - else - echo "member ${mempath}/wrfout_d01_${iiimem} does not exit" - fi -\end{verbatim} -\end{scriptsize} - -\item \textit{Change 2: Set up the namelist options in section HYBRID\_ENSEMBLE}\\ - -Users need to set \verb|l_hyb_ens=.true.| to turn on the hybrid ensemble analysis. Commonly used namelist options for the hybrid analysis are listed in table \ref{tab52}: - -\begin{table}[htbp] -\centering -\caption{The list of namelist options for GSI hybrid} -\begin{tabular}{|p{3cm}|p{11cm}|} -\hline -Options & explanation \\ -\hline -l\_hyb\_ens & if true, turn on hybrid ensemble option \\ -\hline -uv\_hyb\_ens & if true, ensemble perturbation wind variables are u and v; \newline -otherwise, ensemble perturbation wind variables are stream function and velocity potential \\ -\hline -generate\_ens & if true, generate an internal ensemble based on the existing background error; recommended = false \\ -\hline -n\_ens & number of ensemble members \\ -\hline -beta1\_inv& (1/beta1), the weight given to the static background error covariance. 0 <= beta1\_inv <= 1, should be tuned for optimal performance; beta2\_inv = 1 - beta1\_inv is the weight given to the ensemble derived covariance \newline -=1, ensemble information turned off \newline -=0, static background errors turned off \\ -\hline -s\_ens\_h & homogeneous isotropic horizontal ensemble localization scale (km) \\ -\hline -s\_ens\_v & vertical localization scale \newline -If positive, in grid units; \newline -if negative, in lnp unit \\ -\hline -regional\_ensemble\newline -\_option & integer, used to select the type of ensemble to read in for regional applications. Currently takes values from one to four: \newline - =1: use GEFS internally interpolated to ensemble grid; \newline - =2: ensembles are in WRF-NMM format; \newline - =3: ensembles are in ARW netcdf format; \newline - =4: ensembles are in NMMB format. \\ -\hline -grid\_ratio\_ens & for regional runs, the ratio of ensemble to analysis grid resolution. If turned on and specified with an appropriate value, this could increase the computational efficiency. \\ -\hline -\end{tabular} -\label{tab52} -\end{table} - -Please note: the parameters \verb|s_ens_h|, \verb|s_ens_v|, and \verb|beta1_inv| are tunable parameters. They should be tuned for best performance.\\ - -After setting up the namelist parameters and the path/name of the ensemble members, GSI can be run in the same manner as the other 3DVAR cases introduced in this chapter. The same procedures could be followed as in the previous sections to check the run status and diagnose the GSI analysis. - -\end{itemize} - -\newpage -%------------------------------------------------------------------------------- -\section{Introduction to GSI Hybrid 4DEnVar Analysis} -%------------------------------------------------------------------------------- - -The GSI hybrid 4DEnVAR analysis is similar to the hybrid 3DEnVar except that the hybrid 4DEnVar will use multiple background files and GFS ensemble forecasts. As an example, the following shows how to conduct a hybrid 4DEnVar analysis using three time levels of background files and ensembles. - -Before creating a hybrid 4DEnVar analysis, be sure to read the previous section about how to run hybrid 3DEnVar first. The following steps are additional procudures beyond hybrid 3DEnVar and assume that all hybrid 3DEnVar settings have already been set. - -(1). Set \textit{if\_4DEnVar=Yes} in \textit{run\_gsi\_regional.ksh}. - -(2). Set the correct background files and ensemble files at different time levels in \textit{run\_gsi\_regional.ksh}. See the following example: -\begin{scriptsize} -\begin{verbatim} - if [ ${if_4DEnVar} = Yes ] ; then - BK_FILE_P1=${BK_ROOT}/wrfout_d01_2017-05-13_19:00:00 - BK_FILE_M1=${BK_ROOT}/wrfout_d01_2017-05-13_17:00:00 - - ENSEMBLE_FILE_mem_p1=${ENS_ROOT}/sfg_2017051312_fhr09s - ENSEMBLE_FILE_mem_m1=${ENS_ROOT}/sfg_2017051312_fhr03s - fi -\end{verbatim} -\end{scriptsize} - - Note that the background file at the analysis time (201705131800 for the above example) is set by \textit{BK\_FILE} and the ensemble files at the analysis time are set by \textit{ENSEMBLE\_FILE\_mem} as introduced in previous sections. See the following example: - -\begin{scriptsize} -\begin{verbatim} - BK_FILE=${BK_ROOT}/wrfout_d01_2017-05-13_18:00:00 - ... - if [ ${if_hybrid} = Yes ] ; then - ... - ENSEMBLE_FILE_mem=${ENS_ROOT}/sfg_2017051312_fhr06s - ... -\end{verbatim} -\end{scriptsize} - -Now GSI can be run following the hybrid 3DEnVar case introducted in the prevous section. Similar procedures can be conducted to check the GSI run status and results. - -%------------------------------------------------------------------------------- -\section{Summary} -%------------------------------------------------------------------------------- - -This chapter applied previous information outlined in the user\textquotesingle s guide to demonstrate how to set up, run, and analyze GSI for various regional applications. It is important to always check for a successful GSI analysis, as running to completion does not always indicate a successful analysis was generated. Using the tools and methods described in this chapter, a complete picture of the GSI analysis can be obtained. - -It is important to realize that GSI applications are not limited to regional analyses with WRF. Other GSI applications, including global analyses for GFS, chemical analyses, and others will be introduced in the next chapter. diff --git a/doc/GSI_user_guide/gsi_ch6.tex b/doc/GSI_user_guide/gsi_ch6.tex deleted file mode 100644 index b6905ed27..000000000 --- a/doc/GSI_user_guide/gsi_ch6.tex +++ /dev/null @@ -1,616 +0,0 @@ -\chapter{Introduction to more GSI Applications}\label{gsi_global} -\setlength{\parskip}{12pt} - -%------------------------------------------------------------------------------- -\section{Introduction to Global GSI analysis} -%------------------------------------------------------------------------------- - -The \textit{Global Forecast System (GFS)} is a global numerical weather prediction system containing a global computer model and variational analysis -run by the U.S. National Weather Service (NWS). As of February 2015, the numerical model is run four times a day, and produces forecasts for up -to 16 days in advance, with decreased spatial resolution after 10 days. It is a spectral model with a resolution of T1534 from 0 to 240 hours -(0-10 days) and T574 from 240 to 384 hours (10-16 days). In the vertical, the model is divided into 64 layers and temporally, it produces forecast output -every hour for the first 12 hours, every 3 hours out to 10 days, and every 12 hours after that. Its data assimilation system runs 6-hourly continuous cycles -using the GSI-hybrid. - -GSI has many functions specifically designed and tuned for GFS. Although the release version of the community GSI includes all the functions used by the -operational systems, the DTC can only support the GSI regional applications because the DTC is not able to run GFS on community computers. Beginning -with release version 3.2, the DTC began to introduce the use of GSI for global applications, assuming users can obtain the GFS background through the -NCEP data hub or by running GFS themselves. - -%------------------------------------------------------------------------------- -\subsection{The Difference between Global and Regional GSI} -%------------------------------------------------------------------------------- - -As mentioned above, all of the NCEP operational systems use GSI as their analysis system. The majority of the GSI code is common to these -operational systems. Very little source code is specific to a particular operational system. The main differences in the GSI operational application -come from the configuration the run scripts and namelist parameters. - -The different GSI applications need different backgrounds, observations, and fixed files. For the GFS system, GSI needs: - -\begin{itemize} -\item GFS Backgrounds: Typically, GSI uses 6-h GFS forecasts as the background. GFS 3-h and 9-h forecasts are also needed for the FGAT function in -the GSI analysis. Both surface and atmosphere forecasts are needed. -\item Observations: NCEP has several sets of BUFR/prepBUFR observation files with global coverage for global systems. The files that start with the -prefix \textbf{GDAS} are for the 6-hourly global data assimilation system. These files have more data available for the analysis, but have a longer delay -for use in real-time. The files that start with \textbf{gfs} are for the GFS forecasts. Different operational systems need different observation data files because they require different kinds of observations with different coverage, cut-off times, and quality control processes. All these observation -files are read in and processed in GSI by the same section of code. Therefore, there is no problem using GFS observation data files for regional GSI -applications, as is described in the practice cases and the GSI User\textquotesingle s Guide. Using regional BUFR files for global applications will cause -problems since the data only cover part of the analysis domain, but GSI can still read in the observations and perform the analysis. -\item Fixed files: Section 3.1 of the GSI User\textquotesingle s Guide introduced the notion that different operational systems have their own fixed files. -These global fixed files can be downloaded as a separate tar ball from the GSI user\textquotesingle s website -(\url{http://www.dtcenter.org/com-GSI/users/downloads/index.php}). For the GFS GSI application, the big difference is the background error covariance (BE). -Different resolutions of the GFS backgrounds use their matched BE files, which are different from the BE files used by the regional GSI applications. In -release version 3.4, ten new BE files were provided for users (in addition to the two for release version 3.3): \\ -\begin{enumerate} -\item \verb| global_berror.l64y386.f77 | -\item \verb| global_berror.l64y96.f77 | -\item \verb| global_berror.l64y1154.f77 | -\item \verb| global_berror.l64y290.f77 | -\item \verb| global_berror.l64y882.f77 | -\item \verb| global_berror.l64y130.f77 | -\item \verb| global_berror.l64y192.f77 | -\item \verb| global_berror.l64y578.f77 | -\item \verb| global_berror.l64y258.f77 | -\item \verb| global_berror.l64y674.f77 | -\end{enumerate} -\end{itemize} - -%------------------------------------------------------------------------------- -\subsection{Global GFS Scripts} -%------------------------------------------------------------------------------- - -Starting with release version 3.3, support for running GSI global applications was added to the community release. Specifically a sample global analysis -run script was added to the \verb|./run| directory named \verb|run_gsi_global.ksh| of the community release. This script \verb|run_gsi_global.ksh| is -based on the GSI GFS regression tests. This script retains the same basic structure as the regional run script \verb|run_gsi_regional.ksh|, but includes -additional details needed for the global analysis. - -\begin{table}[htbp] -\centering -\caption{The grid dimensions for GFS.} -\begin{tabular}{|p{3cm}|p{4.5cm}|p{4.45cm}|} -\hline -&EULERIAN&SEMI-LAGRANGIAN\\ -\end{tabular} -\begin{tabular}{|p{3cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|} -\hline -SPECTRAL RESOLUTION & LONB & LATB & LONB & LATB \\ -\hline -T62&192&94&128&64\\ -\hline -T126&384&190&256&128\\ -\hline -T170&512&256&352&176\\ -\hline -T190&576&288&384&192\\ -\hline -T254&768&384&512&256\\ -\hline -T382&1152&576&768&384\\ -\hline -T574&1760&880&1152&576\\ -\hline -T878&2304&1152&1760&880\\ -\hline -T1148&&&2304&1152\\ -\hline -T1534&&&3072&1536\\ -\hline -T2014&&&4032&2016\\ -\hline -T2046&&&4096&2048\\ -\hline -T3070&&&6144&3072\\ -\hline -\end{tabular} -\label{ch6_table1} -\end{table} - -The first part of the global analysis run script, just as in the regional script, sets up the computer environment and case configuration. The primary -differences between the global and regional scripts are the specification of the GFS case and the global application namelist. -\begin{small} -\begin{verbatim} - GFSCASE=T126 - GSI_NAMELIST=${GSI_ROOT}/run/comgsi_namelist_gfs.sh -\end{verbatim} -\end{small} -While the regional script simply specifies the background and BE files, the global script needs to know the background resolution by defining the -following parameters: -\begin{scriptsize} -\begin{verbatim} -# Set the JCAP resolution which you want. -# All resolutions use LEVS=64 -if [[ "$GFSCASE" = "T62" ]]; then - JCAP=62 - JCAP_B=62 -elif [[ "$GFSCASE" = "T126" ]]; then - JCAP=126 - JCAP_B=126 -elif [[ "$GFSCASE" = "enkf_glb_t254" ]]; then - JCAP=254 - JCAP_B=254 -elif [[ "$GFSCASE" = "T254" ]]; then - JCAP=254 - JCAP_B=574 -elif [[ "$GFSCASE" = "T574" ]]; then - JCAP=574 - JCAP_B=1534 -else - echo "INVALID case = $GFSCASE" - exit -fi - LEVS=64 -# -\end{verbatim} -\end{scriptsize} - -Just as with the regional analysis run script, the global script double checks the needed parameters, creates a run directory, and copies the background, observations, and fixed files into the run directory. It generates the namelist, and places it in the run directory as well. -\begin{enumerate} -\item Specify the values of \verb|LATA|, \verb|LONA|, \verb|DELTIME|, \verb|resol| based on the choice of \verb|JCAP|: -\begin{scriptsize} -\begin{verbatim} -# Given the requested resolution, set dependent resolution parameters -if [[ "$JCAP" = "382" ]]; then - LONA=768 - LATA=384 - DELTIM=180 - resol=1 -elif [[ "$JCAP" = "574" ]]; then - LONA=1152 - LATA=576 - DELTIM=1200 - resol=2 -elif [[ "$JCAP" = "254" ]]; then - LONA=512 - LATA=256 - DELTIM=1200 - resol=2 -elif [[ "$JCAP" = "126" ]]; then - LONA=256 - LATA=128 - DELTIM=1200 - resol=2 -elif [[ "$JCAP" = "62" ]]; then - LONA=192 - LATA=94 - DELTIM=1200 - resol=2 -else - echo "INVALID JCAP = $JCAP" - exit -fi -NLAT=` expr $LATA + 2 ` -\end{verbatim} -\end{scriptsize} -\item Set up CO2, CH4, N2O, CO file decisions: -\begin{scriptsize} -\begin{verbatim} -ICO2=${ICO2:-0} -if [ $ICO2 -gt 0 ] ; then - # Copy co2 files to $workdir - co2dir=${FIX_ROOT} - yyyy=`echo $ANAL_TIME | cut -c1-4` - rm ./global_co2_data.txt - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - while [ ! -s $co2 ] ; do - ((yyyy-=1)) - co2=$co2dir/global_co2.gcmscl_$yyyy.txt - done - if [ -s $co2 ] ; then - cp $co2 ./global_co2_data.txt - fi - if [ ! -s ./global_co2_data.txt ] ; then - echo "\./global_co2_data.txt" not created - exit 1 - fi -fi -#CH4 file decision -... - -\end{verbatim} -\end{scriptsize} -\item Set up the namelist parameters and generate the namelist: -\begin{scriptsize} -\begin{verbatim} -# Set some parameters for use by the GSI executable and to build the namelist -echo " Build the namelist " - -vs_op='0.7,' -hzscl_op='1.7,0.8,0.5,' - -... ... - -# Build the GSI namelist on-the-fly -. $GSI_NAMELIST -cat << EOF > gsiparm.anl - - $comgsi_namelist - -EOF -\end{verbatim} -\end{scriptsize} -\item Multiple time level backgrounds are needed: -\begin{scriptsize} -\begin{verbatim} -if [[ "$GFSCASE" = "enkf_glb_t254" ]]; then - cp $OBS_ROOT/gdas1.t12z.abias ./satbias_in - cp $OBS_ROOT/gdas1.t12z.satang ./satbias_angle - - cp $BK_ROOT/sfcanl_2014040506_fhr03_ensmean ./sfcf03 - cp $BK_ROOT/sfcanl_2014040506_fhr06_ensmean ./sfcf06 - cp $BK_ROOT/sfcanl_2014040506_fhr06_ensmean ./sfcf09 - - cp $BK_ROOT/sfg_2014040506_fhr03_mem001 ./sigf03 - cp $BK_ROOT/sfg_2014040506_fhr06_mem001 ./sigf06 - cp $BK_ROOT/sfg_2014040506_fhr09_mem001 ./sigf09 -else - cp $OBS_ROOT/satbias_in ./satbias_in - cp $OBS_ROOT/satbias_angle ./satbias_angle - - cp $BK_ROOT/sfcf03 ./sfcf03 - cp $BK_ROOT/sfcf06 ./sfcf06 - cp $BK_ROOT/sfcf09 ./sfcf09 - - cp $BK_ROOT/sigf03 ./sigf03 - cp $BK_ROOT/sigf06 ./sigf06 - cp $BK_ROOT/sigf09 ./sigf09 -fi -\end{verbatim} -\end{scriptsize} -Both surface and atmosphere files at 03, 06, and 09 hour forecasts are needed. \\ -\item More observations files are available\\ -In the sample run script, many more observations are listed for use: -\begin{scriptsize} -\begin{verbatim} -# Link to the other observation data - -if [[ "$GFSCASE" = "enkf_glb_t254" ]]; then - obsfile_amua=gdas1.t12z.1bamua.tm00.bufr_d - obsfile_amub=gdas1.t12z.1bamub.tm00.bufr_d -else - obsfile_amua=amsuabufr - obsfile_amub=amsubbufr -fi - -if [ -r "${OBS_ROOT}/satwnd" ]; then - ln -s ${OBS_ROOT}/satwnd . -fi -if [ -r "${OBS_ROOT}/gpsrobufr" ]; then - ln -s ${OBS_ROOT}/gpsrobufr . -fi - -...... - -if [ -r "${OBS_ROOT}/amsubbufrears" ]; then - ln -s ${OBS_ROOT}/amsubbufrears . -fi -if [ -r "${OBS_ROOT}/tcvitl" ]; then - ln -s ${OBS_ROOT}/tcvitl . -fi -\end{verbatim} -\end{scriptsize} -\end{enumerate} - -Table \ref{ch6_table1} lists the grid dimensions for GFS of different resolutions from \textit{Running Global Model Parallel Experiments Version 6.0} from NCEP/EMC, which may provide users more information on the above mentioned resolution parameters: - - -%------------------------------------------------------------------------------- -\subsection{Sample Results} -%------------------------------------------------------------------------------- - -After a successful run of the GSI GFS analysis, the contents of the run directory, with the clean option turned on, will look something like this: -\begin{scriptsize} -\begin{verbatim} -amsrebufr diag_mhs_n18_anl.2011080100.gz fort.213 -amsuabufr diag_mhs_n18_ges.2011080100.gz fort.214 -amsubbufr diag_mhs_n19_anl.2011080100.gz fort.215 -anavinfo diag_mhs_n19_ges.2011080100.gz fort.217 -atms_beamwidth.txt diag_omi_aura_anl.2011080100.gz fort.218 -berror_stats diag_omi_aura_ges.2011080100.gz fort.219 -bftab_sstphr diag_pcp_tmi_trmm_anl.2011080100.gz fort.220 -convinfo diag_pcp_tmi_trmm_ges.2011080100.gz fort.221 -diag_amsre_hig_aqua_anl.2011080100.gz diag_sbuv2_n16_anl.2011080100.gz gomebufr -diag_amsre_hig_aqua_ges.2011080100.gz diag_sbuv2_n16_ges.2011080100.gz gpsrobufr -diag_amsre_low_aqua_anl.2011080100.gz diag_sbuv2_n17_anl.2011080100.gz gsi.exe -diag_amsre_low_aqua_ges.2011080100.gz diag_sbuv2_n17_ges.2011080100.gz gsiparm.anl -diag_amsre_mid_aqua_anl.2011080100.gz diag_sbuv2_n18_anl.2011080100.gz hirs3bufr -diag_amsre_mid_aqua_ges.2011080100.gz diag_sbuv2_n18_ges.2011080100.gz hirs4bufr -diag_amsua_metop-a_anl.2011080100.gz diag_sbuv2_n19_anl.2011080100.gz mhsbufr -diag_amsua_metop-a_ges.2011080100.gz diag_sbuv2_n19_ges.2011080100.gz omibufr -diag_amsua_n15_anl.2011080100.gz diag_seviri_m09_anl.2011080100.gz ozinfo -diag_amsua_n15_ges.2011080100.gz diag_seviri_m09_ges.2011080100.gz pcpbias_out -diag_amsua_n18_anl.2011080100.gz errtable pcpinfo -diag_amsua_n18_ges.2011080100.gz fit_p1.2011080100 prepbufr -diag_amsua_n19_anl.2011080100.gz fit_q1.2011080100 prepobs_prep.bufrtable -diag_amsua_n19_ges.2011080100.gz fit_rad1.2011080100 satbias_angle -diag_amsub_n17_anl.2011080100.gz fit_t1.2011080100 satbias_in -diag_amsub_n17_ges.2011080100.gz fit_w1.2011080100 satbias_out -diag_conv_anl.2011080100.gz fort.201 satinfo -diag_conv_ges.2011080100.gz fort.202 satwnd -diag_gome_metop-a_anl.2011080100.gz fort.203 sbuvbufr -diag_gome_metop-a_ges.2011080100.gz fort.204 scaninfo -diag_hirs3_n17_anl.2011080100.gz fort.205 seviribufr -diag_hirs3_n17_ges.2011080100.gz fort.206 sfcanl.gsi -diag_hirs4_metop-a_anl.2011080100.gz fort.207 siganl -diag_hirs4_metop-a_ges.2011080100.gz fort.208 stdout -diag_hirs4_n19_anl.2011080100.gz fort.209 stdout.anl.2011080100 -diag_hirs4_n19_ges.2011080100.gz fort.210 tcvitl -diag_mhs_metop-a_anl.2011080100.gz fort.211 tmirrbufr -diag_mhs_metop-a_ges.2011080100.gz fort.212 -\end{verbatim} -\end{scriptsize} - -The majority of these files existed after running the GSI regional analysis examples in section \ref{sec3.2.3} of the Basic User\textquotesingle s -Guide, and they provide the same information about the GSI run. Of note, the GSI global analysis run includes more radiance observations, resulting -in more radiance \verb|diag| files in this list. Instead of the single background file \verb|wrf_inout| as seen with the regional analysis, the global analysis background is split between the two files \verb|siganl|, for the atmosphere, and \verb|sfcanl.gsi| for the surface. A quick check of the standard output file -\verb|stdout| shows information similar to that generated by the regional runs for the namelist, data ingest, and minimization, but is quite different with respect to information on the background IO. - -Please visit our online tutorial for more details regarding how to conduct a global GSI run. - -%------------------------------------------------------------------------------- -\section{Introduction to Chemical Analysis} -%------------------------------------------------------------------------------- - -The GSI has also been developed to analyze chemical observations, such as MODIS AOD or PM2.5, to improve the pollution forecasts with chemical models. -In this release, GSI can do the following chemical analyses: - -\begin{table}[htbp] -\centering -\caption{List of GSI chemical analyses} -\begin{tabular}{|p{1cm}|p{3cm}|p{4cm}|p{3cm}|} -\hline -case&Chemical Model &background species & Observations\\ -\hline -1&WRF-Chem & GOCART & MODIS AOD \\ -\hline -2&WRF-Chem & GOCART & PM2.5 \\ -\hline -3&WRF-Chem & PM2.5 & PM2.5 \\ -\hline -4&CMAQ & CMAQ & PM2.5 \\ -\hline -\end{tabular} -\label{tab62} -\end{table} - -The GSI run script for a chemical analysis (\verb|./run/run_gsi_chem.ksh| ) and associated namelist (\verb|./run/comgsi_namelist_chem.sh|) are provided with this release. -Sample background and observation files are provided through the on-line tutorial. - -%------------------------------------------------------------------------------- -\subsection{Setup GSI Run Scripts for Chemical Analysis} -%------------------------------------------------------------------------------- - -The script \verb|run_gsi_chem.ksh| was built based on regional GSI run scripts and has a similar structure to the regional run script \verb|run_gsi_regional.ksh|, -but include a couple of differences. - -The first part of the run script sets up the computer environment and case configuration. This is similar to the regional analysis run scripts, except -for the specification of (\verb|bk_core| and \verb|obs_type|) for a given chemical case, and the namelist for the chemical application: -\begin{scriptsize} -\begin{verbatim} -GSI_NAMELIST=${GSI_ROOT}/run/comgsi_namelist_chem.sh - -#------------------------------------------------ -# bk_core= set background (WRFCHEM_GOCART WRFCHEM_PM25 or CMAQ) -# obs_type= set observation type (MODISAOD or PM25) - bk_core=CMAQ - obs_type=PM25 -\end{verbatim} -\end{scriptsize} -The choices of (\verb|bk_core| and \verb|obs_type|) for a chemical case need to match with the options \verb|PREPBUFR| and \verb|BK_FILE|, which set background and observation files. Table \ref{tab63} shows how to set up these two options for each case: - -\begin{table}[htbp] -\centering -\begin{footnotesize} -\caption{List of GSI chemical analyses.} -\begin{tabular}{|p{0.7cm}|p{7cm}|p{7cm}|} -\hline -case&background (\textit{BK\_FILE} ; \textit{bk\_core} ) & Observation (\textit{PREPBUFR}; \textit{obs\_type})\\ -\hline -1&wrfinput\_enkf\_d01\_2012-06-03\_18:00:00; & Aqua\_Terra\_AOD\_BUFR:2012-06-03\_00:00:00; \\ -&WRFCHEM\_GOCART & MODISAOD \\ -\hline -2&wrfinput\_enkf\_d01\_2012-06-03\_18:00:00; & anow.2012060318.bufr; \\ - & WRFCHEM\_GOCART & PM25\\ -\hline -3&wrfinput\_enkf\_d01\_2012-06-03\_18:00:00; & anow.2012060318.bufr; \\ -& WRFCHEM\_PM25& PM25 \\ -\hline -4&cmaq2gsi\_4.7\_20130621\_120000.bin; & anow.2013062112.bufr; \\ -& CMAQ & PM25\\ -\hline -\end{tabular} -\label{tab63} -\end{footnotesize} -\end{table} -Similar to the regional run script, this chemical run script will also double check the needed parameters. Then it creates a run directory, generates the namelist, and copies the background, observations, and fixed files into the run directory. Users who run the cases listed in table \ref{tab62} do not need to change the rest of the run script. But users who need to build new cases may need to know the differences between chemical and regional applications, which is shown below. - -\begin{enumerate} -\item Specify the name of the background and observations: -\begin{scriptsize} -\begin{verbatim} -# Bring over background field (it's modified by GSI so we can't link to it) - -if [ ${bk_core} = WRFCHEM_GOCART ] ; then - cp ${BK_FILE} ./wrf_inout -fi -if [ ${bk_core} = WRFCHEM_PM25 ] ; then - cp ${BK_FILE} ./wrf_inout -fi -if [ ${bk_core} = CMAQ ] ; then - cp ${BK_FILE} ./cmaq_in.bin -fi - -# Link to the observation data -if [ ${obs_type} = MODISAOD ] ; then - ln -s ${PREPBUFR} ./modisbufr -fi -if [ ${obs_type} = PM25 ] ; then - ln -s ${PREPBUFR} ./pm25bufr -fi -\end{verbatim} -\end{scriptsize} -\item Specify the background error file and anavinfo: -\begin{scriptsize} -\begin{verbatim} -if [ ${bk_core} = WRFCHEM_GOCART ] ; then - BERROR=${FIX_ROOT}/wrf_chem_berror_little_endian - BERROR_CHEM=${FIX_ROOT}/wrf_chem_berror_little_endian - ANAVINFO=${FIX_ROOT}/anavinfo_wrfchem_gocart -fi -if [ ${bk_core} = WRFCHEM_PM25 ] ; then - BERROR=${FIX_ROOT}/wrf_chem_berror_little_endian - BERROR_CHEM=${FIX_ROOT}/wrf_chem_berror_little_endian - ANAVINFO=${FIX_ROOT}/anavinfo_wrfchem_pm25 -fi -if [ ${bk_core} = CMAQ ] ; then - BERROR=${FIX_ROOT}/cmaq_berror_little_endian - BERROR_CHEM=${FIX_ROOT}/cmaq_berror_little_endian - ANAVINFO=${FIX_ROOT}/anavinfo_cmaq_pm25 -fi -\end{verbatim} -\end{scriptsize} -\item Specify the options for building the namelist: -\begin{scriptsize} -\begin{verbatim} -if [ ${bk_core} = WRFCHEM_GOCART ] ; then - bk_core_arw='.true.' - bk_if_netcdf='.true.' - bk_core_cmaq='.false.' - bk_wrf_pm2_5='.false.' - bk_laeroana_gocart='.true.' -fi -if [ ${bk_core} = WRFCHEM_PM25 ] ; then - bk_core_arw='.true.' - bk_if_netcdf='.true.' - bk_core_cmaq='.false.' - bk_wrf_pm2_5='.true.' - bk_laeroana_gocart='.false.' -fi -if [ ${bk_core} = CMAQ ] ; then - bk_core_arw='.false.' - bk_if_netcdf='.false.' - bk_core_cmaq='.true.' - bk_wrf_pm2_5='.false.' - bk_laeroana_gocart='.false.' -fi -\end{verbatim} -\end{scriptsize} -\end{enumerate} - -%------------------------------------------------------------------------------- -\subsection{Sample Results} -%------------------------------------------------------------------------------- - -In this section, case one in Table \ref{tab62} will be used as an example. After a successful run of the GSI Chem analysis, the contents of the run directory, with the clean option turned on, will look something like this: -\begin{scriptsize} -\begin{verbatim} -aeroinfo fit_w1.2012060318 fort.212 fort.226 pcpinfo -anavinfo fort.201 fort.213 fort.227 prepobs_prep.bufrtable -berror_stats fort.202 fort.214 fort.228 satbias_angle -berror_stats_chem fort.203 fort.215 fort.229 satbias_in -convinfo fort.204 fort.217 fort.230 satbias_out -diag_conv_anl.2012060318 fort.205 fort.218 gsi.exe satinfo -diag_conv_ges.2012060318 fort.206 fort.219 gsiparm.anl stdout -errtable fort.207 fort.220 l2rwbufr stdout.anl.2012060318 -fit_p1.2012060318 fort.208 fort.221 list_run_directory wrfanl.2012060318 -fit_q1.2012060318 fort.209 fort.223 modisbufr wrf_inout -fit_rad1.2012060318 fort.210 fort.224 ozinfo -fit_t1.2012060318 fort.211 fort.225 pcpbias_out -\end{verbatim} -\end{scriptsize} - -Following instructions from Chapter 5, the following steps are conducted to check the results of this GSI chemical analysis: - -\begin{enumerate} -\item Check the standard output file: \\ - -\begin{itemize} -\item Read in chemical background fields: -\begin{scriptsize} -\begin{verbatim} - rmse_var=sulf - ordering=XYZ - WrfType,WRF_REAL= 104 104 - ndim1= 3 - staggering= N/A - start_index= 1 1 1 0 - end_index= 112 122 40 0 - k,max,min,mid var=sulf 1 9.622933 - 3.3167184E-13 0.7885093 - k,max,min,mid var=sulf 2 9.687045 - 3.3167214E-13 0.7910572 -... ... - rmse_var=BC1 - ... - rmse_var=BC2 - ... - rmse_var=OC1 - ... - rmse_var=OC2 - ... - -\end{verbatim} -\end{scriptsize} - -\item Read in modis AOD observations: -\begin{tiny} -\begin{verbatim} -OBS_PARA: modis_aod terra 7 64 50 11 34 25 7 81 - 40 31 50 27 38 46 56 25 7 0 - 26 53 62 60 19 0 -OBS_PARA: modis_aod aqua 29 34 44 23 50 18 55 76 - 33 30 49 22 20 67 76 30 2 0 - 36 76 38 50 14 0 -\end{verbatim} -\end{tiny} - -\item Minimizations: -\begin{scriptsize} -\begin{verbatim} - Begin J table inner/outer loop 0 1 - J term J -aerosol aod 7.8897778549100276E+03 - ----------------------------------------------------- -J Global 7.8897778549100276E+03 -End Jo table inner/outer loop 0 1 -Initial cost function = 7.88977E+03 -Initial gradient norm = 1.531557E+02 -cost,grad,step,b,step? = 1 0 7.8897778E+03 1.5315573E+02 1.3701618E-01 0.0000000E+00 good -pcgsoi: gnorm(1:2),b= 5.2207374E+03 5.220737604157E+03 2.225693512490E-01 -cost,grad,step,b,step? = 1 1 4.67583332E+03 7.2254671E+01 1.4308398E-01 2.2256935E-01 good -... - -pcgsoi: gnorm(1:2),b= 1.254432996913E-06 1.254434051E-06 2.97203315E-01 -cost,grad,step,b,step? = 2 16 3.15885215E+03 1.12001473E-03 2.3966297E-01 2.9720331E-01 good -PCGSOI: WARNING **** Stopping inner iteration *** -gnorm 0.534787149781733860E-10 less than 0.100000004E-09 -update_guess: successfully complete -\end{scriptsize} -\end{tiny} - -\item Update chemical background fields: -\begin{scriptsize} -\begin{verbatim} - ... - k,max,min,mid var=sulf 38 9.1036431E-02 - 4.5203370E-07 1.8112745E-02 - k,max,min,mid var=sulf 39 2.5694052E-02 - 6.2565640E-08 5.7557132E-03 - k,max,min,mid var=sulf 40 1.1622031E-02 - 1.4633585E-09 8.4061045E-03 - rmse_var=sulf - ... -\end{verbatim} -\end{scriptsize} - -\end{itemize} - -\item Analysis increments: -After successfully running GSI, the analysis increments should be checked to see if data impacts are reasonable. -\begin{figure}[h!] - \centering - \includegraphics[width=0.8\textwidth]{./images/ch6_chem_inc_seas1_bc1.png} - \caption{Analysis increments in the lowest level for SEAS\_1 (left) and BC1 (right).} - \label{fig:chem} -\end{figure} - -\end{enumerate} diff --git a/doc/GSI_user_guide/images/CostGrad.png b/doc/GSI_user_guide/images/CostGrad.png deleted file mode 100644 index 2e34def1f3d197d604e2b48886338fb8d101c5cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46085 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Ǹ|U&=f4)Te%&$kh^<&y`eLifx&k6M80~PKPi^I6 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 diff --git a/doc/GSI_user_guide/images/CostGrad_Ch5.png b/doc/GSI_user_guide/images/CostGrad_Ch5.png deleted file mode 100644 index b7c82d62196fe9eabe5cb2ba5e3440a48b1cdd8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57026 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 Do~Fkh diff --git a/doc/GSI_user_guide/images/DTClogo.png b/doc/GSI_user_guide/images/DTClogo.png deleted file mode 100644 index 69c792b3417f9ee01a86ae2e64980ddec4b67bf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25953 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 G9ppbtNO2|r diff --git a/doc/GSI_user_guide/images/SingleObs.png b/doc/GSI_user_guide/images/SingleObs.png deleted file mode 100644 index 67332e4240b789910d2204f7f9e1b8d2ee8b667a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112686 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

UO;@ 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

7NNw48gk6w_Qh z9J_Z5Zw?L+e;=xpM(ZFYiT+#TH<(}FbmK8@*;PTR<&uM?7xC$3+EZ^UY4d$#iaWFY zs_P%vvOs}^U_xz@+Ko;vyb44m7J)f4F{kl0K6CkTE ztu4p)(GbPur|cTvazxv9JXR>|z@;<%=}*wl@6r`&w_-9O%|_to;>kk$i;zw{{nt9% z;Wu)|gwS;Nhu}vzGlInY+15?WRi}DmpJ}`mhF6GD?hM*%r9BZ&xd5 zW~W1|EWtt-(*9;(^#nNumzTl-;K9X}cxQ%0kA)s9Cu%a18QFqkTR9wW``GxdjM5|9oSpKUz}tv6HYb;z;CP{laAwnX-nkWj2dMIw#onwcb{9 zg+i)2Kzdd*D1VdC!!M$W-5_h!`@U@*6X~~ox-`(a@sM%v6xz>c&$PGlXtCLlqtk-- z*N`|2csr2>W`k>AhNo92Pc!*Ldyl@6mM|p8d?}-N#G~B`$}acq2jBCOW@{KAr4)1Y z|J1O}mr0VZrq$5div&9+C`)cB{7Jy1{EQg`3&ffeTZcPx8t|`yPa5@i72Iu7HFW&d z$pVrgGzH!Y1op`nJizQHY&4uLbU)Op^jkuEi+FY|u9&sA#dPRd=B|~I^rQ{HBZ{Ym zDvGycO7Y4Av)d#hZtsr63~B2&$HWYrB6xneV9lZI`kByv669(#399kbY+5loYTMO& zyn506b&4owvK$>G*q1_Yg4d2pJoNKjBrcR|((RD|>aC2sfaSMnpdlAE5lg#S+ z1-Bx&!vWolXemtEle$xR(TI+7s6$R9;iuVDW02>YFYhz9g-`eDnG14!&eih3faq}_ z;{Zi=-p8o-h1N39B%$}P{{CV7O%lZ(oJR80etU?-s+EH=f%l+4T%|oh#*f9M2bF%% z{X}XYOA$D3cw0QNCbzfwndLMU( zzKHtD?_sl{rJwCX6L6|3@!7dmh{VWEm$G`3|CU;{@AsIMb=APR^@_I9)WyQuLoqa#ar; zm`;tSls=mYdc?rp>;#kV+;2dO)R)g7Gi*2cmTU5&%#{%ejd>iIPq>#|mR)qU&}Dk$bMh{U!S?htOi$$j=7BG#g&VIdMdV)R5zk6*N76dxjS z1mwc-uwyFaj2zLYfk?vR36=PRBwwNh`UleJjb>n-@kV_Z;rl$74A&;`e1iwIv)km? zpY4=4>)qhJOQ0ShAMj*$PE>LxpItNF)+{Z2nOUW`Eg+AvJ3$;KNkB_rPsNcdxpgh7 zVKYDVVe3&inEjfP!2bOm^_|#LA8j{phfL>Mr(s7(TnvrKGO}?ct8e@h<$d{L%JrS? zL+Mt(=7ju(g~%Y(#X9EzbHX#d{9f{22&oyCOyhC&(6L{eMH_7!X`4jyeU@g$DGJxP zJL>6K?po;D_p|Bi2yF1AeUIBS&C}{1$F=)Wcbk_}`|hfzxvD2~JC6wvV<+x00h!1* zUou}%n}gjuU%F?@C-OGr~+J&i(hA&1h07I!H3 zKIPzxkB_<#p&`*bJ9d6y6R^#kJLpj!f&f_&c>rO1`&Sk0zYulaiB5_sivVr+a@>3 z!m;hSR$u#^^9f&03zveFu4c7?+4MzN>uf2xUL=v865&XE8_I0mlQG4uY zou=WGXNc#NqrK+ht@H9+!@@OUg->^zRBE?yDPux=49AhrQur>ERP-192@dg63;oP{ ziCN$=zwW=aL}?;Ak(MpLB3(lQcDo_s~L> zak-d~Ek!Y1nqXj(<|^HuB~R!3o?aY@rGH~bJk$k zwMj7{Rj9z1bRjxQlyox0Re0)mGxsr56{Wc|5f?R5mAS!}MiYltdFOSqeZ8AAf_hs& z3umT$+7k2djqkZI#p*t)pR?9qdU5jS0JAb~H<6NYv0x`jggPk_P zHC`PBfiOuynnHp6>_;G3gmS$W1Kfz{5dmy(-kcbObYhY}GW_`iOB5J)dr9W#D%(jm z5t+l7^tjKlT-5orbSl6EPxK0H0d@3M%Mi8J>O*#Y)>7r4=fcMp#fxN0Lix_BQg@3# zZX#cCE~!G9lk`W5k&6L%F^e)T|0gm&dN7!0GUg*6nJR{+f&eOfrf|zqwW1d8HVtXp zwNAk+LyFZgAF4+sQwzngg%HxR*}C&mM~U|tyL?%}{oNI2Yu$&Yrme$ zSwUX&fNu2HB^IJ1yDiQnEgLj1^}Llj*6ySe_)6&8zf{E61toe6d@KN|u@d+yWyMjtGkjL$N8=yTg@}X3KLi)JEWMJ}DNKLAL)AY;KTYkA%jQ?b2=B(>@{W^O{DJ+F`I*VE+!H?l18P%+M*NX zp+y|h@er#);a|kk6wYEUx>LKla1;B_XlZ$6E{R}0Qc#=vI6Nx`c@90L(~taP$}*zc z4a~4e!m_WI$Z~~<1lXr5l_T{LJQEU43XSOTO0OrlrG2DU2Hq>(=ZG|2p_0AW+4|~v zuA791ox$i}T~C;){GsumvJJSrYkiF<+SZFK>L@iTMFDbD7<`}TbZs*4q8V#tYE;G_C>yS8E z1Mvk}thKk|UNm2JW!d4yrVwm1EC+?vqthwk91BodLN^88aPdj&iWe$C9FuDo%Trp&}^X&khtLg1MsrFO%v=!O@TNS+ua39-fFS4A#{W2Fc$^aZW@rN)pr zXKA+{6I}N1X110+lS{IQ(PUrJvee&K3WnBO2Oal)$u9+(t9Q(XK`;Nexl3q=bxXO* zWZ|Kd6itpZ#I1GL-$D)BOzS*eorUdQc@LP?a`3O&TvQ&%pSII>Rca>Lv(m1u5>~O8 zX)*A5|NSUfvf*X*5C&-6x7)8|_Y27~Bh-F?9LwtkCJ1~~O@|~@+}aZ{4~Ln=CMV|< zZ5D{Td@ZN0_&Hosnt078`;$i4rY@&~YjNjNcbDz&yLH#C?{mzZwXYoP19bIJdv&P! z+or{e7^^G@th}CWak6;8Lyx+7r-SO=is!hx7mK?(W>}csl2D^I(m&#H3q(qaV-8CH zx|@B&8d*^Sh2|gRu;My0yP9@LwoYK4yE;rY`19mPpi%Hmc{>=C)MTk5gq^5@D8_3> z%Fw3}_t5yb+c!Luuw>)!m(@O-|El%Dj77)k@%Z6L^OS8($G1Yik7p7pJ-hm7)X+QP zS;-*Iv#^VWVMnw@<)Y5MmVQS&g=!iGnIN#Cd{iTp@}yZq)Dm3~`l;mXseYmUC1*9+ zn`{tCWfRn0Q+!)IC`p`SdCf)|9P2HTRvn{K)m8r;L=i6!WD1K@B*rM5RSl7=WQE=s zirjwGr7@G~L?4v?xFc$TlKEyx^z5Uj_PZ`3P^$3K?nt^tP|8?sM~|I+*WN}2Wj z)<{uuPczYVG+WhuHg4lj>70AoJI&bPD9nkPz7GVK_NsG^NDX zP$NP?)v#*tc56#^T{dM8f*EC!lc)`K8xtw->jy@#CvAy9u9$yjFbf@X9WjFaKFVi! zdu=L9a*1i}LU6SKQ|Ax_-cxqp(f7Xk>_)hbaIN($zuBrdLuD(OTcE5!POA|mh6jkK z5?_il4y=y*$k({p;FII{eV&=Mw^Wu1JzYE-L_sOL~@kq?jEwg(t zZLPh_P(2p2y|(i51hu1qh}n3xm>1=*`Ik%*YBxDf%UFCE;!XAc>*PypG1(4!vj~;CTL=m z(J4E(^+@ON`Qnv%FnV~=0(m6BZ`wb>QQ;e{nk?(srG~&u%k`nF8bIw3K`bLe*&cnL zr_Zj0H9|DegYTkX#em7+*bR@sRZq2ItC*~Kp8iHz#u?3nvQtnd{Bw6g|EP(jCrgeE zRk-~dHmXH0iEpCV>>oXnGbC{ECR_ZrLd<(~c@r^~x!_wM4ugcgTN?o(S-e!yZ*b9% zncxLbkBG(<7W&whzQ~?CNCYQBtdI7`VuP}fr5G-RK?Yc1Zc+UIZZ3r;M6y4;riX)s zK}kNW*R70p=$oT0*HHu5jIMEVdqW?fb#K%b}awS)wo`?yngp2KLz@_!HmJxbMDXcvb^b zinIWd99>Mquq9M*m!ti~;)L%i#~8^?9))&y&F92222cliTfrBqzms^GXrba~JnO7_ zGD%*>;ZLEdH=2gDbb`9w7^t&-(H1CaNlV!rf46vlH+K13ZEYj@n0}RARXcuJLt|jS6qY^?`J=LKdj{FJKt{2^{#&-PTN4#!+ zq-QS+rMn$xAN5dF!&fmjK8d`fFO|t6j(&HRqu9C*`g!T1oJPi z{@RcKZzabF{89Q=Yy|UxeEAr2zjl-y1P)AxF%CU%rWml$bgA(0PVtzTPSggQMPM6{ z9y@RLM)5QmN6tl{AqtxC+V>(%?Pl1(?UL_Z&R@C}Z+aDdEDTdg`x)xP*3N%f%vr$S zcm7eSTkEp&D34Y+cmU<--BK}uuk`YTq@$i?%LrqxASRxbO6@^O__?Z8bd7#gRt5qIwcaoMp#DYB`%8A*Mn!^;^P8QtxUL(lWfHt4#vkm2*WFO4zrOL& z^sPOvQbXZgex75FAzTMI5nCXO^-TB>YB$^P?ur=xF^&4W)C;x!WxdJ;r&mHyM$na@ z-Hi{KoCmsi7sjkgK@MfurZ;e5y!X^W!Ut~+uO^;%rxQ>#k=|@vdz``Bw-<_L`8;%- zY32QvPr#}|4P$>U05@R7cd8VayxmMlAPZWi2VN-B3oq(m5D@UMdR&>5R~&sNP*(pJo;hK-#A z_!b4(YL*49@`r_Mx?bAdcad6NPE)DfM4}}E@0HRkp+QbZb~Sgw<#7}bwe&5-jd;P` z+e9qW`93EyRvT_{IM{UJg&);1flY6hX^2A37jMaoVt;*$mARasNDMbFPYh}#BzEoi z7rns7OqCwadcKwxf!~uZS4x3!e)Q3&hTr248@>-b%i-j?bI{Bj-HAMrm#Hi2@4{2vl`j?x-~Qlvi2MB` zuS!|*2#s(ke4Kj{8s|hIUGo9(PF4BFQ=z^K*}XW{oXEnnB529XBX&?v!+0+E5_Fkf zk#{CN3kqc4twZv!?UH4}3c~v6r-$%6e0G3BZOrYJSG(=13OwC-v)NJ%MfkpUgVv@lk8l}=hSa~CnyTy-soTA zW*wQ7v{FyZ1Y-WMU4!g^^8-rzm)Y?e$G!R^67I8yYtlupIou}tcf?3VvJ^j_ANU)U zA=`MzZ%|Xlluq~S1hBsiLeItF1cej9dcm7TBspo-T25q)64$blH(RT1wl8MPvmOPy zidhvY1fm&sDp^T{{-I?OhEPu*NALA)%^a&e%{3ZyqoXF>EGF1J9+#dAo1F5@xeBgW z@V}I&@-^4&1O*`y} znqIN!wrRFhUX9>rSX)FWev=8u*5FdT=bUys&dRlRCU6WlB|rJw1rOMSTqH~6eMF`4 z{mS5>-aOr5zr5l5c^@Z-&?SU=upoX2t$2ThB=|AuG5Im&@yB$9KmH(&?r*momO=z^ zByI}5L~0`8jRV@Y!)@qLVpM4@$hrg%I!S)!4SLOFIL(2|CEpQ*q;Z?edA&Ms_s@3K z?)VDhNR9wY{pQeXYIa$}5vsu@Ld_XepX*IFo6@lNG>H;k+Bqk2r5owu*H*)Bk_ugt z54`os-whU61am>6)J3}95|MLu;rYkEt@%8EK;CreIv5U%k$!W$Njs z?~WBbH=5y#MB^}ncw}t&ZnbUUZ?DD(#uSPs7cm7__W&~#nV$AejzT|O$q4U>8RB#I z95Te zG}40TvcS7v9+jya$HuK zCx2>RoA2rDJr?ZlPdTV0c07MJk`=eT4~<~uG7O|^lbLiA*fyZp7}+NuhDv#ipgNNd zWBXMfM|GU*w{+g906P3Xti5GiRbSWs`%{rnx{;C)5R`5<-O>$G(z$6i-7PK6CIqCr zYtt!R(%nkuCiN`vzW?`gKcDmBoXNQ($dBQV2$YF!I6lbEV&3i_UiGVO#=J!6K2aJjtBv_; z-d1lgTRr$F%+Tj#>5rh~oDt@d=%g-|K#f~9kL&eQNl%4C5|{HdPxG@kwwXJ7jG|;G z2Qv#=c**qLSrU@0){t3T=`8ymeGw`w3W}Su{(d&-?(8PH{*O}3hCYVIW$%p5!2rxQ z4@PRZj#SxhEO+m4z@FnE(ayF%^jr6sPfzf%%&{eFz)uh<{0vauvmt~o zk650)QI-7_oW5d&zI4f0eH2$--|2BY57&%!c7t?XbDl?Nc&=I<9fV#$dHe3~t!God zRh)H$>$Og{C_0~^Fzcb}Q1{HttQF})T{E(z?%Vewb0UvGiT0>E=J++R&(qUA<&S zL1a@-hm6uQq{*fV_g^WU888$eF}g(`xL)kb?W6>({AoT^%o+J3TJP1kKv7%`sJbcD zU?wwnJ{*YYBJ)NF-ZEmR^$Rt7fg((5{og`NJDbGDrx7P69v`7@df8WG-z(d^8VJL*RbD%^WXM3zgpB-sNe%`+Ajw`zK5Ug!{ zn8Nepu-pjCVFK>`d$wdo#w{MIgQ&;Uuc_Y=6S`>^T5@Uki6)csNajKqdP3Lwqkvv6 zf$j5aCu9cy(D!Lg&c!@Cen?1+zS!RMy~v=^Cvr_)by6&kV{=I^_yttPFMB>Mh3LDe zr%LjTl-^2Ef#f4ke$49k-W&R+T0eV|7l)g{ptpZGqAxOz%+M9X+vtRC*fbZlVUkHa zR9Ss%Pg4F$%oT;pXzXt0%Fy}Dh5yrh{?c6O#PZJt+YwWGYPIEwr*}4Lsc5Nrk69N9 zf@=kGiI}w}zpORnJ3oBHeHcVVIrkW=;T6pP{H2|*Zz15UeDjhP*IObKoll3-*arQ9=IN3Lf;)Wf7CWc@=PX7ncxl2^jf zT&HRDM$mE$TW{D@{JQ4;DINk$kAUWx9RrpSEt|fAEdf2X)0bNYf^{lBBk5QS!Xc44(-=#DCHYzuXAFAx>07|}kF z2tP5r8d84lp8gu;04r-|SU8_8!owwAg$&)<>yTq}C+&PQ?NE0`se1*KfYos$y( z5-sRbaVX<~&92i|06*X#4~f8&617UkXLV7-MzXtKyLY*<@d%ZE|zCy;N@~T0T}+2fE$WUb;N1DtT{v!v=<^@f0%RJIq8KOq{hYVA@fdcnJp&a+FznFy zm1VJf-I?-9KaTgPiu898y(4DjDFIBa<#)ZrJ(vbjCZxwj3N4pxVFTYk2HK%zmYW{pU}B%lpC*;{HMi8|AW@jkyYL`pK@9E~v-g5igwwmeWNnvN*;6d)Ih$jZV?1~> z9+|<>z$C}ruXslhJdbHPGWi_{5axmt!d;v0Uo)LjA9-VXtM`4cVusm~0MbQAi8a7a zsXL*VVf|7ze|hq}JNdw3*MDN7LeT^{yqhjML^7F|=LynlyP7AowCn%y@>4|BAkhYC zzAhtg11GudUGSB@X28mjcW?E_GX_=?YJ_ID3fDXU$w9BF>Q2DktcY+bReee+a@&y$$g*NBFuo88Y5 z^Nr5tV@P81pi{_yu7It++eMX7*k$!R{|(-b=PTlPhKA!jE6zNat%4*H-d+SoIS#Fj z@|pnbOz_uVo5a4y=TPgXyHC>I7-Jh`((d~cGI?zXoHgZSve@24@fP2l- zDCsEVbhfNN@2eN4nT#Z`5A40=TYVBY@u|d~=mhNt3s@7F0;QEzO04d%WlW4aSeDko z&P&ne*X_tuPgAT3%ASIo24;4CK3xX2B-}ceJne2=nFXSY7S%|Rnjm1F#qU?3y0dAd zWJ!eD&JU@ciY@7VXKNVtOLu14 z4|V2B4HY`OWRa2dEe*Bh-&a$i5e3Eu`Xfy|dgL{LB#O-;dDnpbXr&++j9~Ixar79I z;g*d|nnsv?I5HQT@kEvx$(hnHo6fi_J zn)r6;)V{I+h4)a&PpS1gp03ZBvLYk50(NQOGk!oL;#@3ItcLFM)$%Jo-FmOt zw*0Q)LcLiBw>uJD)3rM^y_}!0QjG58^9*$5sCDYwMvp-A;i*kuks|?_JZUVy-B0D_ zgSoz=46nDJz49-I)|X!@p^Lgf4tEL<7sthE?^aU_17mvKl+gfZ2;c#75Z2^roRP6E z-Cnk<1oY`?U??EqG-R`ROsg}hoh0G82sjp*2B*ovzg`D0nP+;u;%%BRXf&Rq4; zP%I^?{S%BWaDjU`gT61CUj5m%`+gNvfV)YQlNNZkIvW$ATrigl#58Jv(z&KFAB-ZW zaq=SN_$ft(rccyG%!wkFyx1!WIhwjyOwEI67a0K))6#5gVH1BVgEU7X44=iv3G(YE76UK``hlXYlVkAE6r($vjmU)IGsz;v&ay{q4SPNAYXZ;5Mj#_K+mVH$Y ze(yR?tDxikf^)7&mJ`XTD49(X-{2!jyLVhPoz9hc!G1IUKTf5wF2gz07SPVv#ie zNgY&A+A@Fhs7xaX?aFIf#0bWzz4mv8Lul9|SG_lr6;jF5&T^LL-B)=fYK_!h0V@gj zoB_3R@I&O|BJ}#TD>&3n1?Tsqx6GA>p8Z^%MifjNyYqD+>h|P74kSfmF~&&a-*yDp-0ZB$k5{l4G~IPtx6 z=v1+w$DsASKj+ZP6^QhaO5g{SNvGh{x7Nx3^6LLaweJHk&*`Eyh65;{bp3wS9)nwp zvHW_wRS-G~GlPO$MOLR@Tp72)a=L+-j z?B$8YinDp|ng{zTQY_f_Keu}To=~6scNY8q^$Gx!wV}=!vG6}}AZbLke|?28$O=7S=9Bjm z42rfi$_VX7W}6vMfdhr=oSd$x$`&<|>c75XfLq3+s#oj%63S)EdA2=V{l_i#_m?*^ z?%Gk*2mb%>=qsjKGEO>ZT1LhpI7LRC$GPl(a8*LFMw%Km5tw^g8fL$N1K{dQ%>@)U z38(SiQ(1Y<*HNmDQUu^JsLvw6WCb6jR)7Ulai@RTM+sYJ1o zXe@eUlR_WhjDv$yy+=b!3pQ+|Z=$IOce)(J_wf`^p@YxV?D)=0w5od(+inY&An9c( zM+hSNY$h=TTW^m5M3dBh_-0vDw_2pB-RG26;WQ6*z>stWWd&((eipUss1x3E)Z2K* zKONReo-_sz96M@T_GEFEp^F3-cO&?gVE^CwS^c=(+>xyBLHq@kz&t)w@ zvo|`{62x6FiOG`s-OzMGmvkz$)8k$j(%Ev-p9CduKzSQ|W~eozcdj+bikAZQ z+N%qX=25cWXLBtOZ>rX4%$Vp?hru7U%{!~}Qh3}xOX1W5%5yhmaWf?zUtgpNUKi>p zPjfgj1p;@=)hUaFIiuf@F5SvPitcBp*`E;r(+YqUdn4%pwg&hYyDaXClmYURSSqde zQEYa%2Ms8zb@FOZ>_rYVniFUKgE?2$!Q#E_?J&htcEWXh-nKeW=*jDl#@*OhG6&EP!mpZK1x?_MX! zd^onVAJfoMK%7$icuAB+O@Sg5KoTB_(;5j+uiEfr!_O8rMa23k55#F~A$=*%3bh3R zkwc5E_WWJQHd#YN@}f09rau%buE_|rYxs%~a{ z*img9l!!tpx0G97-l~Y23VunP%XD;VG3+q=(aj@R@9=da6Kl$Ea4;5ohMc zSLt~n)*o^i4iyxEUpD7)b~X2rD){z8?`MP2jGAY2Uvietwa>!W!K4+?}$C@&-A|NA497i?Vo)&pE=xs2_{{hd0#pv<%|go#8K}Toby2VV^)32B1Gp$4l_<3?5na#y zm~%dW%XlKgvYc37Y<3C9!P#fZlC#f}Y6tIT7mf9%ZrSw!!2+;G$f;gH-uzB zAN>V9jIxV7aVR5tB8?5tXqxBkAJ_UHDe`weecWeeQuMs`^1-LzVm7pOK7p;MQE1r3 z&co*utwzFZsP~k+$^9OSKYa_FAs*{`@Hufc`mOdbnh;jIComyxbKQ?eAFzJ;2a}ps z7s-~_JMewwZ)k!?9!H%e?>y!uUSr=jWzM%Xx{E(#=g?g98!|%U{%}i1c-r~o$ejDF z@}Iq9d+NJY(~1e8lHXL(u~p?=>+;5~WznA6?O=VvCP04YXm25wbM(q=tFnbH+(XoF z;AFqlYN+EV-S#rQ*^ZO+!DF{O_?F@Z^T!%x)~kp8bG8&{^OBtA@kP@O6|f(bo^60v z$kF#vQ>vCs4hl(y79d1-PgQJns8=ap?-CmBXXKA$4wROK?M>F6ri>FDa`e)CeG*nK zBnx1)Y>Ak=N@2T{{S6oG-deOJFF(j^{KLh;<*tRP%XgRmPe>gE_2;ubtymMDxR&PT z&bvQ)pDumYac_A9YXr~u5?=~O55`dao2nJ|^`amfBB7;72&H^?N;240nf`%ZiI$JC zRb{QlXyaOe{g)R%ajwHq>jyQl`R5DD84*h}++HI=QZh~XRC%Q@#HXiIo>)t|HRMvWI~M%WSVIzT=OaPh$?Wapv9foe|`hhO5IZ{|}O z?C||u>|6TGXtdZo+Wrn*&bDqm=bqpl=dJv$niW^k`ImwzdL@*RINV%H(yMKvYPVP} zl-u5s%F*AD5jfiqoXusDf6}K~dVhH-hEhv?!!q|K76`f4{RQCn=8+~rO`jcVyw1HvQ>+dQ3V0bg?Www!v>^Iwn+_|vBPkr|E!z!o>C~3 z(m#a%lNmB&=R$N!9~U%5lGnd!%@c~Q*D^~2%cdHz_$eu~?;Ud3FiU2ZacFxRT8n2P z))uEZqJN#|uyT>nydv3%td31DqZ)&0yboQeIQXlxWW(CeEjPU?Fan~krk^7&t-L%W zEJYI}cmOB$SJxsm!d-|t)8??i42)u?$$>PPp~dTAePInI6IfDW&VT-pn4o(ez)M^| zu7NPkO$+6J16sI6MvHw4&+(6_26-~8B(}37)y@Nsa|9j*@vN6@i)(MFdJXtounXI# zu{J-_5ElXHtwm%)?b0sPmpJm3r@?+q_WqcLfB`7Na^219hX_T@JM@sfQ=A?bSdRwy zx3jCnrFRWy{EAiL?j;@r0{rwjr-6za4}cE1K`aOMwObA4=LLBzW}qZ34n0{1q|xwo z0w>Tm*E!zJ;tWT~NGscSysGTs{`RHd18matedghn!k}KBT&3RX@HSP5v!E*e~obwcI9{lUtFl;F(W5S?!!9g84@^*&X=z$kKhDe0#j^BrxNb?Jd zg3xQL6GhTP7s3%9vEaENbZ3@d*_e zdV&Vnq&cOKP&wS<_-(%rpDJ(Z%daTyT-)wvZ}YfPyvVQZj#M}>^LGq4|!j&+Ge*pAMOP2PN#HOTZZPG-A~(xb#IR6NT9X zHz35;%%P+384?>Tc>OdF`e(jBdCwIK&V+dPbKNHrjEJu4=4L6oQ$;HO*gL9hwmE!3@5pHxFXgj6fE+r2Vt{3o# zs$~Xn3!{!H+mY>;^GJEM#}k`f)+iZDZ00@o!%GykF}Q5=8Jus{NmwiJwxfn8R1-4S zSG4ijSrj|6uS?~C;H9*(1Sof-AKT;6M+!KH6tkc7V6rWE@=AcMrkplk$JcKET1FHk ztR21W+3S_z{&MapuM9);WCxb5;9+zu{X;BzbK>E*Pr4h793hBwo%z=Y&nr7sz7@Wa z2|WQ-;w@C3{OW1!oCx}f49a-VX%q4aOK$|zi=ly(uNKdwy!7U4&O8$YJK?vbULjve zD0%|;%)#sLau5V%g;!ARiIcfa=7p7CsH%Lef5TxzV7VUHJz+U-kuC$MMBWEe{vYiM zvoxrr9_s@N*4)LSiUj+y)}!7JMcp4nqe;6Q-g+JV0XrVwX8tT4{<@K%Y%d;f@uI3T zB55AWZ0<+Lo_wZmU6}lr2+(e5@lsp$5HG{_J#0^Y%h&8_!gDdM6>8$<=F9mLyJjQz zL7(y^yHmqkVzjQnR|1cJN$c6jR`ddt?Vp}M(m8(hGqZxZINv3{mhr^Wm|Aw z6YY4OBY#j~(4{&jN_zaM01ZP_t^wuqED{s9!AFg44YQ9Ld2T<>%iZH-Uga2vsD5e; z=|pD1H0)uJ2y9rXJ~H@v8YVe}z~!+bFuE_eGg^A3#Z)Z?wR}>+KWtk2C#Sp$5<0e? zwS%)ToW7UCQ|w5tdBj;Rxi9HIXxm}Sy8jr{&CwBgNg)?*S^kl-a5-_yv@kHN5XI-! zJ1qH!0U@0wqJ!&F!&c;jzY_e+on?A&`0QET4w|6&!Lv#eZ|5+kK1(u4cS=&ml_HOp z1)+TqciKO%Gtxag)nigXh|L2`MWGZT`y-RqJ3chHi?kL#VQ%)q`KRsIE(j2H^D`IF z;M0X3`}Qu)@4T9ta-T_%&O29HX5ngrCIxaUJCi5@R<3< z(DK>lCh+X>82cWd#*pl=v@nVv_|LdCWxO9meot1eXWdzKI|5FEZK3jo2Jmt^v{7Ks z676-W-Yh2Jz8*$P3iz45Vs9>ivasxfjaLghDfa z6Sf}N#Z##R5s^E(A0a^w(@RnCjRL!G1L@oLsffb2qigLdO9n`Iyj~=Cz2wk~7uOs2vIE;#sXI<_)KP3t?qQ*D)zffNK{j+hgzSd-mEgI<7MYu2-3YisOk62pk z`1xM?-6TmM{Lax)-1cbvDc|P&kNqIIFE*@9DJ_@wb>olrM(ApAA2M@<6EB9k0`j~& zP~8!B9`Oy0d(IU4q6@!F)0{7en$KmIBk22B5;!^!KjVpnz@d>_^`mNzk5oxXA&dR) z4FWM>sqN1$F)^&k(c9+o4e2lZv6eYhc(bHIBQ07Zd4&uwGO0D*Vw2-uNerEP|J<#;8laW^Jg)z2hwo0to{S8FQ$s5*xZ~^EZr>5q1Y*`OI zmIheza~%|qr01ikTkmFAvltOH4H!QW?@feC=#yBsOc_sFm5|!kfdyRC9fMwFb<5;} zFSYdi6~E>nQkcMW+?8(nI3eBBpKaWC(86p=z&ik>0c1?+!yaUn*$oam64mP+wc9lw z>M1}p&WWR9mV#rWV=3QsP;GjWD05H;;6t-s#s2>^o6Miu@XRFk`3NvAKoXYl#hYIN zQ$ZQswHjLoL92@}&%<^`$nzwMq8tF`rFd-=Mw~FPh0|7W)~WcF_&`}yozvk57kM?J zxP;Za=VjEMUeqBg2Xhy7_oB?)3LwacV?3X+YKO~FbD>QtJuSOyBsNdr!Iu!*s=ZVH zPn3a<-Bq-D>dagjf>5qoI_Z8XlLz6aq~S~&z|Ye!|2)*i{GU>ocd$#WW;FTcYnC%W zz}T@~0h$zH*Axg0z5$&+m{tZhO_897LL-VxJi-eICAxze+y zhq6EYsAYqKoD5OSR*GKjgVp{`S^Go)cI*Ml0V)p4m5;`J?4o0szjg*-X(#W;AaP>Y zk!^?OV@#iYl?1ttRktCCb&huj01X!xn-)I5$qwtEenKg`jLex0bGTLEtkmJc)~d(u z-T|#J-JaYYLu=B3YQ|R##56hNG?*Zur4rPsVa(1KX*g)xzPe6Xn_>M%Q!*J#{nW&o z@y}20o;oRRAn-7#5C!f^i*a42q-qRz`jum)LCQXuv|pWht?*DkwGH&b;e2xYlkMl{ z@6RBle+bB$`^ea8^P0;s(vv{uBgJo(7)78y+CU9q_LZqnsb&@(SE1>SjOEPtxQ6dv z`r_)f@i|0-0;Qb&kg1a0lywVAWy8j@Zgmyo=%EJw7R-2@XJtVNgGGrkR8u-b|!fl`|BQhB}Qr(}23H z+(*uhes?6TJ4!iH$78DhQoEYRW?G)Pw@LQm&Ajt`P;}nF+m{LNTUUguO>chJuM*>f_-pHid{r>@u zE-vSB?$E0S%Xs_s5&uq4z|h2S8`G;KiLC=39AM|Wt#ur@=eoW-^}mWnu4sABv02w4 z8i0hnMq7(kh*;7M`C{7=ML}*k8cVfCCSC!S#8Erv{j>D>!!l>3BI3&5QDz8BP$hyF z)rwjYV~&wlV%|@M?q4v3b3A*mYv+}R+?8{m|MgPj_T+W!K}{quSw5WfG!Sm|281ES zizSfzlN)P-@`U}@U>7%;DI0B#OP5jKl8p7f9LTtdXogmbC4Xc)&~3Xt2pI~3Hn(t5 z%_%C$LQs`){lHnMt>khED)_A!tx3Xu8k*bQy?Ish#!pUqa^80WWu^nm%Dm+~zfzW! zSqhAC-E0C8wO_AKaRRT>UU&U_uyq$gr(`5aN0(+*r#SN4be;mVv&^VhHG-8HNMeG> z1}B(nnwF=5W19KsuPyB4Ri8?^jsTUOfJ(@&CXZJTfx${5T@zBEpd`>{-G;_z#9*=7 zgAGx?N?|^`4!5nO*a=Tuw3*T8Zyf&2zL&3_&qq0H-p1_m3YiHnQh2T?I|&S6Ts88Z zRM%@1z6BRnF3QnTnd5`WEH_A;f+msaft7LQR)*x$2FKK7Pg@lU{N?#@On`)t+l(G% zoN7b?h@;*?3bNh?6qPt)$b2ohO7#2i?(z$5RXmbdqP)(x>?~7yoFWp83C6Hf)Fz88 z@_$cO2|Sb}#F>0Qu2i)>FQ9i36wkJ$=Y^FPcj5?n4d3-?RyESHeWGN<_(o;Y33abu z-a&SugNSfG3G5puyEsd{WZifEQUm^9#IcB%!aal(66_~2D0qY3QpmOQk*}T)nWvm+08ES>S+&gIxR@! zpKYY!B!cp)Kjd?;$wlX3^|S7CogU+RA2PVs*|^aNTN0Dj(s!f7uD~eD)=OG4RFIhK zS7Tw~i`NTD^YXwGDS=2We4QWofr7*Ifqzfh6Mv{-<_Jx}*%z5UKKzQp-xd1KXu+4e zYGt0(16CJRT9Hm|u;mJ~3o9BRbjmM$SHP@fPl=}DX!KAO$A|Dqh)_*XG#g*`gFo|n z7LB;eMU~aiH4Xte#Wy#hh|I;xTjW?8SvhlFE&Kx0%;yv!GP2kQK{CfWMAl<)$YZFf z@9qqCZt`;?7c#GHx@Gk-R1%Gz3;AdF4bT9I&!z@1qb4i5gnarp|KFrC3sGjcA+tW* ztWe8A2U8DW{CS6%>!eV`QA*P&;|gS0w|Y>ZAE|sU2$NmUPT3brPsHRNLGwW2zRc~R za=*6&{lbv&w~Q0kr`yI29)%J?Ge|_?9uF;!Ar;H`F-znqGZTqd(90euE+Dr*aagi(;C|Ue;tPW^~cQcN@krx+6IC$dPTUsBrb@!A&M^o;P936FN4@IzEA4 zee8eIEEw^kq>Ca8!vmQ44m4v8FFU;5s|lId$BX%|Fr0x zdyrwHT|5u5cn02+^-Lq!>2q_4Y~8aff0I(9+h?vnAJAv;Zika) z<8pVLcle=yDo`MF#3-gFfi>I|fr)==-YPAq&%Rt6<~7h&{P>FC*qvj!oLp;NW|n7e zkcf~nek-d?yLK7U)C9DfNG^Y`Yoea+n0vi?7d>a^n95y@lVt0WdbM6kkm8u=mQ4ib z{&jWe#q~o@Wh?L>;n?<5A@c2{0`o;i90PM!R7!!Hl5b|u{#QJ?g_EPK%vF#$3hQ1DnH+BqanN|P8rGMxfm*!fQ(f$vXzU9Tu> zz^O4$u#D!V0#(-4C13^IlSh8&akI>%n0_zbO5<#s3qbaROiF1hqd=jrS=RkLHCJp& zS}??tKRikBQA6L|owYU0%=;Q91V)m+>NoxAOQcm<+9je_G%&G#h$VojNYtKxdcERs1egIVMk9WpMgHAC{dE`|9O zy1QB>E-;A)7XbB2$NJz2NrdfLbY z(po($MFk--%pA{-7TBT;-1X>(ht*%N$6?D^mVK`t{wzGu&{EJ^>wEc zBQcF_17NWL{TK%6Cd&e83(<*zGebr^JVpJLZY|FR3aH~zoFn-j(7suUbwy)Uzi97l znQw33&j;pz=xn~|Fy=yqZwSV%RFH?IY+Vg83(+)RcX}`$kg^bfHfz=bLC+>Yc1hmD zTK7VMgP_6Szhx07@fU~8@t~*s{!i3T0xj}8p(6}1ODpU!yk;jYQANjpw<%Wk z-({$-3HS3pal6BkT3!Bu^D(D&19wILdhF8xrdS+PvoVb*`mjq!P3ZE2Q_tO31Drz)`D^kN>{IlfufGw~ zMF>P?=|!IeNsF`v=3*K39;p*q2KJYMj>ygw+G-(?0;SZDLANchoaC3IRMs&A(ltOm zB$W(ZrSSQ{rB2C<&S+Xi&WJ7LT2|HKH7iO=~omS+uOVJIysxUK+hZ%gnz9n` z0-6#jlXORWlSXJuq81ugMFnzw9-cv=EU~b@CSPz2e@MlQOvZO7JA}fWP6;8$_`N^f z&lGzF7Votrd=0*Tc~gC~ET8RArL1&LiKth#Dz8)Sba~0Kt*gxht(K2lqK%{Jg1>3` zQ@ipT_D`oxvq_NK@Bsmty=>^WBw4z~oy)xD*7)lWpl%KDfSg-le4nG~q6h2C$2LbO zWss>NXT!7?TgJfa{<@))+ot6pK}oAu>ceSu6*n!4#z~( zko{uIO!>2vIdq?{ErJ5qQxIl=WU$>V{|qZJe;%RcS>JYs)4*(Y^e0Qn(wm0szLX_} zgA9I_ZgqbsYQUTE=efC3^^o~*Sez)e_oGX?z)^|a$4j?1^dePNgF8Lp1khn97tqH< zI>mwVhj3`&Sd8ZwJg4k8xip>Glzx+sv@y6Q)U6dhk=TnyLqNGQ+$ql*V~!9CA9Es%Ki4rGt-Aa#A6?51n4Wmn4~|2uaA zkk&3xm=jb}O@0MCAUjJw`0RA8qNwRq$Nta)w2)v-_jAY@;5Ufzp?1}zuyZBn41-Ox z+`3EH6`;eWnR5nYY*zccb^I1hq^q7|Hu8M#*!wMq%ilo?yMCl6kF+W}58(iFOZ%%z zaVMkvBE!e`Y0zrcT_B6FVxKeoq;ok{dFIF#F z9Y>&yD^GCM=gAsfcD0cLzujg2xaIseFF|WaripL?(%_7Z^I(WDE_Bx^%!S|5OGe~x z&L3;3sQqL0o-@!1C353u)Cb~=uYU!}fEZSaO;CmnzU!d$le{y$<#L&fjDFdO91GeM zq5OC8czyR|(vNA;`X?b|dzJN&D;YbgwZ|XcMpCFRso#5sr4an}r)z=>j6J*9E%SNx zxLQgqBRUW7V=o~WSs`2$4T?_J?yT-)SU>a*nPFy$$oOFu&L-WadatVU9AO)A(QU6V1@M&(;L`G{o;=liYg)R$N_0!@maC)L)2;sK-02czWYFd2~QY{I-2df@2(MfUx#_LHgt;_Zl)J@2Xp3LW|PehraVJ+z-30{GwB z;e)OH!=ukkdy}A*64oyjj8;DS4UJO2SG7m~ea(NfdBzo{!>=3{?>6>NKjSg%zr2`~ zYW`Xij@k$`xCHyqsYqZ?2lXQj0Q}+0lr{|D4*zRxS*PD$)`g%w{K z&`jRNZ@L~*{Y;}5*VAf#uth7YU#V*Hr!J5|+}8W~r#pD3@P3gtJfL0bR?`SYO8Jq% zSkvZ_`tw!|E`_N*xl~juX}v%B2w* zTjS#5OvkguAt~|{HIhG24C;+N2r_>VML4ddi3oeYfIs2-=iqshH1dUZ$Rv{3ACyoDhvq#gGce5NGZvX?0=RF9GA)yTcG_z>?S~inn#`s$K4fg7 z(JRc1I9DmCBXtXZJ@P*qyJy_%J|_O+rQU)pQ;nQkm_ zv@GxtUCFin40}5RCsx5XsVeu#FzL9Q%8EWph9&4MnhE}iTL|xT-h~fUiF)JApvSd| zs{lm%64R24N^mf_C|8pAyMd`DUT@R~2prWHI_5>!u%m*>nq`ze>F?ZLPD^h5KX}aLnPu`2Kj)Pky*EWktHqcerHJF=eq*313(NoaI z&3Vqx?m!sscc|rE-IVdXNziw13%*kwNO#_n^#bjh&fe=r@4DnD&17H--rlI{2cnbQ za!9|?)l%1b7jjqT45kkl)u|pZhmxY}cv3y^;6z*iDh+h5rJi6`@}v@0O%vHcNn=l7V%%?F^V`utZ0{!0iMnGpnT1G0rH-$6y8D@LELB5M#<_c8g z{PE@(ro^|^2+1fk>sxDT(1u)QdWcjYufRx zqe8(b0{qw{N!N6NQy89h`2O-oOU`Zbs5G&2y?wOfyFYJ3SZmN04ERYmYB2h|ZzeM{ z-iJ7+VStOuTCP6{&QZAinpdUSUF>JLeuowR9Wu=X;NFLl6FeuGRZ@o>Uv!)fNt&I0 zDtj;v0GdLT0v%t(Gzp47gL#wE^$=Rws5{|tj3Uy@FIIPp$As8>#?+ps{0mx0Wor$+ zF^fnWN@N3ZUUZpY`h}o70GB7M8LJfXCM+7!uzTlLC4cMB(CXemJ-DrTNuf|zNsd7@ zu*TSraUt) zq;4;*ru^lMKe$qNri<0h4qc>=CiDG#h^Ok$*Sc<73DrBh(JhW- z{dUo|m)XTUx*g)Djwwt5ped7d*sgrWP?GcEPE6p{lfjt!MI|hK!b=C}&EZW#!23^B zl-G^>JWT*xlT_lUk`9^ec7amcHUixy5$#*XE{}LIvQFvKpCS4SQ=`Q?A9BB6;U&Lk z40Rw3c>aofyR$N4!_XSvhDuDoPX}j@utMq)kXi|;;i@3Lpi|XIs zy?-jo5K4)F2uP=NNK1Xbia-avi20w(J0Zkh1FTYj^4P*biaAi^P zf&++A0%WQ8wpb-B-F|s=F0be7-=?~M9VVntdw*eidaR*Z-#pQ_p|9bE^3oMsJi|m5 zQm-WNH?d-q*NpQ4^4bLO&F+RCL5j038FGgP8o?>N4*hj=h`u*~h7Uopq$*9jH$g5b zva%|M+-$RNWY9P_@8-vSPrd`!(Fy|2FW~n4geA6Vkk4<$FeyE)93d4iOyx1x5jDYB z`6N8)c3)$vSC$lEsI&pAMiUKHr*G|x8C5bStz zSRS+D7-t!R1S(se|8<`rNU1UCmaQJ$U;#Tva#H5&gxf;DRVGu@;8MeGd_HiG{@ziu z?R$P-dT5{?1lXBipf?mQ|9JiwU@QU3X*N6C`wXV0fV|sP_iL`(XYK~;`qXHLOpXz)3&5c*0#&!RRy+&Bk=Dy2w;0S(8y!qoVW(>Xu?!XKFJDxJfEL|9taoC zs_egM?$9%z1)K!aF8(g8HR5I`g8P`l+sA_qkDisy*N)t5JZ-3eQHazE^R{S*^NLMi zkc}VMhYGi)T}^jFpZ5XVNJaTp_PbR`mZb(jKStfOjoiRGf%cBWiNt&RGBLe)4wM3a zIV(Me+I3DQ00vq$L{F`cTF}OiGQk7Jv3qb|KXOn==#%M|t*V&p=asPdAz zuGM?N(!LaX*u=Ye&srS~@9q_s@C222z88F6=)CZCIoRVJP4VHkm5K>PKrNwuAf23z zXLVCiUjUk8CRiU5Qx4s`8x0b-9qo2!VE(v=O{{t381acDQb1&jW(H`+j;DA;R5n;6 z3cNyZ1T9Ge5?5zwDh~@gcw}SzF13D<;UIPgIFD*hk{O0`wj%2tLArNU1Autd|-SX*_rk<|rc`jFE?jX7E;p^S84WME5=Q9DB2g;AkPw zBa^Y}+=+T9bwCC+&+A(%?DQNwpht7xcUA5tlS#fKF<1SgL6-#A@9A2vATY849ETObO+>6jAI&m0<>8Twf;}1 z>>{qwgL&-15D|Mo>%w+@8UA+!0mgvm_#8r7L3!WJE54Bjr=*yPD!a1>_Ur8mSnYvG zkd5r_H8*B~ubHe6rK0?9BJ*GUMmP9WSK(*s|9QI~x)>=+f{lWafte!h)w8aFHPF1Y zPBlg_bfF!xT(#U7k<&_ba#V*Bp^XWQM0|qo2TIjE96JmDeOCIrQjf0R`rClfgEY-Q zJ>CS^6l5tT86B=CtBhmj<$D$1B2OJlh>+R6LAf+X7qFa{YSNo8d&MFj^}wS|p5@>2 z7urF=B+vl$ZXTp-`mgx9yM=E8?H^K_xP&|zvDyj%|KyOy4J<`~q);vL9(%Sxvkj@a zunl&{7coLLwf?4B3>DeX**?3c1B_mywpmE;H<)*1EH@VoT+@Z`4(?C({KOr@0ot}=L zY3e8>o8olu9qq>*T_S*FX3OzIRXwgjm~!>Ts#2UeGr_#3jRNc|4Vl-lk{Kh)$%};9 z^+dkTE=*O8*LZ19uS$cm(r%H<^%C~^$-z5g5ucXdHx`Vi9GL8AkhT_Ty#&cqVHZgpD8njJE&c)g2R~VEvgSkF9ZaFXUFfQXImt(9XW4or!Ib(2%JD3NzDX@Keo(^Y6XR?LyzgHU z$6aS7?5!gqn#pMIb#^wodUl@Z-O_KL-Q7}l3b%bu+#9!EGVIe!M=ai1G>0KNzkdnQ z5uk?q66=#c37-z>&;S!IYc*aG-H}c92Bc`-zUMw}L(q1hjYfClp&@n4F+Q5kYAIsx zS7Wt2@0QVHh7$R9w|Pb&xWhyqz%k0}a+C=L`mR4Z+Anu=(|lQTOg;|}(H8@8IeV(Q z1sNcl2n`~2O+2x#-(c+PM!1()r8l2Gx$zcxWQ}I)3K<3YhscfL6_>A6;bBb7Mw4W0 zjAz~$?Ks5bxg%Xk?*=|uL@DyCQg(Ru9nWqY&uh)fPw~BmB3B}vtd{}JX}8nC;T9DV{&Z39ZL!6O^{9^+yk$Pkd@vhYB|T!)RQh(W(zlR>`{N{dJO zWxt<6z5Ff*JV=6y8h)Ss621sUEE&=5%eWJ;;A&UGqiO&)6)N0pA`FloM!*kTdGjpfBtLCzn)`C5>w#yCA#$doULTnT)mw*jDN z?NBZ1`fLeZ=|7zZA7t;4KRiTYJ~27aD|Ev%9kTqeg;f1;pt!l zZcV4(XwM@tgOB6RD+?6O7mR=Idodh#3RMZ7k@A1fGfzz?_{9r2habsl$G){*mQmZc zsaZ$-blHs~r8Nku8g4qvA6^gOJ-lXzG?5denP32sY>W zawaXDHHH#@E=4YU9Ev4JRo`GegDc_TI=d>0cX2Ug?IddOHHqhUwH}6t6<9k{X~XKtizg= z9Ho&koJu|`;EzStC`?(69U^R!bAx52di0R7B|x!yb!}>e9^fdYN7WMAwF^Cg>`*%rz+XTpC?dFGz9ZA+h z#qV>2(z9mmn-s0KQ+%OQ^AXb9!btB7ueEBGhHfgmlgsOE7YA=b1KbDuKQf4y6aB{g z`d0Th83*9L*>LvHa$aj;S-dc%^Y;E25&c@T9D-l7K!Ar68Ncvb|B#40ovM@a&$6q@ zn%=IXPoqQ9NLXOfHT4T-Zo-bg2)Dyac3>-|!YmyS3|<`Ql1RlcJ>wK}JEvz0aEtjg z_-$mVG`uS0i45R&X`{U#=MRX@=gaGiiW+f9TpAZB-5Xc#XfH*qvzC3oe9faxFEzCO z0@_ljQ`K~mk8?NuL1sls2yb?U58fS?d%ZC_WZzDQ0Q~3gAf-1mHDAh>l0>H-&V6h) z@||cZ*0(vn9#(O!rK&bh5=Ml6sC(YR|Mp>{W%9JQ-oCmg$5H_&=isZ}J{DIQU)*y| z&VguiN+H=Tr>6&jXcrGUYz>zlsyPn*y;7GxV8AFU}pIu!gtjy3SOCAGja ztNwXcXgL#Y)4>}qyNr zx-^Gk(>INvGWtuWsExFD#f z=7#7rgU9=e`*bwtIk)LUm2dp>yAS0{1V2LO_@;q3I)Y-fsb89Ne3MCb z=pD)?&BkAFaT(*V?CX*OPfQWUu=w1zHYb6i3NEi#b!?;~h< zC=c=s%J&=2nCilmdiv-jScEVV=21>zG?>E(6?thGr8&Frk&j`xhwBsrNJViUX96>4 z1)h!|1dF=1{kzk~sp*FQ#P#lfRwvE%y8=p6a3ts1sNY9to0d7$)MMmcs9b;Txle5d zjUM%GB1}{u>-1Nzj3SR+x17jarOy*~D|F7o>i`kr9eiZdw;~RU+xiRZE2Qw-jk@-M z2w~r-LcNB`vLNO~i-=%B&Zyr&Z-$f-=rFyyFq7nYwEhy}n=3^Jj3T06Ct_6OLu88W zcKic>CDJ0QY)KuFj$rx~+}pEy$4}CQl36HE^ZHtP$`E|`!w4Q=bsZF?$o+tHv?Gb> zVYXI>rZ-2afY4hkMMuE6I##3Sv=ZviyYGVb$Z4&hRx`jYKI))SOXJPCDUn$h79wS{ z9%OP*Pj7K{m0q)A6ZE~kvm=3tk9g=7I2l|aBFbfDAT*O0bTWH%S1lX3dtDiaLSvF0 zp==off2a%QFNXgtaP9cKD|mFoK5yiS)CTsUxUM}4g#L|(O_K4-A0{DDKh0ZwoICt! zGC5o~!m|-)YXk<{T(-@XV$Y;=Lf@LT{%(GE9JW{OGO2RA8HN1FBSBUlL8#qmt?0qL)AIB1eY2VNhqSszGnjzQ;r?hd%R^psOD3PULD9=stj z*#3lHnj0_erQZ5uP+%Ck)l|x(51vk*_xX-jIt(m&`A^&*-IO2i;a4*>O@`Z3Cadxv zQ8bfrI_Jalr8q0I(O>OD-kr4#ef`ZdQ(=^Z#L~{a_k_r5ZK9 zhE_j_9sGE#UukBQ4v1(ttV`xb-3$DRATSIjqAso0gOPpckQQ+6d2hj5+ScIxx#;n- zRRQWdYZHi2-kamkJ;A9Ye^&z!-Ub3jj1(6G-Gk3S5OdBEyrq4|Vm@6V)S*e2yn4!f z@y0d+BpQty=&b$D-(Mp(qIL%)SEyNY)!8eZ&}%W4&U-_ zFPAgj{kGTphUoDaEIp$EhzyD3;4*F{io3&dlF66~YK7}ZzxgHWS%KMHO~!E|*O&M& z(->_LB$2Pxi57>-G(L@mP-vG_nuvo;3H1>vd~+nNRTO1H%u_fY^f?BOTlXSSU)Bq( zD2TC@$R$24EMZ;mEoGUywn^3!?9r)3m2I*unhiLF0x;qf_#e!_8@z9)5AH_CesE{9 zIjvL1+n@`~&ga_|z7()+hy^HZd*@%DX>Qa#P^Zz|@8sn4l2C*(hW_b*FyTi{a7zJx z+C0R7dKN2xTEcX)6a>mySi;?JO%<3>RYE8kv3Jm98|L^_$ec8L^fi5Q=K1R83|b>_ z%pyYaS>u<R308>mMwP^u5Kjg)v?dY2!`%X?_3_KMzVYa((J#9ZI zn~@y<5P#s0B+_H)x@74NWzV20XhE4yp6kE5brV-IQUFO@@UB1y)rQ;$#U$Gm>_ycN z+iec-F5~f^&P%?0Df~?1{+#MoHJ7SiO9Xyzsnh6dwRK=u-67K!9uQVIuqW>w9o_pvy!=_2qN&50~!5yxsG2= z1L)V1VVqT42HO`|AXehJar`Ym=KX`la&NaL9Ag;^^=N`5hiWKy}cR0A6j-K&Pv z33@C5aGOneCwO-DX>C#1`gX$VvjBPY-e*mva1PTWY3aa-$`Rugm*)5+%+}JzLO5`y zTpwMNF(t=9Twj#8ziRzVwbI_q8Yz1rZ2YN-Sg!iM#j?kQ-VDLx;?ui}AA)QM6hu@T zjY~n#6eL^ZCu#UoF#EcT)d;@6|9!0Amkmr?H&|O5X6!@Q89GTyC2H>Fw9Ng) zFabvxRKuV(Cf0jrJSS;xS+y{1Hho)ySb8J5!<5rmu(&Dv%*D!U>G;0C+okUx4@n91 z?bGDR8CHo5ULSkek^gB)vYi=6^F9SO>fb+xWIwl2l*ZwbP1sK?18=80bO)A2Jc6_x zzoZmi@jY|IWE8C#AbsN|)(N(F_m8M0)H^WmbTWW& zti2!qS-ROU3 zw>2CSmI~yVY?@(0&y+gPonbGqWB0895{CYeXmw562_5K3wR_!$p3{Z+LPX=U;`k} zfVcD&la?suCLbC0!8bW`f)QdF;Fq;+LCDHgpV;<)=XL(c1Z)v%;YQ@lql+x>#cy>W z1qn8*B>F|-UH+QGYSW4_T_a(a-n5~yH15ybO9+2Z*4`zBtBql->*6?`n60Qz7x6)J zk!V5MEj(vZ3@C9&+)R&dq0gNo86$pvyx{Do>kvA8m-}l8aZf@vR35~d@nbJ>^T*q8 zNyIJ2>3@AmAnpyt5;^nVVd60v+l_!n;W{F;57f(Jw}9*V7vB@$ar~7x!@xPB|F4=Q z&2bq7WsdexcJpmqi$4Ndaug_hp8|>{@C_1Rqy2=n{Z#LC23!jHmqvPnSoKXbO9FB7 zaGU{c@64mX8KiaJ)HUUP|T{0BYI01w#=r%l=1X1@;rGl5>ty5#WpB{;@xN zk!^1334q%n_Fw-+#8T3FahFokM^J{e#*rF4rQ%gU^lLk}I6L1l4)>QXX|VMp<|cq# zN2)eO-T&~5CUU+Fh!-6M_^JadE2iMjS(P|%8hT;?rr_vt2)7xXkzT0R*Be~miclCh z<-)u4e_8>*C=--Q*bt<>r7cJof>jg`T~J#CZoUz(uRUCa{SD0>HUFF0@UN$%*pf^e zF;-3d*X{?ErqU?Z6>Qk1Mf#UF{X=yVp8bD#3wvEuyrOTxh40Q*?!((3#P`epZ*E88 zLCo-H?e$Q!+&(}u=q~;5-%zMk*2bn&J;1K4sA!f6Q1^0^jo$#aLLf^-A{-CB z1zZMMV73b5C$F^q58}~PSbB0jo}3Sx?)AMVq}~mqOUU>9$Jw{`coRMQOESfdY^MsL z|ND~sU|Kz@?-KxIHH&e6p{QH29kDW9-RIg5y2NGbYw1klH=6z$*YA?eT`OoB=%oR# zY*wVCio|98jzvP^5$=3@+af98l z5CUqxigP}M(&Y&@xW7XpTB*eVKA;2t=EnOc$ZK}B`jyrPJQ}w;_S42wz1J6ZE;B^_ zUZ;9DP}>)HhivvqXGPA}_02}aOfc^UpFEK*XPZ|pNd>P`>N#8q}BZ4&iss9Pm(S2+!Z#=={5%C_dKRxFmNJ^ErMfopK%Cb3!@9*NO+)jmE^}6~~ef zdv7=f*teq$O7#RR)n~kBt-Ci~GS;w(g}6`d2_Nh+aNvH+w_ck*Me3RW22SPxk=_VL zwI>_rX9FG!&=~|3Z+f$*Sh3=tJFEK?pq(Tk!)Ws-OAPvz?3k1B#p05y0p7@n{TNF1e(w<~|z;1o>uV7%%!@9f3@;qH? zQa-zJ#iB}JA9A!cUa|O+5Wn1vs!e8FsunvT4YG9p+9+0u7Qihq}BP0JFnlF8aHUn`5ew%O3H}+Easj7BMKj*lTPFrK3U+C34AG@y(dsGo&RmWl?X1)J3(M<-IjZL(l zl@8ACJSCRxYqEngu1iubP_DDz>yDd2sGtcEoHj$zE*>DzYNzi|EJ7{i#-}K@k?F82 zV~-5+e5kXmzpg(f+EZ?$cJjPb4{b@Fb!70ZlfSAJa09+O?j$j=L8@Ac6P}2!5AI9C zvPI;Jk@o3BGOHD$Q*L+CzF({emPesl`L!9usS5GTLPk<)B^H8Lx>na#)?{=KwR?*c z9ltB&Op<7=X^~-eeIMp#Ilcq?*`rg7{)xLPA?RgJ6=k7q)?oj_1Ao&?qWkXkmy!m& z?l{KoxInbwvgaq$sb~EGA((;a45sUMvQ%VL0M8cBVb`JAF}lvRm7fstx}34--i{oy z#B=m=d#*(7L)Cx}4MZ7zupsV=NPJQIWTMRXy_ZX2;#7AP--5e0rVz&$xwuA#eph4^ zRBFnoa_u#KEw#xn@&C_2w*Q$es3-o9nT7R(?8JGcEuaxeJ$IJq#ZmabPFpc&Xv6;j z(M=Sfq9{=l=slR>o;6GQzY)MYJSN6d#7&D%Z2x0sw1*+w1=N24m>pmh)86*H#O<9~ zv`!uVzh>9zj<3ZKpm9K@cI_SH;Tp+a%)0*uO^My&4k;%S+N^fAuQ#51!?Dun?ac&^V`*;T2^5(rON#CJdTYfq{8|=>>lY7Fz$FmDD#rbM zIU4!sTrWl#l`7&leRl4JOW{X%yQUCp#{GI?k-ncrJ>| z6aQJs!6+ABIQxX`)z^0IRNv74cIjsZ8={Ssh^fSSul{EB(@3vQLhPP)S1_kSjM>Xy zSb4GQOH4`7-iQ^C^69LjmL}3#Ph5Mk4-Y7xZr{6bqoUdIiG58(XZt*5ivcV+iB(;4 zU7YL)-NrLj_3C35gHc*}M)e=uv!1`-RQ#1D+Ay{o3 z;F)^uo0&Xk%WhCUty{VAK23w8p-Z=6$)jTHa5n`F_OVy;Fhvc`sl-YEspjQgT z%frD^hjEHEKt}bUya`prH1KVn}fd~LE9F} z_3dqwOU6m#|bclF=Jf$B==S!mg?>NacE%oW07d`*>;T)_nQzM2N)LCr`ROb8M?v0t3*HrW*^( zEq|qKQ?!v!Z!a{7y><>8Ok68lV@$9K&^i8B8i6gD)lz>9mBzvs$g)uL(%`vLNU;b(&b&$2(51)Nk)dq8K z)n>vS^o6Y)oae_?sOw9^uI6t-kO}&}12% zhIq%wm5Y+>o9ksB8$QSDQw}ZH`+hmUpgpiP^wi4gpphg**l!uEjG3sZRH=TY*20F61mvw)xlo-1i*(S9*P_ zaNeWAT)Di@iZ-4=_W2qRFrOCP*x0a39FJ)u#=eq-;ot`M-#^{o>i&Fd=DiL0061kC zLVv>U9cCH`xoyatKsnP~Dg`zvn#F*Cl+y2HKlil27shV7?DOQJS_QA%wW-&5nMm+8 z!YHq2V>stH=a?2P6K|kTZ;OO2l`dKz-7vHUcMH8*Zm?Pv=$5y;AaT$>ERpJo;lTl9 zI^m1%d@mUEV& zj+Z*-q0iH!s^1g{V{pwYpriK`!kJKQQpgPNC|&wjKp9aOE-O%(`FZ+_gdXuyu#1qU z>r?3KmtFw0*ZAjWNd9-Y`>CtuDQXw;wJBWc6W`@4eq>Fja*aDKpU=pk4`0a6SE=$ z0NrMiBP(BU!FdvJup>yd$93Q6zXDSLRxz%S9XVar>g7jK<5nRE*ebGog!VBc&sA*$ zcHi$}^9T80H_5EcvAEOEnq$tVqXD1>Y7@U?n&gY!5DZbQv!#c=3+f0PG%{{i%ucEH zoSL=t`lPrdCEgBQSO+=buP}!_xxu=b1Hs}IHfX&yTelf&{qu}XTIei|NhrabsRi5V z@cdQb*~F$?CV~l=gn%R^SsLp9R9r>g1lIIG`xOp>x8KfxJp(Zton z;91Uw%;8WjcyEB20sPl1!~Hh|4J$sOj5Ho?UxWv&YQ$}nlI!QfxBb(^J}Na>e3|mL zESbgImx&~qxll)qg6FLpXK|Do$1<-q#T@fQ!P5H3Ua>OexN5w4uKC@cz#R5R{gDb6 zje&Fv?`Ft(5Rgp+@b>^`BvGInfl5dA>s?)nBkY`Rzc zq-$j7&Me@^O|Q9bv-%Q`Gs1D1m7JWc_u#nExHHvo^G0Xi0mwmX$b;-KO)72U1GrP7uwM137wuka?c#{a`zHw~vZ7 z-cJ@E9C&u7VwyM33d|nSJ00XIr=|@k3{-9o5nbe@aKoM@b245XiVtE5c(*_EJ>y3W zGhWSLi>=aZ?eLjqM0DXdETY)F7SC^*TYr9kcJRGd{!*&4(3~ldm5xxHB#^KbHz@GQ zhC-{9AU7pYi<$`AW%9#}fJJbw5Mb8iRrDjp=d6^x_p2I}_3+uN0%&5WyrkSV9*Rbg z9eDg$L=BvrTzo%r z73Q`zHy_%)FfiH4)HW7-d6^pp^9+V`M(^ zZGY@Y&JE~5=iZ+{0zDCf#7%AJ#h0v#yBDz}&Q#ciCr2NT!+6_*NI)RQECOBu-nXG- z_|q$;RAOVSWOrn>2&@AWp%|GASbhv@pJ5T*xL#L1(V3hjsrBPP%g6gP5C?5N4^Mx+ z@F28zJ56vXy$Z!gu`k*W^%|sDBNB(SL9bw$T-S%wd4oDpb$0wKNRMXuT882mI38xI z^4X#p3H)9k6K*W%osae%33NJY*jJFU`xG3v)y9_R7=(I$n#WV|%_4{?8q&~;z?7rF z^s`+eQ|VYv9w!c>dYN>5?nDWHthe@DRTVnNYoeY5{twBweIK5*qGY_R#9bQ|!b>^e3>-#{|xfGZSZsF5=Q8EY?AR-sD z?aviB?5HnVI|Yka2A$3{H}F+lCce3&U;CB2&8_R?N0jxBn=t#03}PGtQ_=_DkG*!0 zxB`J6&+p&*i64R}r@DQRs%u>l>%lda*Ysa9;z=bO8+9dXpp~CE*)t1;)oC+JUY+8< z>YAnLgW1A`5!B0mj?lKIm6FnmS9I$9nR~n5ZXw$C{m8Y;6FmzCyQ}27jWBVp;Q{EM zXS$dCtWBOIRO1B8*TWZk3%ev}OBTxR^n zowQ`a7IB}U$uJH_#3GV@3|lx;~)rw~3BHcaK&&+asREn+3(HIl2iR>EIW zMo~~adE&YDt{W~|=`t$fiAaq)Rnm$+El`FwFH>h(v!`E$39d$QOvmsop|8Re*Q%+I zm6-xG>9`V%otpU6G5FE{(SJ1PngVM%431~#rhAxf`XH3NLI{L32q?#KRpdcDL_+kY zeU1coRNS?YP`h0N498wXX4$tlas|Cba*4yd(Um6$;>=A8)r`PYw%6RWWRAF`X*%?h zoxCPp)JZqiXrV+N}4|9S$KB%a(6RO2on%V^VT5}c*ZHkJ2z{!tn=3gEOH}ZW~0OY1Z*O#D; ze8s#1A@~cmL#LEpgt^b7EADB00%SuorAE(! zl*v6Zr}0b!e)N#H-_&)A0K9r0Nb`=Ia@)cg9N-z|K|H#QvqfJ9?1FiHuM5V^dlgF3 z#`0OnKCC~j(|2J)gg}j&hQA@Vuq}Yl-ko;TRe>|wOYdSImi z?8t{EGJQb$Q|zru@lWL{gUp{Gq{sk)G1TyimNYPifIkoq|AW9vIA$b%JU*j{BnF|; z5(;6kSLw}1wG@s&T9BfoaWU_`@f!$s-LxpwqUpdDAOvw@#Ww6U&g%DUsTanuQ#(qB zIYK1FmR;$mpSC%-)pMj4oIEp;al0-jLOQs&V6vkvyK%1W@px~LIvuR}@|Ilmj;}>4 zyU%zXDo;=ld{`4+NOjIITl8G@LI?e@V(FOfgb^|J?oZL^78`i!z0EG*Er@vWzYE%X+Ub1{McCf%!2rMvU1N?R)p^ z$|D+R@g%m8?8ulPmhtDL$ZoGzG*uOc&8ts>!z+Ih(>c~ZYjJb%pqafIZTqQF=Tt~e zoC!U{9k0_fz33Cqb#m09v)iePT&Q-9+gi!gFp)(j>;~Jtcj-z@Qb3tx!CH^m_3*lV6URBZr&omW!mEN^AVT*d@q{5Q>-itMM(s7rJaX#)bo z|I(mF#OQv4kL1eI-7Im!CNZLL? z#eUN!^*sq`KvvN2F^n$=YrHAg zri-2IBOhYT4dp@C+@#D-0{MXXKoa7O35altZVT%(=epm!!}?tj5poapJjNr(E+SdZ z>tU1~PhM8JMbs&FFbP-FNx_M@QG44?|2E%tsL}_EtD^w(GaY^{33ae-u+s0aK+1H` zvn9kM`S)-heI6%)EO%7MplXfi@HYBgcf05+Y%mi7=!u6%?IvqsAGj zyj9&?3)3Fq3DV4u>7Uc0Qrylx1qw#LMSWzy6e==nEqfMHyHz8RPVmu(LyUIM_S4`~S{4;yx_j3e2;2X@%(I5J->YZ#pOSzYJfW*bi8Tq={d3cMo78*tx{r z549?G4TRdz)e!UDHW~Bbi{-(q;VhF!UPtt^F+ABDDOgUOO`2N!X3*U%#T{M?4j-@T zS(51KhjsVnwYf2N?%@#=B*J#2Bo#74Av%)1GQbK02;HEGbpX;ZekR;2!H7S_o=(6w zm`d<7qKpLa@N8Nafk$9A#{edn;mcJYY-kstDG8vjEDh@=uqPId6vFo zk+;E4R`UWG>Pld{VsXVSqqJMsK|=1+JS5_5$fDjq=yX&9J6jWMQUD1VLaaHen9wS}fs|ugaZEv)Q z(?W#8z?Jf~Ud=j+r-b`t7&;2P%{8e+uo6xp@y0Res#7#ve?pgb9tYOTz2~jc^y(#n zKieV&&_Nnq==c*uJ_cfq?|m;g->1ZS~ zqn-&Tp|U-%3uxQ&oCA+ZgtB}`l!}eqyLSO>6A#L+;`n#jTF&S7w6M?dYsBJB@N}0} zRXx0V&DQ6>O;jSbn(nkAfQuzOvHkLOCB|-Y2(jvmk861jC7d$Tn2%`ArA?o#s~`-! zXT>Y7(LiUq&Ue?FHZJ_uEL+GQ_T@{OX9r#critFjM9{*#*!3^LOpB+_qA`)KkLuCg zC&SpB&r3nVGz>=c^3L%+X)cZSRL>NY5qKAyk5JXhqIOpoxoF`z1Z-R9^Tw+xt6cKl z1^V;1^nzwx+M#kB2y zPn~{TiLLh^;6i{m^Vip&`^J&5^v9OaO+}ckSX)D=ba#Qa$<%avY%dx|=Q?u)J zfY~S-NvxMHfk6_2e}_R59{t<(j*1sfo7COdSGWWi()ODuaV|ueJX^un3v?JRTK?0R zJ^X!q54rL^ql-OjFfTa$Iss@hP8;-3YyOxQcd;`EO94PvaBrZW+Jj?!w+-irz$lPJ zLe`maBFpy4g|jVVbkSNzd?x3v&;I8%oIE$t{mmE3li@gkwRllRjsH|^)}hX38QsgH z;id+RGY_mnDvR>N?iexb?p}UK3P^9D8EDr-=55cNsU%iT@ zkfpwmZSS?3=8G6XquFR1;oXjN-`!Az2oDdceuyBg2&53IXE)b4=mEvC`(Uo`G8R3s zTU-yj*i^{m_C1>^DEg|(ya0`-_;zZi4O7+<%pExCbZDoWzRl0&4PxD(6J3$d@@iki z^yc2o-W5CjqC3J^cg9-PcsJ%kKVb$zLtm0neO0(CyY%|}U~|5*EtRdk>cr?TiW(j% zq9=VXnvMAx=ng!>!)!(MM-frkikGgXj*_*&1Ia!+un9n4zqj{N{Hor1;5wsbBB;BY&hwt;(sd2j|PJWIGE`1NcwL~18=5B3x%;G$>8*JVy( z&5pCOPBV;D)igtUKk+j5h@9rIlH6Hwb??F6W5A>sK7V{&56pKDgrCXMxsn&xdus&p zmOp<%eIW0kkh{VqUltJvP~4>Vi~ebguv{vNrF-VyblH($LeP-&Dd~QzT&Q$8PtrR~ zHpwBjiY(zF60v=3xsf6LlG_1pw!r-by&H|$aJ)Vrv%tg?(&3~>(4xVG4EKc zU11#|nh5lwU1O=jlII&7BOsd{>?i@bdBZ2o3z+-{SsRXX(1C^Hf^y;2)z(W2*)U*n zK?*D`tZq4HH4ofR`-Qt$+iA_u0)|E5S90lk*|>hJneJ7+uKHocZNITuX@NMb==m$K zXXb92TP);~%Pl#{08$~izlN6z-aaFCx*h<#1|Fvmse~@8)r2^$^Vl|!Twb)_#3W1s zm<2~*Lo9^qBj?u!pKwHFRI6%c@;R&)Y9a%6bAB1V_Y>SD&f+Ohy4D8|S^~^~$T*<3 z=5m8BxFHSp2kg}@Dd=#B<`d{nYs`!6qBWfJK?~Hr#|b4Vo!!nMOe4bQ5efp@Wlej3 zbOs9y9J3&+M+V$f(_BWGkaNMc1v~>2gSg+svoh5dJdNqTAC)*u=G+s{B7`~0Y+GTX z`=10CbD2@X1=VR`BqE{+WaimY#Cy0|ejuIbG22fOI?qtr=}>{#V0?nW>i^Q8RJ`Q= zfo>P-58G(Er>*+>uHqpdCvG7l^CC~s>)m$TCAG(IP|A2$R&w@P7C^IQ=kY1fSzEd6 z4!A03W<*dz!v*H?H~2vr?bt4h6x#fn@EwIc?T zNN`M7iw)eCj4|(>aD7p+`Sy`MZW%)Pj=A$enfH|m2XFs7EGm+Q{D50$9H=EmcX;By z1IpG!R5qlnH@SCxKpZ*%T~2~&MU(6?>`s;TN3CCeIZ;l#j}Wt~9=`aNk|H?&3`qR~ z3KbO8S7#h4MIo8ia~{_Qw}n#T87Im~%b}U-*{In@ceu&gX+I_BHCi*1A1u1|0kMCD za2gVnbdR@PHf!xas-n;gLM`1HFX83^-3nxb*>9MPH?Y}V+eLf$cccvN^JAT`SF7h> z$@vdE`InE<%}se&E{up z=MD>$;qUkN|co3S$3KB4h1PiVS@mvp63Y0*B#;`3N4ql*)xV#3b?z*%hzu9fH4g zKO3*{?oPKKd*F1j3LixHBFQQ)C{CtODvHzLz!WwNb^6Y?@?{sDS+{p&P_=qzy*nVd z@73Hpt*5Nno~sG~N+oU$zWUBP^?{m&Pnp#KF_NzyAmH z&vyKqs^RZ0M&eP+kQSd`3n+@fQkcr^_-;!bm~(|zoUdpr_`oXZHjy>Y%jyp*4Sb2$ zC%180F@F{*xE~?T18!KJi`oz~eFB~`equ9es1KR-UgKNe;id9fCYpFjpnKe1OW!6^ z>HaeZ^8eIz-tkn&{~j+CqO4>)*%={Qb~3=$}Sx1pkxywdz_@G$abvb*n1p% z?{SQSW5mJ1xnFf3_i-Qh@w?}*^XEC|@jc(~=ly<-XZg?{N^7e=V}kAb)sg-x`|}uw z7s9KOB7a7yI<{kBd5Y9z4TpoiylxGZVZlQcKISl zfl`cuWN@F!;BT)*Mngoi=Tx?~CJbMf_6x8^lKi@3Z8=rREQbN%MZBjSTw9+#BWSuU&_I(fVMk5+&3tB0F_ncbl5h*eENl+VSrHA;xP9@RrmdM7l%wo@x;@_ZxwqLPtca1+?YSfltZwsiPr|$qpNgyIX{X(qE0^yiq zhEZ1f$kwzXxvBS>I<3E}KF+d_*@e+diC50XvN@lp>Yf`XJ;jsESeCD+;dRG9?>&>% zGGJ5p%7sEfwCC(#&Tia`oo_Oyp9>xqqP7(rzG#X+>1-+GGuU}Zb=6JYmJHQr(OI@2_B8rU&@B~X*r{) zv-SQjaielfE9 zF2P&_|H2x`7f2JNDcC~I%g1LTlee*3Y9#lLh&nFfJ+fcyWM3L$@r#B&tHkn;^Y1ir zrMggxl|Utd;A=arV{``8A8m(&_)xhX)SRTPuZY;&CizxpgW3fdgH#e?>7kr3F6va| z%ilhiw&Oz{bp>8&Gc0NPGL=87`-ubslv`r9@aa^7Omj5^&jTf4HFem-QHh9^pWal3@=yEoBc%g|frWE<~VT2uvsY@bT zsfB--=yG*nC>_r?ddp__&0il7h(`j{?`aLS`H?U{jj|i*&a3xE9<73|-|#4K=!$72 z?7uos&5m&~PUd{&@=kkXN?@8=p*O9NzkxIQbn5{kXfj;uCX!;=!Jh~KnTAce13j3M z|2Dczwid7_fOVI{$ttXko6Fe{} z%Y=e+&qxyZGQz>=O2psC+zql%O?^{rjN;&7GF32hdnlWPaQXuoSrERprH}6my=9}` z`CUmg2#%KbD4Y)HVX83s@JNAHB}-hEhADB+op#=LUw*6=klnL4q3!Y(e7}}H_+}Cm zDQ&svPmwB)=yHR`Mq*!w*lUe^y=RWaqzViPT604E9n#RjnwUGG2!+vn`9n6y%TpPS zm_ri`W0HbnVmfj%QBURF&+WbGmoC+ike_tr-%2^bFx=ol#*`^}+Z&w{YqextB#yhw z+#AXdhod~4{?_g~-T7s3>};ck-*Y+f0Z?tjKfEJ9$+}rqiU<#Fs1W*&a9D)0AK_$+ zjMYQ=(gjtIdC8T~Hl3F;ReI)V>+>OW!Z}nki|V~&OE5vy<<+FTz^tFHEd$%$Q~RIn z3{G$5?v>zb{7*wM2Ov**&5ea`qu`h3`|-n&`H_lbAd}^CQ0tI6PMocS93Z#&AZTRt zSmyo;rv7_?<$=XE9#cO`Y-LXdx3V8Lvh|!%Sxk=Ol78!h#*Sg7UIanN0)`Q@JPJ6C z7jV!tJ)~2pJox}#6gitnZqKjgj+R+rp9~H4U@ed;Kc@3FqYxWS-}t;1*-VKN9yPu& zTa5tHI$sa3aZP=5W}|HF?ZNHw{xm4P8iNl2oks1yQ#=guL+oARkfJrUFLC~u2D={; z`VQB?TLuqND9(RTMm4GFUH@g;?`N>a*TX9o?IqVDraYb9uVlH;mpUZf#nZn3${lr; z+ecfVy2ZVD}~?+Q%<|0r3i}sbVC6O;~Qp`?Hf3+ zT#D@mIINc)`7-MiZHE{q;#R$yv{zC-%--*WdE<8=4LTsnLQ~J&qd94K8RIs{Vq`Pn z0f^&x{bq@aAJ$~ES;S!^zZh#t%(UwPZm?xtBql2|cRZGP4ix9#;C;Mxs}lG!%@jhp z3lHCl&{6JkJoyejpXWFvD0*D8<9K13?~yBsZNK|pw%7Y#@! Bs02f_NFJ~f7&w+ zObxNGQD`9V4VRdvHQ^kClhY5;y<~p|9E$<67;>Om^|N=&h3gU?IJ1ZTm!(M_@Ex8q zq;&`5P{R|f1ZzWf)nK1tJ5EVp0XZdde~ofaLlN1Jl1_t8`K@p|sCJMWWjdZya<6Qi zSJHGZra7TbR`$+_GM(&)3z6NZ0H62c0lmeTOx3zq{QlKLNc;6rXjqny7A^qeYWTUa z+pBi>EzLd&U;r~|UYdn9jjVfD^12AwpG-NPtYj&PwcLI4xj+7gfi;y}iTE-gNOr6d32jubpL>HY50EPc5rGvxC>&Lyr$4tn~6Jyh(M zG>Fks!;z=rCloA!hv7a3}t>WRl}n0mgpvEJuI zhrP*jX@4BKQG-wQJOMT>V6$yUI*V{oS5&${W7_3Y^&k4%=?&2Lwgqjq2O<$brtehU z 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

g?r+2>{>rm@;vG*o;KL1XeVW3V>NP(c; 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

0fBm#W)WT+sTRjEUYPri2O`Hjr; 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 KpT5YPqx%aZ7U%!~ diff --git a/doc/GSI_user_guide/images/ch4_fig2.pdf b/doc/GSI_user_guide/images/ch4_fig2.pdf deleted file mode 100644 index 30854108208b3aa9213493333b2b702be3c59553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29618 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 JE({St{a-_|3se9A diff --git a/doc/GSI_user_guide/images/ch5_fig1.pdf b/doc/GSI_user_guide/images/ch5_fig1.pdf deleted file mode 100644 index 57d563c85b41b4bfb391f431cce8a50f79451b93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44499 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 z zE~}}nd;sP!Whv4wG5z>O;>IuC{x6|(M8_~E^()s(Z>7oT7q4B2$U#21_QDiY4hd)q zk&t}FA{#Yb@%q(QUvc{kxALi18>rX5s9v_PA_rme&_7%Q!I2rXz%>PvWydpi%0v*9NC>{t<+u;CX!DlA_+bVHs@8o{gH!||M?4f7evd!+ zKy}Cr(;oAyP@e|4K*afm>bv!6Ja$vjqD7$qUw!q}j2SX4t^c-3na^LN(g7ej=^VtACX{?a04CFSZ758~f^CS6L!9o# zFR$z@l3Rk1NDx14I)5meMS2J%*aFZ(&;TYZ4t-<7l;ziyF>p%sk%<_FjA4<2RSJKA zBCh&imksNc7%Y|cJh(&*Je=IETd!QZmM}&T88T+9(X}%~$dKT*Y?}Ko_TV0HZVAVg z--jQ*Ll@=GpX=j~bB-RJ9Xo=+z#XS9?hzV3YU%MGR{9qnpYc^Mi-Dg5aY8~!9qu}Z z=n}S93DP+Mr~KY7tZLNo2wfctp>MGi<0K`pinn*aY?@=7_utRnrArg8HXgII?8VzE zH%X8&2P~rn37B zIFUpX^SkZ}hM1U`F=I+JX;Syxxr1-Lm8o{^{~45(TwrdoUC=EXHf%t#2eiP=v%HGC zU3`3Mz>VR--Ini+8DG?@KB7}guP*H&Jf=^dJbikp=`-9%jq(v`to=6W-5y^z*uQhr z@$j1};(~>Uq%8E-sD1lpa@p2<@4eTiO&h2z={Yk&k`4<0;N zvu1JIwyipKYWe%`zvJ8kw;M61_QV`q%{5-pyXHu02U!^El%S;9vu8gVTt4Q&YD-N< zg@9edfk#nhse*e|zJEa@@Dlc0;y~$kB-O80JCY|!5@1MbI!B-;phsv$b$FxIKM>(b z(l7@LP290S%>yMFxD7XzW!IJI&_C>JaT+oN)YmX&lb!}}5Z(lm(}XljKzvoo!o8I-Ch@!hL02sA;+oaR@&J? zXuo)PlwQAn(y?Q|!Hfl^Oj_7wn2#6Z%VR_->^hucI=AUE$gO0BTwIAIaLAxRgTOzN zr~3?;{_%+E%_mPEHf{P;iCzd7E}3b?o-X+MliV=Sor+Sl=fsH}FO- z{U7~USPbLX2f-ZWTvw)1h*kpqbJ41iomL9t$Z%LJF!>{a#1-^HTTEcyw{IV1ibs5U zN#~e!Q7V5$3{+#|NJjR}swErjpTYEy2AF!tIZ3&>Wq@3<&AR}r2nLQmFJb9anJ~(P z1#)C|D^uLPM1J>Ai$dzCNNQF`e}5yd#w4$NEm`r?tTjvgxB3Tfepm>A#pB_DkK_*u z7A%PFA4uuQks}fSyobT1k=eCC_}n=)DpmT=@nbb%0dY%d;IU<#%VZkihyxF<95Y4v z!V(s5 zFvKR0oFpc>lKC|?j71_g8KVGMnp?YetjFHpeDlqjvocZypmUbq`QyNEzvU@ko*ww_ zR^WhJT|x})RT1{n)lrLjz+yEXH&oS{Kodzc+dA|EY%3{zfpNiW(Nh1{$iq!zEqi!- z_W))2`g$??qEgbph&XPjp=Y7M=&Mxalltx@KdElCuLK@ALQOpyQBIXARSLaVV9mY` zTxInz{D!_26vdw!qpS`L+z1lGN#O0qERoBXW}-y{Qf=P6xlC*!pezgU&()|=WwG&r zng9dhjbBgCW<7fJAcpM^Njkn&>(#D_a*psUB-qZ9&-1)woK7hD@UZwiCM|?$FHg!s z3IMJkB75kZlx?7$wQEC>!ee14sP-h&Yt4PxvuCctg%Q$>nyeGlYNc=$Z}pQWtNQ!D z``Kso0CKL=vF_@*BXlC7_|`zv9xN{Dy?oPhrmLG3QpUZ9pH`7 zxbPqFqu6s<@o}LH3t1roZz_u|d`KvYhFeAc3FS@n@5w;tFlX4a5*_l?P@ws8OAS!D z4g+)!(ivLEFG?x6)3I14Oks3Xer1&V;FVj!7#>#8Rq+M%Av#ZxN*+fbO_l60q2z zbI{v?i7gBqL{ShnSHoAg>QZt0-lZZ2VVux1;upw?gt+2&_IF*dKcx^1ve5T4vX7Ky z8#fk5dz#&_QKLrGLP`!z_1fl6EPFbLF-?Ivkq=o2H=VP?qN}YUf6;@<_zNVipcif0 zBqO+~tg08g`7A@sscP4*%}sNC=8PYBW9O7xhfvp%g8)?^oS%!BAMT!R`1``se}{g1 zW4BCW5ux!_QI&PoC!+rc%A-F_dJ(#4`*Ln_Od{rW!#$G>Tfs@0h*eSwgkgkxl5v21?`ak*M1^`zO(Mx_#@(-CkHR9E( z`{fPz#=*cLMv29cYWeczixw}=_kf;hfq-EwMMxM~<(r#Oy)_^h7zd=3v`8?jNBja#a~`9R{}hy*@q_45~5=ns3HO zH_yQmd+~Ck#QLDIg@)2;L*plgD;Gnq<$5PC0MGm51gr!XN6k(AIerIV56&F(m77_TPn<=TQ#W=I#)sJ z+qW-86o%EDF+|aMh9nEM>iB7R;~pPRgYvyueA_;3V;m&FX4hwBD@cl1$T%Gtb#(d#hEI2I062!O|V{!_gI?e0RqDy zJi^BgNX#S+7yAm?Jr3BbSFa9A`DA6ku3KkIyK*WJXOVkdJ<(K!Zn5%*olP3^awkhp?g5FpL_!U1U`zj zyP_l^L?rImyZaku3w?ja zPrS~UF@t1+1`~pN;_(ioeT~)*Zmk7U73tIHFKy&WS>OS{6-4xs&PmzfbEtNflAv?Y zVDVkm4z-rkhDIpB1YO!+y!dOZcQ8ZDK9z&YgCbnirlFee&@dE+arei1gofdhB_aXb zqB4qkEYdk|zx_6+Gh|O9jrJR^6|M%6g`t_lRODAAAkg!&%D)v#L0pRiog=&`>n%x< z=0p6DhP($Ni=yfy{`QBL=rOVw_j`WkR_L$C$hET@ly~aZ&4Gh5Q9i;Z5peMr;tE0$ z?od*QuFykvLWzj3u!NsoY^amjlbX)q6s!`~fq|Nar;|XY+H4GEs)a4F07FWJ|I(G4 z*5}ESXT*dtRflYtj&ds zi*Mf%!Y%zD$eNr^}wE4vS*Xr8|p=?nL0hRCiqB*K zNGUo88b0+5pEeXPK2~90X7_C3S+IW7O4EHO!}Udd&a+dUB1H-@7SK7-YrcilfvW?S zc=qRr7-h?OLr*~!Kph1Kt2%hsl!;~ohgzMFhG9z$gp>dtYPMeJ)5fNoc}^bOwDxktCD+vg0sv3TUo6@7!3H3?eT z`qC1w8*}Td{_@K{<;IR5-QTM{rVB^9{fFvD-b?U)Y5)34Z1OV_ik(3?tfo>)mU0ld1^u>-yfFA^Os0JV#Ejn za9X6xK6wUI<6{Rbzq@S3!EJA3%QpXtDy2et1!D)}R*{`^8BN17{j*;tAg2?N$mKZ+ z5}%-`PNYvmzo}tw1%?!%bC7_fs#TmC#v)OsF8mqT3#ilJF@^wt4-JP9JfQ}2&d?6d zjPP2cor8=Oa$6niOArs-T?HoxB%m%~Wy%T7v9m}g#*3m5Gg$!@u1*R3Cm;Ro6D4-I zNW-2h_$~Z~DJx+j@wYZ8=V0Gb_1nDpMaOi@{F*zT8^mPeLH#)H#1y8HSgL`Tj?M`ra{0Z3@SoipHOk$_NN#PucMno$)gO07 zZ7_~hW|4LSj_?UjJhT>%4xASx$TUvznG68QPvX0{YUVJIzkWiSPbNuNrca#a8BVcIPp#zv?QVo|2Lzg*4f<%-Xa;w{ zyjS#2kCT+nG4B(I94Jg$VgAXUm=lKD_ETjv_FqEh$gYEejoW%;TuKIjXX3<(a5C`# zLl{ZKf(7ah4%3n_O9`q>SQ6PL<*-Y)10djYk?B1ByCf(1D9U9g7z)=9lM-83X=~ z_(y!5d*>L|<%G%dcTAwCG3?8MS;RJe(f~50PH?BfLi_k;bplyXVJU zNo*`b)8#uSUJgFG_T8;R2)s}g-mqoU;O&bWtsl8&-*zlIJ9Ov}Cnr6m#11nkYuw!{ z1O|*!V#lk3GsA`9A$u^hLenO1+qNMQ5u(8Gn3&b~?t6#a^bWqBHBX*tv(&>2$=Y66 zaY$3WHUja&{g)c{R$xeGItRPC+_`fzbrWS3GvCCq4qoD=OP2^E@dT@|6{6)uEejVe z6exx1vvTE1Ym+E7jDdgro#Gg8Z*N&_mo6Rp_s>6me1Yvd`hro$kN^0$ zfCZt-@~g^NDRa4e`7*Q$0xXQPY>QFob5H?=|Ec^IYlucPHgDcM9EWoI3^z@5yL`Uo z*|S|Qo@jdRmxkwedk62vb@R~R9TP$iBAFU8WC$As60S8zoB9PTp`5W}$D&jd9TN#x zgfc-3m8bXA(>dILjN&4{T?P$8->>z-yPIzO{r$+OZ|Xk1ct09a=ly~GGZ)GmWbo48 zD0)*_9&R`*dmtGC^yF1#oO2a1rs#olvlTK&#AN1$5c!vKf(DY3nVhQVocx_Uo&GaN z5j0IKRere{1R-X-cI}v5yLaz4@0OH`fuu)t%PeKHMtdJ>2ayEQ5LOUQoCJH57^b&* z1NAW5{;E&;0)$1k2!@7Wj}QZmA*4uyCXUWjG~c52t2h}+xfKVZ0|$Dec1W6IJ2uQ| zTMcqooRXF)UB>tWP4RxkV0yRVmN zUYG!l<+0Hm6vgRhG0=n=P{DiWFwRn9N@xdgbzBJ8D96Sp07yD&kd8H3Z1WxZDjt z13!dUL|2ukJ*RWHUk~mOGJSq4^l3+F-ly(+9=Z3!+?cVR5kY^dbWXmnzbf6VHj*Rm zpP~fuZ~cB|?mC`OIHl1VAKweFrq=PUOmW)VQEHyq4Xp!yqIsyI#Lc8+_U3|Oosz^2&}>{UB^+HPdp?O zkLXX3yx4Ysx_2%r)~Jwt@PybqfY(ld*M%r9EcNYM<9g=9;_m? z)7iU)n2Cy@SA!I9p;iPv^UcD^0tb?->t*8^iZjut-+b92=vehLXR7*zjyv;kbI9Li zwuiRgd;GOR1zYv~5&}T-rpO3*qRGkmiwx2A>gX1zSx6ly96|7)xg?9l$ekfzZp#>x z0A0sg!0#fXCc^IS?xdlgSs=rP4I?{4NsNs`Ov<$JN+C`YIb;MF8-)w$hBg7!9~&u? z{}U`G0TP|bc|q>r0us?K@Rdmec{O>GAMzBe5mZA*0RWu_E+SxV63#3IHPN@EWYWI< z_8a69Fk?MIj3|K^B|Q8|-u$TLh_A*pdVbD!{d$C%13_iv(!jbAUMwI@DN}4KlmHD= zdRce#r9q|8T?iLgQ|(tx>N>%jCWuP|`+qaAMcG5;@=a}4V_Nx-zRvW@hlSs+0FS!W zq={ZvuL-EQb6F4M3lGpi9}@kpdG>Q8vo4@rjHd zufO5+Uyf#d%?sBrRg)++pSrHH+&5X{%rUx@zOB{t{qmJc(@PSo&^b+;HnrA8 z?7~nccqzOS_0OqC5mkS_9k}<|#4f5C=Djebx7*Vn{USW}{Sp4`8QU2WD^5>%HKax{ zpP@sz8S|H8OR15fpmU&PI7~t3Y}>U%aOZCSd9VHY$-p+vcMR8tzEdF2t8e9~GH>F? z%a(uAe{|uN-QKHR_qBorvlPkye(7v_8iNKp=Yr2#W9^K;>XhFMQ+XI z1d7B8c3HP>-B>9Q{}K$rBH-c!J+DB1l>vrQhW`x#unlt$aU_Zjr%$VfS5OXw^<8Ju z4@&H0856y0&ZF&fk#v9h>8H1D-69_As;5=!$M_o+m19FgBRceXuAj3-@>ic}4u_4V zPoa^2etv3}@VboDsp+cK1>b*v+_m5fPgDh=7F|13YEYZAArG#-gys(nQbcTx8#gZT zamm*T<*8NobNsYd{O-G9-+kA;!-O)$z8pV(Jc|zL|E?XsdXzr+^N&FdTePTl{I~#q zZrIUa-GvvjMK4A`MM-9lzG+vlUIp{??Aa5}C%wui7B!RM(W6IV58@R(zh}=LiqU7Z zKTJlai5xOoq;ss*4&)fqv9!fQ)dV=ySW9nDJUs(uMgj{~Iehpq@>ymSSmjBa5ue}> zuwLj%8NXE6iB5`1NyWu0g)n^oT=ny*uuq{eq3~T`_jvYefIOLW~;rvJJt~I7AsaS6~)5ULB;4# z#fbVuWHS6RG$G2O#I1-{V08{nh)Fwz(_?UZ#7x%znp6ra4-%J!BajIThkcouz?29M z4knU7)v8swBg`bD6R$~1=QsgR+RDNprY(S7gqBSW+8Z_<6OyB=I1w`;B|F7J`8okK z>c@CF#sM-JTeog46Gwd6CSvsHr*1W1?>xJ3QN&|=j($#Dn!TC^vhj`clr-;xT+KdV}k;g%=aAAyT(RNJp#KZY3c zfPoVV6=b2WL>A(i10X1Rm3SNF*!V=oWTSITz;GI7lX4Q}6<|^oJWezU=PmZgA+avS!4e z7+9r5$@F1imH3nqEAlMq_lBv!0|vW491P;cH4rd%Xr{i3|?*0{T{HSi!(y4uDuBN|9m$VjvF93wJc;C7t7FkLlB=b&RBMi~V8l9VRgo6~saS zmLuDo)$FQQz~^Tc^+GGp^xRPn8bQJ(azWcf`uZZkLXsuRQEw=|q^bh)D9SK=_J}ad z9HDG1Ug1WLoiT$Y!z*SEs1y>Ia_g5x%T-phd_XTeB|a-xY(htok>8A2vXJ1_S6>}9 zVs@|k*E6QiS?PnpNbT48s%-6f-+!Mmdv=i+1SlyhnccMjx9Zfu5v%6p2l8f_M(v=0 z)B^FGM$`qlR=xwdMK9UN019G=dB8~65Rslim+9GJi03tdnIJP*3Q%TJ(>dTeYB8_e zVx)Ppcn&TOD~3Oaglo3$>wFF%^ALIo!bwJ9 z{)4bdcrc!H^Om4bTRykU zML-}>3P4I}rYiuyq;p*9y|j*zoNGG_MrJ8_p)TM$5&*qOQrxUeEW3^DXz>Xm2Nybv z`nG}(V3ybz!HqW1IdNaZG&;xlhG~PIJp8lIK7-HfK60d>b6~%Gzk4GGfgCw< z2)u;vFY@Eylyg~Jv4%s}uBFdzL_0*DI~kTMXWq80JBb8)LvD~40SB*%O6TDE>{~^t zhM68ywY>YNP`yB>mL zP>Nsl|R%K=U{<1&~Okag<%qW2H3ptd9Eq*$f#WbvjxWj z5I-8zCOrJ{j51|2k$CWsDh9)04r`Y#eF$}=*(<3>vt)h}or#3`m|o*Z-yB+PgU->X zOos4FI>(hxW++|Bo<{R>V#2Kuo^#OO7S|%oojcdkE#9JiQQB=*sxps!uogc(dqCY9 zRexA8E8_m`d-v{fc^1Z@__!E3bkN;tUq!7S5$9v)prVvhlo0YF6Nkt_hAzwb=%bJF zw*NZ)tFQhyckVnzi*nFQG5)_R>klzp+cgdbClSD zB$l^VB$UO;@3fJ}$;^qA4FHmw&PgOlleQRbC{lPVoNl2jIwu^Igti7pdyLdL1Yt#` zXU^CI)ek@Xz~v4i7uc!AS2ez!AU@TsS@X>|-~47!r>xmBRjyq5t+(Dvhj8i@_%m;CH88$+@L3`FInY#~ zlzM09`aiy5)a+I7165hUv5y~c$9mKc<74(Nfhm1>g)dniK2(>yqAVy~I!BY{wWv{V zc*Uorer_p?@M~nz?~S#p;rs}fI8cn{8PUeMVCZKpFEjaHLg%o5!SP0Mow<>!{O4F3 z8b{+(e0OjZVAs=wj(9k8vCJt=SS1iZU~R2%O(HYK{A<|xQy!H|mdyT2pGH+TPaGV* zazI4iw-5ELnJ;f%$?Cx&st|i&=D@j0-oij>>hqZE4So;ME z6rd2u9@I7*Ep5@FMX;9XUqhujO(!JISq>cX)ItNQJF;SVxHcbDlbyVt)XDCxYkckT+LU0VM zXgK;glq_d5)+N@pk-2WBnKdw$jTuz!qxT+i?WEsDWt{b65v$5M$VJC-N0Qv<_GI)_e84P)Wl*s}c{HoSh{ z@SNRhXE~r0S`8bgNs}fb3$Fy&HK16mV->5#3nGWDCnR#cpmQK~N_OagpPU+dZj(t77d<2n$ zj>=6%MTVL+!7Q08=GSEr!z*%27csO*woXxogHjNCK{>z=ky<*CPnaOd?1>vVXJ{+w z6MITNZD=ZJKYd~x9Yfn7;1lEx@V}&U=pPh0Y%7YZ-86CT4s&1Mdz3$R`FZ*?Af)Mb6V*3pdN#bl}HIb1WQmCDmM}gSqPX1 zifHPcV=_hri0ANS5~+U$>7m3n&>{FIiC>kyZ^DxgBno`s#sdeQICr7UPq%PW+~LUmzLA(bL1)5MzZAj1SFhfo&KXO3Bt)7M#iC6Ur#VgT1j9}^V3RO?1vNA zUI-$EGj`mAa8t(W)fiQ&zI0G!K`Yp#C~lZi9J%P0?0$ZJcuu%;d#%me za0QCNCg}UGH-7FOybVXk5Je^ch}XI&r=R*K0b=9N=;%e;wte!+ zCvVrP^~-?++qP}P8Vdx-wVvZc{5oCTQl&~2v=gxffY{5NIkPkhuvnwP5UgtB7z7Tq zlEmKVCkADuqO?<#V0&}eolYQFyOSqLLST4F=g_mMVJw^&V8k3J3=Lc{K_7nVhQV99(QU{YP6&8c5T`Qk9?J#c}FqH#AB40=&vL zz5s1;s0qS^Q`lP}TbK4$B3_U{qCkb~-c&!v_R57N7!=jNe*y72@z$@%p2WQ35G2#! zCkJLSmoi{FDkH50U_N)htjfjgdGNO*g<@3AtQL|ler5J4Q>JjIIXKD+w>d~_`18Y^ z%;-V@?oc}yvRlq7I@a>HdZ8^gTHUKxFDbWznzfNKjefG-{50Aq`@x2M z6~`{v8ptR`M(C4x(_58XKR+eeUpOi2)_q%~A9!OYm_bOCL=5x>wxagaEg~1V4i2`S zRuS>$zv$<{$&vB22yPOxGZTVp-MV!`fMq6@6}MD4*>G8}g#cWg_;&gh(l{8!G*0oE z3;?bmB8U7T%kBX?@dO7aK8s9N;b=e`3R_6k(E^hvy%RojECL2S!=VWrB5ni_X<+Zr zEt2f9n9*7!fT2>tS8xT3*K5)wifVcBBE}2cX;o^)O0Wus=Rz#b4Wvk9OvF{_&!D{n zkwZ}sLeMti4`(}iqR27;xcxM`!wSTT6J`yMObI06k4KoxqtRsrtJJMuO{R1%fHY0C z-Tv&foz|K3fc@F^DQR82jX?h`*~38M3VNX}Hb6!X8S(}hE3>ywojNvBrqNHfo1aD- z8$>7aiW@OOWKE$h{Opx&o2Eu$sWTkL&O}TZbaPbf6ZH?2bUSfq34yXzJ zWQWQOkBKA~nl^Jo4}tW=-~7-cQs%C|+=25~)~s2DK^d%Om^Sc^1f9dDTD59n9wMB> zXUmq2l-x-tf#H@4{gtCK-bO%qcpH^Pl(G3GY&~V-Q&4m)kM$ap;|l<|f`}ZYbJ#kW zrCPgHM<`;NB}Y3GszZR3P^wh-T^JlC3RoPPAax)<;q6E?LL@ySU+u4mEgJ>}3M$xI zvhZ2yP#Sa3Uxbsx-@6}u^!n?s3s$Wtlaz_=rWlh+9D(Lj6qON;eY!BR;3P$h&YU@- zaeY-Rhve@2@4v^{GH1H+6UJcJ{=o+yn5zNU-*#kb2~%S6i-SFtSk0$({}MU}WP)NU z?PbRP^wUrAd-O$kqiHWfGhArHjT<+xyruxIi;~6QWkUGXAx2SDkAjXrhZLp3i4&Wk zqY%*Fi~9TP4b$lDGBrON8oaIV)h+TG8plgEAg|x{;3B>R#UDkX(!<}T`{yQy9vpUk z7k}vaoV$MmcN_%^7DTnIP@zJNew;|XqB^WfQO-eGTFhz`mY{h)|NL{@6{-o8pA-e1 zXH_(B`%xZ*Jqz3xwSE*goJQ}M9dl&;v)>Q!8~x+7=+#4`xBJF95i%(TGqg4ag-bDv zcJwBn9et%^c^u7^xak2PIq4iOK4ac8aJZElK72T&&c%zW`;-)aw4q4hv2e5#9vFVP zqdfPI?PzxM^al?fWPb;Th)ZKd0xlqPPEiLpHE7jdLAN&g5=*|xWUuaX#-Z;=u}6*^ zdH?im`V4nipoRXo z!-jO}(g2iFyLN5Hnrr?vcN1qQKWEOIoZ~n;acn$uZHL#G24EG)u;t4gP$8CZ(&P}$ zd!dX;FhDC{QlX!dU`l%u(7JyKonudLr0FyaWtxWHb>JaFL?J`@h_H88}0fn$Z3F+c+0g##r#5~j(`fAXk=25 zA8>d+{`8Y~x_w^hXP@>#Ycjr((JgTF?g!^ZG8h_;%6iC%zzeRCxwr>{2Mr%-Ij&U^ z6c$#sSTWTVPxb26RbQZSJ~tp~h|G{71Ig|wJA~#Byd804vH;JXU%|ox9!LEUGKfyJ z-5N-=6Z zV~wMm%s<5h_(ynpM)V&LrClHuHLnwY=E<}esKMthKCGm%E1HJz*p)QN5&=MR(m612 zn4H2Zg1FH>$y(-E!P-!y@K`tovB3cS;EJV{d3B77(Dwt4NUXxqiC0(T0`O|s$00nf zg$4>i!y7rWX3CLG_=^x=@YT9%u{os17&tlRM2`4|ZVwD1eVLeZX3Uu0vr{JRdOKVO z84of$cI*(NkAXv|vPx2{y=7M%PuM;bLg1SmqfWI&r}sohDr-%ZD7gCq?o|G-{AzTLV zWvqve%zJizVIxB8N!7I zl1|>ZmqdY6inRquwBcIv63YXcmc-m)=8WMw<&PC<2^#CVIW-i7>6D^Am?Km|$i8qQ zLC-=2G~0tIr+r^ zI8pfGK7c|Uau0Y(0XrY>jVj)ndJRW<7VbI&pnaN@8B-uC+@4~@LAIS{mBrF=wxp|4 z#g$o|$vS`VwGU@~t1*j;d$3`n<;Y?gWPp{1H2Vhjfn@B|Mul)u1)qa7NGYtZ1``{< z&(CfUs=^7Tk7N?Mo|0(MPCg@wUm9yhLNuABv%=B_cvPTJ%vkGrVRJ&S^z6paU8Fa= zr@M2KU@3lafm~Wh(t(PUtrv?FvvKQhQ(w_I8?xr73ux~0MDTFBRazb-1wxglp04(z zt=qIOZ{|a9v9>9^vrg^jaL&&$n7!UVR}0JAAMtn;P-2Nk0B65=Z=lHXhNrE7|+VrRnR?TiCQ>JJN$z&LS%I9Zo{R{{~ zr94a@nR_2#MON_uMGpS2yLd;9m@-ms5Vzc(X_BtzZuX`1Zh{D#L2N=d?q|stQdcJZosDWn9P7b)}B7$Vo;rLn{QFG7IllJhh8KVn&iiLQ@yjyW~M0EcSv_WHt<+>105&LZfjnaR-+puuzF`>G-9LCAk}GATEieNYGH0SrO?Q|k-Y zcOZbmF_6Jwl;cdwe&utyfkmz>!sMTxH*?g6ii!vRplIRnlTq3yql8hk=tEr{3rDSD z{V(#gukEhb=eys0zXjcs^Rxb5ueuO?>FmF4ZguJwe|5U7()v=5^czGH^m^G&o$%x; z;%2@)*S!ss)`hBJUx9ugnwy}C<&Py&L#~K8jicM4*JP~@6mUdHm4r7jgm6?3$C+lO znwHM?_D9pgxFt;B_&>cZwlksJyMI`dZDvawoA@AbX$51f$Xvb4)0#X+?*GFNgst@O z@bI96sXS4^_&hvDBS#Vp(Jyh`>4%YI{|&lfnK_{<#pOn}=?8e-^Y8Tq zXb@((?E9#jl0Ft|?#%QUV`)Mc-_k^4iw1N}$gS_GWq3(Gj!lA+50Mb2#aZ@bI$JZj zfUBP8MvjP-w}jW!BgUyBCZ>7VOH@18*0$T$mOxk()-XPh1<5p33g}Oh-36MfP|b_| zNRfMldgyLXrTO}Bc(T6h_tMlp5^?+Toai&kTU6|I=)D;n=f6d;XFp&L+ zb1aIVW%5bI#VcW{>yvdU2NNY7mWpL-@fX8-(_RD=EYKuoF52$}1}nn=e%ByFXE5F1 zG%2ZS^a#AciRAmQ_SdQDig%{*AC!{%kwj3iO&%FODB1)MpAu+vkcE{(4UozGU_RtY z$GLRUlr3P2JamF_adWB9DU7$BoyR_Z$H%B;f1l_o$;{G1=5I?YaDr4i)CdSc2FDss zq}y&`$m>KMpFUCDrSsaA@A@+Q%h}jwP2b(A=T0VIbZR8J$~!)x-g{Q%(5-15Ol77b z`48OAkL=Kg{Le>8>iDJWtnE1S1h_PAh?St1;fqtX>S&1h$b1h3XN{CG(@x_H;f8(g zG+jXv`;XAqfF58TLf#o<67K;cVX`gHXit1qL`X!x--Zx9T}c*nitDu_kOxQi12pYn z7|K6H?6J3?PlQp3$S{E|0gDujyC#8&nXBZThK;qLK1sKqMR|$qi}jpBm8Z1MIg_^s zePl&YS0P|A%R>doRv(=HCn<~jOl2-bN=D@+0Q>ZIE+{P;GOTab-H%li57x-otnDBF z-kk77z60HTkO#%-7YX2PJ`;q0?V6;~%%~FN87}ecAoXl0|5KY{XVT?mQ5Q;mH9i^7 z4@_kO3>C>nNwJ430q3zSsFF#bp~?bi{k+gb@sEE%muRVLmoHn0N380DLj_$cQZK%D z%wKmm|i6_f*EYDUCdV_NDlCTiNGNfMU)$NgT zih7lEs(|d?Jn5kVP|pwd-s#yNF?UCW$6aFaw#pm@SB-aoH8&Rd9hn>&N*EIXYi-6T zbL_GDD7Q+EYp|eVVhHonglnQ>EGl!9B9$e>Hfm$Iu^M(FX30O5iJK$F!%J-Sg>T`r z$$>Hj-_ndGb{@VXM`BSD>=jJ4$;9<}wrt|Z<5I{Q7kbLkhM+d^NxW;ZlLz!*zqupA-5O&>*E6`wgLt-@iMm&2b%`8k}uRms~k}Al{iHam1c^L{{jz zNpy(8x|3BiPB^FZg`tu|^qfGC|SkPZCQy4v;9`6~% zTV)9vaUqLf9N{a^=>ZyKJg~V;oY`eeX(LQY^HGHLzQW=^M7|0|hGHsUiTX!zgtUPJ zwYCD^N=|R>2cp)A>h^lXCGEezQJ$zTfBpV8wfm-SU&%_5iA{_y>3b#BH%O?~FbeB{ zg)qB+QSWfG=*dc;5XOUso*9p?f;G%Z6lv~SK6ZRhMk*dUTOO;5$u(4%^wUhZw&8etFfGVLgzf##Kf(dA+-8>4$VxEqcX%XnaK!x1`A)B> zV@MPhSC&X?*Ihe%&ByBSLQ1cN`M6C+^`?~T7;9Z+M8(dwrD=Dy$aRTLS>{{dZ0YF8_exPm@JWKYAA@)U$~)A6joP2c@G zTz_SQBg~}(%v0A#kJYg{nu-M?q%y7f>zrsZCCx+HQVgEtIjJCKDO^|p(?wygb^!vQ z7}1}2kyYqL%AZo`555M=ii%G*1 z3yruLO2D0=2%eZI0)gdV(1IO7MXGAap;7>)ZHO2P&Ey3u5Y(@l%0Q0^65GEbj zBR40z=_+xwH2ceDf3xZko~m&}Jg4hBgv8eR34HATgkN2-(vN^D4pD(36mHWliy5sP znvb~k(?v5GDAfJ z%L*byupEl9rr|QxcOU=9s+J^a8ARlMJNV;G9b@%Q@9T+D6Lu1XKLTB#_&jfe1dZ_8 zmWCW{{17Qk)T^`=spjXaex((AEWTg~t5AysR$kj_klH9vmgQdhhygb*EPH6oW|y3& z1YSYF7GqUMJJubM2DfAwYbg!e0%Pp<1AIO+C-EV*ZSh94UqBk~&TpNm;cts@9s zOKTQjYI$s=M2)WdI z3+B+NIq`e`-d;^fv?-#ed`@wpKQ;Bjb+ZJswbJ*G?%{rsUz%h2o>7qZu277<>{ea< z$udi0nZ@Qz*^7bVOXcs6I|WM!f5*8MRuy0%Td%+3a#!*kXI1mUxk8Nh#Q{Pf`2Q}{ zg5F*})J2Sl;;DVFGf|OO*%ii$h`?s#WUy=w>qo9p#}%|w$rmG?vJBB=nUAbxfYHh? znPkO;2Jjn9%Gu01^D(yxHyQUh*PfY>#F&>d_O1N$Q1gbq|D43+OQ2$nawcZ%GaP> zc&glW_165CX-}7MtoYk?-_fh5S$roKxBM+5_v?%b6md+bFW6ig6nj9SK?es0<027A z!=WI9ZQS6&AbBb20XS`BFxWan32q+{MG6;Vu8wT*^W_gGOAh~K>#6tb`F);ifnjfT zO-)U=qmJI+AM$ei!*ejYA7xOev9pMwSn`Qfwr&!tBvFjX;8l3`sZIRuS0h0{{sGmJ zE5g5KBH|bA1$G*|{+mSVzo`$qMvuqx(Ii}qd9yvdW9HoMxldGL2k0#!E$l9o$!xFm zt3wUj6oE>dA}J5kq(GdZ{R`I9xK>hbD_WtqX#wSO>+{hCaZ=uz0l&7Plq?dTbSctr zP>e|uBAQcIKJ&t~Agq71_%kJRSJ?4QHGCe(i<(daLR07+C(9D)nh`>_I?)no8eMT* z!gUIbTdPU7E1FHsp69K~C)=-HS7H8?kx?Ane~Czho>IPq)(_a!$}9f#Bmpl;yI zBjuRz&CgRF(Na@t%4Kz03s-1jtVf*~Tl$tLk*`5AOXxUs|J}N#h&aB(QgTOG2~Vpu z-M!4LaXz}o&(6t_Pde-w9^TV4lKh8@Wns&74wmox|9*Q5 zJSm-5kw_?XHRpZwU=`GSJhrqtdOCN7G{^O8ReGIAFFuOtj*O&0{LD(YSWv%-g~D4Y z0sImblF&aQMg(ALwEa76c-PdV-12$xULbx*=v*-jBlLjCQm0`tIzo<}<6!VMB*Eb= z1pIp9n%guPDvKFTT97gmI9yeNDn^zH&>lup=gVlpkgFscpSA|$lu|Bykc3Y?tY(77 zj+p)Y$vi?K2%cwtJT3u!a=#Lu>)k3?fF?7plWq&}Lf|Z(n%C#V)7;ss2y$dZRN-?5 zzhsunwHfzY6QAD%j8BgJs@FMi7(%{w`|NoC-OgJZ6hGmEYZjY6@m2ls1Y^vs4NamRd04L) z)R9xTAkXBsYu1&kUVd+PwdOYb?_&D4SBOL4%LZC#Hxmu>p+u6X3DxMKV5yWApPg z_v5e53r-nA67Y`O(7TA7VL2LO3LP3dB`ckinJ>&K1j!ydq`WrezRaq*<6lkB%cFU! zZM)N`PP8KkRr|ZrG(BYOLsyt6&ibkQ+b+LEr-QT7z_WSJU{6Jq(Q42>D%r0A>%W;6 z4`)Iz#&hU`3#IqMN)~k=M>H!c9$Ab?R6)QFILw@IHpvLC+=&MeB=_HU5iS=`VvNCG zEpDjy+NI_Dzp$T&chss$fOkhQM>NMVWDumNmxM%98XC)9KNy@e&P80KV2?{Ac;m>K zRuC35{+QU6HI4Aa5kly;l4aj7eoL)>Frj~7bnp3qo~V^A=FVJ2EcA+=6Cf|i&&`pG z#b4TkYZ?)se>P2O)8sVBTRZzwF6)TuY`RAJ{E6O1W)HaNDOjW2BXW)+VlkCr*p?rdr! zz0zaJK04Q)`idnwwmm(6wTzn=JNs|SOAc{wisN#0!Ixq}=>Mj0>YmThlq_%|e!>Hd z$@fD|fXIm9tppRT`qjp7W7Ud?{YObafdgJ!WfG|1D(UH6-(>Ps8Jp>M$+ZkyTF*Wqa z&pL=tK}4-{zN9~-I!b%gi0@bZt{>Z}Wc3~pJ~ZT>r(NjE8aTy4sq>lq%k#%44m_ed z0#xfovll78FIk4*Ly%P~*I>T`*UdZaa5taVLxKFDrRV-_qdzXY3h1A~Z_GWNTtO*x zePcIQX}VUYoYM*RN#CN2hJID81|=-}`a6zb*?laV>rw0$5B)Iof z&;GUDZFP#zV_@MA^8wLTHfSHPC@I_gBxs?;js0i=wD4>sBo4(7DDF ze-{DU`G~^YgRUtGZ4Z(Z$4=-{NNqLU8cRj@ZL|DtL)^{x3f{d$Z}w~6IU7nK5z=#s z3lA1l$Q{KjA$ZPu*hHgbwVFI~brQV-a!CCx0iho)h`Wj(pyd z@F*exr0|;mz}%ztK<__8hX-FFF`+i%^5@|)#MmaFz3C5f7`bJZ3mKWvVE()!(IHZs7@I1HCWOkcF*l$K5(?GP#xEGe6 zViK&(S-cPZ6;czXw7++gn+m!QA)dOGYs2b9X$Y3z-au-6BVK=lww!06 zS0}_@M4s8pJR~)%ibaa>lH1T_l^pc6RPaM>XzX=HOU5|5K%!N)K_daL1_#UW+( z`SXR(d6R1ok))o^0K;=AD5h&(a;6_b@>b{`ASowusPqcQyg@!>`%EJR}LtFgfJ)zX5T zAJrm5G@pdySAof|k{WZ{?mbdZynk30{Xyf2~Pa$_iwu`>}`ZJsT;zVv8@Nx_~KXrw!_eC?yv+ zA#h?8bmSm><_>Au65N2;kufG;p5;&*F^p~92j>pKTGE}1U+pz+ScKsPRYqJ~X~@!_ zs~_8KnDhy5hZ-rWak7vWEMk+Xx;e)kNmm`TR2C7g#beA3CCBJfS^bSF`%J(!1&o`i zx!ZY5Qhp~deDI14*2OKV(d5v{zu6Q zYjyjt|9&gT3X={G0~s+>q2&!9Z3Z$7&0KK?h} zI(w@#7w8=li6a`Y{Ko;IVa$|A28r+%$7nk>AaC;;wGC`<HG}011z%gf2wHv}kq>f6nAGDbqv7rp?4O#m@&& zVeZ*tc`Bw%4x{q2eRd7e_Xd^yLAuKt)Ib0dXD&hI$v)?dOuDJc?>lcijmh)BaZJf`lsg@ML~ z=B^qf{f&lG7wLe9QP}_wExDMn>28$V)fbgcpJ~>%t0HP9&&6Hxb^drM#+b9ivM8h{xjiw1v5j0$tN3HZmc;&yScVMS7KA* z9P^%qr&DogNOpEsI*0&GIkT)0ChbXEdmgMtj68 zr-`*GPcgr}T%2O{$}7fPZy|F!|5XC(W8AairZRa(oBG*8A(Xi z37f!#c(gX6E?QADmhK-hyXTS2h6gG#6l9vgp=qI2l9GYKct0OjRS~^5M*pjkmGjlF zf!Q@tgjqB=KQU)dSl31x*x`~UEukB zjoEVTh&#S!2$_gT1iW6XyeP%^JrJzNXo2NELPvM}e{w+4PjDeJ)@Z4NSiNhcp4MYN z(OCqx<-Velu!fSQ(r`6P)z@Fl6e+Dcq$9hwr}P;C3a&<_q+j@*A{z%CN|~7_=Y&uC znS|dSXG;9~2v@Af42zGAKWw>2#TIV>UVrF)sZRe&hjsg<(^YmrS`UB64^;*GSkhZ& zxG&~Jz2y!8*$dOC*xln}EN>VJ<6$|IN{&=GH!(0|Cr)xX*QhAp_=<+p7;oq6mH7(= z84H@r{yFm&9@PYi=hbPo0MI#cItEX~HqnerR~o-1*#UU(NMbNt0bu%BY4vMbHe7i& znZaJx9%=4fYUuqHu|n~%$4lbTP~GD%e#9L8z~NnwQ)#B}X9#jFzGQ3oiUdb$-+Sl) z;=&q1suCv=UA~Cm6*--$i$kkTvQ;WFiEnDWu!q`ez-II%`DD!ofxUuR5#pm2A5Is z|5zc!=tKU}RSZQOVuUHaq0Ei)+dM9J*EtgQEV}}uwL-rGGvu4|QCtU788;C+tY%3p zf9^-v`3{{2}#*NeBgVvJ70X^S?nwWE+rH z%pZofJ5kt4O@5(s8_tlP4RM%rOgjoKWaqRLP(JS`FEjQ(FU!%iq(S?w>&uc|Frv&RsOJ~LhX)HHV4t;{ z7!Oqz60=)Grz=~X-4WTr>D9S76H$G%hp86AWl&k5XKxU@pA#pWv4i1 zfn2&_Rd95%38{{Ecs;Ow$~22`o-6oWp8jCn zg6wPhM6nbhUSv=X>5Qg6>|Iy!9)zJ)o`1M`&(myPavx0WOKyGmO>^-Tu#C1NmbOw2 z3Pb(zK>MD6i%|q@vBH{@a%eVu9$^jfoRN6x5dFR6x)5l7D7i@=4}Yk%qt@?a>0W2H zzX72c)++}KM&j3^*Bj2I39i<^-|os!7hXs=IocxhBvj|4^fUB)rXUN|!)%L)Yo0np zt#I6*Pt%FpuO4yH#fY4#7FNZ+6?j)+DYsOSI3&OS@vs-?DmhE-jxCXC6!KSN3Gun{ za60<4#1#O>S0m*-8m;?-`~Y= z!J@rZ@Q&YOs9mz=NxP3e%tFjM ziRJ@V1q{zeqaphQQv@xt zYo_CyBS+?avh{XM*YwOaiWf&{7g4>vlgs+BXkgoTFRM879zIz`Y{6YMju&@ym~>Xh zzk(+94;6`|LMBGW2#@;MxFhnF@f8CJOItySm{!KUr#2ZW-0a?LwALlAZYP4f*kE<% zpkFR2wL7GN8ESfw&4N9NqcFynYibc^oyI`j!*+pkMge~8>g;N&Bgh7eo+^+KaPUU}96d`e+Sw#~!ex{vT11UWFx6$gLgOMuf^)%wf z6^(tzPX(=TW2Jzra~clTh^(QrY13IXPqeje{=6g8&pci6#6^VG_p@Su4SNYGjPn{^ zSbR^Bvk4fJMEadVHf?tUQPbSTn<>86Sykfj{8Ikwu8V8uRWsNWRaRoNI){d@x}sbG ztRWiGN!k=nxFsGlN#Qs>C*)Z&{*ZH67dJa4tV@EZ>TGe6m#vH4WEY5KowvPh9956X z+{x+WYH0!;lePOkn~%HJXv)>1^vPWVdTmOvW6A9EvWw zviHZAs?ic;8HmNJOHni%OQXj5#^IFsGOW^~Ch>@vdaz4i-`*XTxV7GI*LpjMSHZjc zmDtT7fhRblDA3=?6rk!X#(c_D2=ttF;vLNZ;H!NYlb^*+PQs$+r=U^`^5jcHA1`g& zjoH9oNi}(&%~(<6yal4UauCL2ZkYaJ13v$zdo`+qCGaO54MA8`*c$WB^N+?Zbus(T z(+jSYdC>$@%Rtq$L$W_oZA#L4jfCC$z})kL5`>tgoaov)+J2{UmiU%z$yicDhxtNj z{c%M!*8W@qquo+jwahD0q1{k8h5EOJo=!M>gLl`Sl}za?Y=Z8L!o)fdo{uY$?JWiP zV%OShB0Pwg)Jf@wXAW}Dd8s_|^!OVC0905Q6^~Xkw4**E z!S?o#`pW5;u$mHAm|?QI!K0*MN^5F!=7yb866K$HLLd*G+>7`_z} zp@8-7-?L&*L#g}pABZ##C1PB|+O^`(J{Q<^xx=0ZERI3H-i;+TFj7!Q^VEdhJ*ml&l zQ_p%fYV&&n1lz<#6uN+TeEybi8E3M2lbb~lW09%T=j-fvG2hkO;6xRgg;ZSO=C}Ny zjYy?|e9-K{cism)^d3`jf;-(U@{?~giWmnlVnDkFG5~h$8J=4(Vd2HM`S-e~o7+5YyYEc5kzy+~$0i_VUkN)>P< zim}DOIcl&btNZT?^)!kEmubrVb+4o7y(UNyNkyfe-4Z}T)6dXjv|nT$ga!BM&myqW z3qzhA&7~;aqRFcIANkt>KDg2W@bhnR<}f09c$i5fmP%f69Wo-_Mf48Lr8-gKNwL}O zF8xqrIy)0>aEx=H{cTc*wGp$zHo>QzjrHT5 z&ZtwKi1(o0z-*~x+*;1-i4#3HX?a1%wA(vb)+^GycceT=^Rn1Tw$DgWO&d|0r$fy^quprt8uW$xeQ0Z)MI zRrpY0^PG(zQ~Je-zW>4dtyrCMI+Imd3@s5nv$0q^MgC49xs1VI9}cPCq67C_#{Z1? zvMaM5uPlom{~ADm2n zHao%$Xq?S7eqKneX)HKQrjs`%AHS_6+sb&kRDWlkWkVRP2%YAE1f9)Ra$8XyvXdKA z_K-1E!@3%Tw!Dp{{xa)u=?v8Q}PqowKCqAp?@U+JZ=%uFuMinZ| zLK-3QcOF%LaYI!}7U9cg*2wBy5aNmxBMWxkP<`(oLw!%!31QH;`J6Ecpo;Y;oIj`> zqx6`^JK_!hLD3x#em*tT>gB)MM8*Va~1eBO``#j81O)5g`f9M6O z*<8A`APPy38W&$EoJdi8vRu^U=`(_zLK77VBmy58{+w47^!?rWh(T2m8U<@OrhIGf z`dQa4Qo#j9mt{_%xPczmh{KJq5h?u?%P1IB1`rOtOAtCuu;{Q;u4%v|h$R!xex;EA z?0Azl#|Ov{{A1ue^~JT1G&1*-h|RH;X(i-Uj3G9Z0v=+wone<>B_@fL5p*n}9@)3=9ydNpDJYZ902tYAJrSP8aO$e`9h+hjH zYPg_OU97{siNTCwHArmttV!G=+h@-2j*j}@ZKhve{@uPmxG6>1S=@zRaw$#^R{YQZ zBAsJ5l^w^g-4cCz%38lzGvKFTPglRJ_r2#DMwvmg?X^m5E355pbAuVYSH*!t@wbjG z&9hP1bbH4O?6Hf%OeEv4<|7RG954-er#C@n`m*)(>GR|W&B)uf+#-XNV8XA7_%?m< zsb|Qw5HZ!wBL|ghSt&ani%m>hEh{se?dO_soq_J?B#u-jV_a0E07T};HKH4$q-<7& z>PWqBldXCNB=VVuQ2n$BK_K63cdK&1frdOOQT3USi$-M=dtNmg983qr?0=JqDK5M* zR}_6T*LTbnD`UGJKI=A0wu?`~6OF8X z9(3{(uZC#a2xv!D7y=)q8Pwm2qmnQaz z4?mY7iu4jhq?mx1vM!r4q$9IT8p1F#Um3BO;R z(Phr2gM-G<9K{e-6JE&+-x#DSEz-l75`e~Vo0m>O3591ySbWOqe3Y^HI^GLpfT6 z9_Qz&Hf?KD?FoH|bzk%U^AKI6@cWY$Q|mn|M(`6Cv=jTRv_ImdY74Y_`4?7amHYpH zxC+(r_7ri2=abB^?6&#>MS%e0-0D&8roexHjx&vv5u=QPlj#+R?n&gLrwo_})B76+ zz~?YRUBo-Q3Y9OT96bZr!B@!Y{c)P5^oQMe}3sM}%G`5ujnBjkP#3oE&J%G1@lF#RWmnDYh(4W#| zf*Hgn8+XMZlUl|U_N`atZ>scB*!42fpb+Zv2#P|X6t zF=|eYel3Mi6LqM6TYE=~1YyAf1*0=SC9cYKSZJ85zqpmXi&83L|1rz83U%{^LAc8@ zgqKAnx)DEW_y8?6^K@PuE?6!!*pwfg826I! z&x-!;smS+_HM>(iLa-{04p8rc#f8NL1pn^--4{A_+OnkjGqn#HlcayWFBp~%NC9)E z^zgkJKymH9Y|}IKi;!_(CrhhPoT`O!H2g8VPaQW}fDrZ=yNllhOwa~< zj(#tbmU7>F$A#jEp4yLhXV~?I`rKYhN2?S=>E;N%ctF@FSwnPG&>4g*=}<&f)fr|_Wo`Xm7ni9EBr;krE5Qu z90Y_hcGv~p5tifniOxsE_{w514#+ikf55-Xc8sZDP5c^}ZEhw4Wo*CK$5RJ*!zel9 zdHMt)c=|9UQZZl9v==Oj4SQa_!9rAn*a5Ycv@n5M^lhqL=j(;T^<5zB z+sP?E)6pek9}k9&N5w~jj}UJ4A(B;MS~RNoZYEv}U;;RP2V%#Wh$;r$;C8eOiXH7> zzYOw>yx2raQKE@BKHri7@|YG>XT_QYBajvdUw*h;PZAAuR6(xTo9}yo_Qc^Rb83Ah zqh=niD!C6vh8IV9h-Irws{02ku?f}4I`pe?5ygQ1FahwDe9R5x+X!_SHC0H=KoOBW zeqQIEaZJEGB>c_tPtQ1z>IZ>R9Of{N#w8DGKdxk zjmea8G-%x3Cu8;^sh$bPvjKDDM6lb4GhjwwDhDt~y!>(y=LshUTOPGy>|J>N=4h)j8>8;0FQh*QiudC0<&}lNJ_mu_fx(2^^t3 zUkmSWiF4=ONKa5StQA4JjOZyXDV-N`USQ}hf<}A@>|*POX~ym~2H@^J z&sxHP4J3eKCMp|TaXNcI``tdB0U;|(8+aHDyb3F%JJQ0efyl)@c}Q>FdCI+33M9hp zEz*#0P^qCN%#(jAc{&x0jYefn8(&`?@~z;uHYAXKLhwWyd(%~ z`{w?;S!Sp@>1s+gQ-qg(1Svf6^NlhGGQ^Sv)TvD|3Sc2vA<~E3jaQK9X5tVXYib3> zC_*4W1ORH3S1fYHnr?(t3xP_3^lJ+Np1SRsFbV#9r6^L*_$ncy20YX>fPADAY&F~N z{$OXBcCPnqeG-;sT_EgPZfjwh6@$htHxz~a{f-XqO!OrHX5vY}O5984jUdo1IAzOM zNSk~WdP{$^4zp}8nT0KGUv^t@(kM#b@&3aPZU&gcJyo~}q`Lb7DhLRR@`^*b z^C<~M2LIxSPB_e`fpmm5NR|stNRoa!(F+dBm zkmfpT#1^{(yewT{!Zr(e8|~yc25MdM$y^L14Hn||J5#SoK44niG$?|rWzM&ns3QO1(U&6?ou|!m(9c*J5n6;b z*%Jp)`6pm{M36Gjhq*TjmtX3<=P+md|9T~TL(~sshG1N{%A?WLJR`ja>Z2{Qpy^|z zE;KAxzM8W+F{=Bcjdy=p2@XIW9MMC&>Sx9az#ll>tX)5BM(vBi39c~SnjE3mHJ1r7 zGS7IvX45fWX}5%-%Q`>3msA9mOdmmV<~%ag0VExNHk_n0DgdxfmlIMtDq!4W3QvJ{ zkZbrD_oLY4DYGq+IgwNjg|fT^#DcUZU?1#$;ZWYGUp^j1LNnf^`SY~Wn%$fcM+?51 z-}$wQXp~Q=c(9TRalxyVypkChfH(3!=;o57orEZ8!E!!W=dbsEyRD$o#27&UJ_>@q zfG*`NK~54LMu}|*0VgBdxjsn6LXX=ybUt}yIVHldQX{luFBKP^Kn_@|k%@;yoe?f% znpC=G#s8Eiz6CwgUd3>(w%%Y#bFEgc@z$Sk_sPuGZ@(q*lW1P0*J&N+`2^g zVw4v4&`fa{QKZrln`xj07vby4!BSa%B2F`{=%Z0-u(V;2^dGiJ$qB7P_**X%OQjUD zPQRyOShr2^3p0Rgw;C*lj%3Z7qG<^y1IWS<8(NxHQpS}rT7%Pr)1~CmqE`zIDh1FJ zii^|*cYNtV#Qu|ZU-t^_lQi?v+a>b>kx1CmcVvi4#DT>69@pm?ZlRP(iF+M{B-Upo z=LfECQyC8ga&&jsI)G(%RNVKEtAx4}jKDolxHuIWN(uq?^onOogcX($AjnAe7B!1t z{mk@=bX|iBsO?l#3i|-&jOzMmg@-uS2-LK3$NTY^n7Hk7yuDaEoimqz)}ubKxz|=xa8)G?ix}! zBrC{7&HW0;GU%QPM9SeE@e7D%`IGgA!ktJ37$mbRkKFVt&ORy&vCz+jz#*w0s0g+o zlsZJXfUglpt>6B;EmCH%KJC3HiG2fej5EbB6Zu72bX)N^=eEQe`q)~c;1`o)XEHIm zS(rozhnsk-xQC{h9%q~1{TXTgB@N`RPnb)AEb$!5 z6p0a9edvf+G*qS=-LrInl|fZ$0a()S@%Ik{D_78caB(ivvW>b%>7|7Wny z`2QdVD!>vi&7sz%VF>*#$yo#!m@#Ken1$agiGsQM9xU_XM->J&rNfgkgsR6+c8p*B z*rLr%Y2X7#b)g6NzA)|z5FBoUD8NRwe;SNUsR}yM%huks@lY+2$#yTEZe|Hv*{t&6li70r^OynEmKKMHTTp!wpHZ3v)8)_lPtep-KZQ8pM?_ z+b!!fqXD>gDuRc?Jd3oHP4HSQr9v76e7@@2r@B7=dPdTmoJr{&rKs)wLbjGwg(Vum zMU@gn9$oN5sis(j#HfPeM7<%onlw{F#8<>xM07g1Mwzo#mZme&u8FURg2C=GEO83( zLfl^1R#V4l4N91thyCc_lwiXmx`ldG>#w!dT232XY4Y&8PQ}O0FS+)QYZbci zj}QPyvt9t&5tkceK)Fy}iKfqE1v(vr&%FA-`^W#=)}(I5*x<4$@MCrZw3`3b?3?Kk zVERd)v#)+1hA5?%HXp^iR!aY=6`wNme?p=IV?fUbN9#G!l|xV#k9pOU85rMk(2=Sr`8tm?4*>QUv49giVMvVTUl~Hm)C9Lmo)AXO zQjR2;BW^uT2aOAEDtBCl8=8FqT;b+8NAR5w;0aS_zE1_c{l=)jI>rV+wEE<3f98u| zDk@DE({vJ@BNn-(wa1B^Bgc9XQ>*F!McY|6#nnaI8g~f}!QCB#YjAgWcWd0;HCW>W z4H_)L-Jx-Jx8Uw@`aS0t+z+>USM|r9J@bhh63?Y&bOJUMpKo!A%H-59?`u%sh7t&AYec|)z7=>B zGz{YNL1+J6+{QM!;3c|u3AF61&x)&xAkI)mBmQ+ zFD@ca6E$Q(EDVExwbh6YLn$QcAkKCZdrGV0SlVO~T3fIJ)duCSn_$=bz6pgd4wslH zw4`?mY>T1DUjysY>_cIW!QM|ncn0KPis^INv@YpkN?64mGkrLdCYeL9Sv zXYPSBV(d^?J&|lwNapxbXV3_25Kxl+aLU(61L&h!SgMTwz`2D5kN`4dO)L@VYW9OZ zl-I)wQ&1}tCncpoi5$|K$n$<`8dSitNf?t{xhHmPZUsl3gS)vEDm9#o3>d#JOttg^c&d{5PU^Pf#(_8xax?9}l?NQ0Tm$qc=i| zkMXW|03vU=%fAuX63_17axE9ubG>K?)-oMrlR;hsRQTI6eg(G>H7FB*?WMl7^rghR zG`@r7rZ03k{#2vmsz;%t7sxfoYB|VkqJi0Mg-ejq1(0yRpEP6nrhN*s=;kEr3+6WcK~cYGBMhX1P&6%v}3!;Dd)Saa`{shJ&EJx>TmI`>JPAc#K_=zIpF6uOChEcKq zzR*#25@!P`DZX8?0S*<=>L?@dj=}oQufYv)tEUdqFa87E8LB>Mg(Mp8;YHpH*6!EZ zzdf4bsfv71wVxGvIi^&Sf*7g64q{3V{Tz&MAv9qZFzW`I`(SP6sp*R)wxWei;O1 zVZ9MBF@)$=BOR#Gtvc$Z8+H1s>WUBl!mP{#h<(IA@oAu{?n#naR}*CT@AO5)%GS{P z-W|`psi~`H;*|e_a7@q)VJ9*f-~gv9DMWdPsj;m05mHbPqwyhD{d&{c<(7uRoHCUe z6crVOpNG+z)kLF1!)q>yyR1pNfuEn+QJ}7-z$-KZR6y;nIgt zo7X_N8Q0IbPLzdF?SY^#G?fBLKldyf!7;UXa`f$Luc$OgRD~1p?I_L3Lz4j*CSlD{ z+D$Y~8kvvbM&JW&kZ()wXI*UMWvgMPjdv2V$X?L%VDO+s;ZA7Q%+zGakx4?I>4J3L zh#cg{3QJgRW)pUhV7X4>9%AI-y1>IVI*a=VVul6gdN>l0=;9fG(}q&gkfg7>%h9rs zL)kHwb4+z1_ya2tigWUCWTq+IY&2Cdf{u_-6rn*n%$>Aa9IDHqW7Lq?278D-hlDlp zOg>G8+qpm*8MGga-WVY;6?ozqtJn4o7}3TV61)T3GBab2y1exfT9SxYatn!hxgY8d z+~s3>_7Dq&m`!Aw>S4NLZjF`Mk-%e;F-I+IrUq~|@&Eo2_4pBNP3+cMIb_!~3lRTl zS;5N9tUYsmn&XeQw=`&$p#vp*END5?FiXhpsB2*~G@G7aL-tH0b?aQ9rHV+^OF`Z? z%Scb{mR`CrW){*|X?w#5s^rIQO~a%sw#r&yk|$-!l>NDjo#(T{GM7p&x_KFY*;%g)F)~GbaG*M^=aaVnG$R*zKMGqL?G>bersgR>ulS zuEfuiVW&>kjgHAY@>gH$w1S4LhCUxq$AOITWCi))JnKqR?rpyJ9k_Rn{NYxfnWbu~ zwER;M1LFzY6s<04ByA@-Z5#@43geWzMn8 zp3ynay;h8(>~1|c5*Ri(;CBw~9?h$pT`AU`u{6DQTa2(7vpRY-Q3530W3RS(*t>v= zyXuOFVy|cASx?yYNhl7Pf%sV2>HR<1DBXHsXd=K_T$2(?yl3^zGwW)Wb7<0(Yvr;T z5Q+p7Bzj?Sm12%&`3L?4W1NSyE1pX=rC^puwaI;IUpjlaF5 z1OJsxLQnkL&5N^6*ThBVAd!?BKbsK%q1B?f-?^JB)$W%V&hnWgnhPD+nB&L&Jp$6y z&M66?>W3@KNF}aeJzQ;dxjhooo$c^_>aUKNTkXw(#-@5tG{+=;n;8O-2Qo!dRzo4v zR(1meMSJ?dt}X7h?)8@2t+>B6BK8lI6C#9vJ+%L|Y_`pn8}s|z|5S7mC^B5z%O`kx zblr0{e29GEv;Rx14t@>43hgWrxsC^t#F5fO{A+3#$8JV zZ|Vlve5eG--w93CR-2uZEFltoSa851KGcUI&xVAQgS>9y;oUq-m3~rZ!lb-n4S3|B zsPZPQEZ!uY=Z~>{-xWK@3~NjErrC#DouD!Q998EqJS(yHQxd-rIFYD)^A3K%=($k_ z$>89N+*qo9>^B0mJ;i&pcGm$6=`T@`Sl{QXbvYp-4RtUl^HX`zujVV%Bix2$Fl=(; z7&b8mXce<1--rZ-6gnHE|5F)bb)iIoqesnh`q~xV?E4+lii6aBEH9o? z+{0S)IoCZ|>ij~@o=MbMU6%5lKDUVh6*s_M&d*0#+Fn7e(xpn-_{#9r7e~B6z<83^ z$KFF;|7X94wmLuB5a!Vb+c(hN+pruBH`YgA7B;UZW%gK|5?ejaGL~JqUl^om3m14l za)7deNrEMMBQ=Q+ljWm~SN+QGPS;vk5fxYNHE5y6=KAH7;~H8}6MN@$0oIOaBB_Po#x%@gplil$nGNWB5eI;P6C?HByq z^x(8H%+w-X(M@}evj5xwI_ZhT0%kfgC`}C6^_39vc}~~5rL?rtSUXgtRpN%b+8r;Z zT0j4BcJ$f)L}Yn(zY1r?g&c7}>p{hN&FCEwCkvJD;CiMciRezz?>9YtN)=Z`DhT2} zEtpdp!B-tUJ`&Bn#!Dk0a?O%-SZ_&D1rDSVh++V&Y=(|c^u30kYD99HkHeOX{1RH~ zE%vo3r@(_8^xv6Nzg`JGx@ob>6jAuOAi2fC19N&(I9)%0f^6U02J?zXG_vHK$B}zv zg>hp#M(b<&WH>gkWo_f)-&j}wCiqmXl{@o04aClE886@M&3xXAMBP5nn$Q{XaEhJg zwoO(R=Q(;99`U6itYKO+6nx~eca?MBhiXIlTS5Byd`th$hc=&e{ZjPm{-`*DJVat7V7Y(fx9J<67PAhgWOSqz(SFf}ypdVq z2*O|!7kH0XPZT-NoI!*B{i--AfDthUMdE5sp>-z&mK?p^C4jxTohE{%fSL1tx#2F; z%sQp_*T*QwCc;nCKey-yC19(T-4<89il}g)($HflN6f1oT$u#TOH&5~NJpf+Lor$N zB-8)Jc3e_E(a&d)AQjiJVf)YRDmN*(n8Y5KN{NU_1mrfh6W1auB`TpvW@7FffnGX7 zm2UcdyMOZ(6@TFa3wTq!dnlOo(6Fxf1CFK`@1W{ljG7Wkb!70L;Yp9L2J zIy#ljVkBALskL;`R>c24k5)key`z`7bJk}v)n*gZljOY@YZ>0Zob47$_@|YNjxDsH z-$``0!HqPKfY*iWFZDE)xZIF2SQ>b{<-2!vql*?z##YP#*TD#(7}VJcR>((ZM+2V} z%0u%s<_O{A3iOmHw2M>p#cz$wzNgJw`OnwG)=KMpNA9^#${HjTZL#>l@;+%=2y)s14li=e>64jcX4 zRu;st%c~2#o7Jk(L&R`$ZDK>fr%;gI#>P=j68Z4X?>h&}uFe@sF)GC>k>OUp;wEsu zC~+=s`1Dl-@%@D94S`BTV$`HjWhfSIARxQK;lEInNXb;bHPKFb+xOfCUolh)TZpQn9*un6VNJo1kK%V&J(qjOH7@Y7X()F z$~U8Q|69G)1%*ZLSHYt<__SM{&ZkbkUDwsWUiWDK18d18{4L5&;9hJ*7IhGC0qVM+ z!^)MNmKE4J3i|hm+V=k&Tv+6ylLog2G>ll(yeI82IK3;Ck6Dt903&heQ zYYz$KpV!Z4xN&X3Qsa2J*LG zYEXU=Ht#bizfhOoLw*;Ww%lK);f+N926GqMicgNv!_4+g1#6-K+lt`)jyb)0ilBA3 zDwCnBt#otAI_PLCD&Y4_tB3mB@E-xLlXg3bsze--FTqFPA@$p6aUsC&OA4&=^NXx- zu-Q9Fb2JoUuJ6AJ8pU0z88L^9t?&SQ<@J+_l%UStSVo0V0@JR>=>=AlE~*i%4Erv> z`?QnGXGu9fS={Ws%BotV@qB&$zmiZND^^Kh3HHw$xqw~);~HjMIQoB!md1>f=rXTW z2U;-K1Q{HcRpkFV2S;xx!eB|^u`%6QODX?|Yi6c5i==LzdMF#sIPF8Mq)lxr=m#2$0?62Zo$u zQ$$ROK&;9DMp#)r5n7%ZYGyn|f+5VYk(S`{B7tQBEOjP`44B|V#pTp;I#zmx*B|&+ zIx@pS5Ml{HAhtVaF`pSgkR2=}y;VITe+Cx%*d67HEVZ{7okx**4~7XLAh50ovF+^= z8C}%VYM`dOG|Am<2@$v7h=3$h{5@V6pTLM;Y0YE zK16ec#Z`3}#6VvyH01e=is!M9G_JYp&I>kD6@q4XSpukPqc@>sC^2nem=}uRiKfey z|4~A%{Eg7}$;#G+!5t5iVyj`Imx!&C)M0!1>qK%eWm8sddT;nb2!9PIl#1cB>bBn< zh*I^z7Q1#WAWPJIzAg9!l`CkJ=$Ojc z{~T!Q`gl1FLHS~Goum%MPKg;)$G+a*#8L7?#Gx93R}f@xo@L!uK3rgd!UPUFMGQm> zxG4-n6W>F6#YMojZN;=5t1Ft3$XD|cKEED@@g9(gGQJK1I)|cZ!74DJKxk3KbKG{| zv)s}@;g`lA%Dm-@O!;Ao94#t+8g;oeWBY0r&u>BvC+MVcsO!T^Katqy9zAVhP12*G z2{AL;FQl#FO$ME4EV#JMD#n2G?K*-Ut2&TI%)%e(9f-1qgEa$a)u zBtaT+2^v_eZ+VcwasXW7h6`t1eZ0*`oI^zfCgeBhaV}hkX*<)v3afZ@6F_wQ;4q#- zWyTBy=JfZ&z_BLbOp#6|dKa+MO>~r!U{2MvECzcHF;fb>`IE#!L5=f92Up?~B~99i z(Lt?HYcR(A5P$qe>^FEsoM0~o18n947Y6M&v%|q`Kl*l4@CHM+W6xRbG8`Z|>*%4m z=<3?gGn`tF@=1-oP0xcm0EaDqjyjtUL;1`-B25350-tz19B9X}CkEJn6Ct@aha1Q(>5qB| z6T4yvjpffZq))2ivZ!kXeq58vSN-^ot&wg0-6NBiC+_ay_(I(4=>J{MPK=3No-0jE z@&bmt=rWYOj4rwDQv0P^o^_Z0r|Uf-8w>0m8U90rV2OJ3ebhJ&wuJFB^lMVUDcqH- z8;Os_meNQ5?!Md!wA)d*yX~KK}WB=gk-0?@3eQX0v?1xiIIqA zo^2+GUyvq^G|hQP?oW%+-Yt4_g}BT=Ip2vm$iM&nG$Tbxg%}ea?o`pPV}q5QE(7P@ zq9m|yw@9_ACLI>3;v>ML_2ToF@?8#7fbJ*lv#Fs>K8dPzVZ^tK^DYkWe9JrC9>`T6 z50vaeetj10xjxU0|A3+$yalK*<~`EOpL5`5JH-k)iXE|EpHx+M&0!;A=R}Hs#V`*Q z`@&_i_;bd#wY0z-aF;R**<)zEf_}Ov`fYCIJ6v{pdb$;b%WLUx9%C-|m&J7Tu4)Te zly1&0y#*7`EniN*>dg<<`PgL+0z}2F+x?huvT1kp2;OG(jjeGVXp0QAZ^ln=bN1@; zkr{#S9vfMWliuYwLluOloy{#5ckG$0B#7cf*%-X6fe$k=H7u81W@m=uo5w9@_qO`l z9SyD@{ijxS#40AWn^nRVx9mQ5Qyv9d%^g2dS@iKW+#L{u&$jY~5G}8S?&F zDe`Ln4V<=L5KuY93tgJ@yPSV*`_|dMSCGy9dfML^=zcT0QC=dL+n#YQpc3h!2*lQ+ zp#kK!Qy_Vw^ove-eNKLeoIzoa07b6ty`Bvo_5Q*gpaYsFn6E0ugJMdiAu$h* z+}}1o$DWnB#*G!Rqog0#0m^e_iW58yq>Xar;hM$_gZM}=>>T-aKQ0~t2*@&pk?~Ja z`Aq9_-dS}uFfIzIu);fLLAaa|olN-1Uu+yZz3+4lyS<(FYXc`lF5DO5KJQ6IB1vm0 zYdiOParRuFvNqT_p>8v%e$&nX}yd!s`-zplHw~J_i)p_ZN2QwB&Ach9hOOW+~gD9Bqrl%`2O2+NVl1tcK^rfrMt7kdI>2) zc{5)p&y{KlrtQ1LGoL`dFxipFOtq-kHNu4WI7r8y%xXa~{+Dq2ZXSa8ww~_ndtjo1 z$4@5?&crPWr=&6X#>i3eN)@=_T;-U(BT@J*lU41x=xd|5e?y6x{$L19?O(jED^mEt z$FtR>T>sguEs;|4Ks1}S5hMd^^zdW}}B7wuY6NR76* zd*a(pR?-f7KFEZ`XEZehv19D1%*uvipOi_-7&S)ovIS0(M-fp(#5Tp;nGr!14`9HI z?)oHg%HA!OMc8{e2v~3Kw{co6*X@H{MF>{nRr%NmuiSqZPYyF)@GprW_CZ!)Kc^qUY zFP>NG{hG6u!QqI@TG`eifoSIxVs08FI9ej`{$`V@>(GLct4t%|mNn+#7;GuXP;-!# z%?00KF|c36Ez$#x%-@N^gNt`pn8n(@P>A#X8yYb}U1n!DMnDB>x7wz%tE~SkVSYEB z4ks&#zC|FqmKUKl3K6qmcO2cabM~vhL_>27$!bK;dY`dgvlkJOcUO!=mxK2kcM)}l zhK$!K#C+c4s|7p(rtWu+UHXVISnqn&>ioP7Gz^#o;Ys~=IYU~xW|}agGg&Hcuyfg* z73n1)p7;(;2!h~#_hZ!$^B~{B30d?H^u3y8`$5$}6MtB>XZlqW1!A9&*tv+e(av;~ zLc3(qTZZqHfd88MLWRce`5cQZ<})W{2#(17_<+UG{x@#o17 z=cVohDe0o+PCglPl`9ycbvDm4<=8OY%IPrneWl8UWPa3LQ2~-kPPS%B_8xM0ga6^2 zCe!ePG2>r7Nug~VGCw-6t;qfep;d)d>pd9!Ql}zzMw_!Y;gus{wR&k<+Q{0%<+#fA zaBI3#dXj4*bw&L!j`eBTk&?;ioDFG zoZscx8>y9BzEoyBS4cTpxac$RF$A8Zkk8HA)$bS1{Wo*{I#6UVA~%$Ysg8nG&(gaQ zzG=eOKgLvSG$}xvw1}#(T-`kH#|^Kls_$D$tjUCR11I9jn`cU8`WI-rZMUVIacIsN zBfb7iGd}+J(hb;AsdLQ%?ZtDIG1b_1i_Z^~IrAc?FN}m-4kOtVoZ9|R9k-K&Y|i4J z3#sqAboM7n8o{VJ=_hRF$CR8^uT9%6cg&j77Zs{sVJ%S9EPJqt#@^ekcg3P~s%370S33w@~<(g$^>p1i$2MzJ&aljHBmH)UXJu z-7WpUhH2ob+!>_i!)UhBMl<(r z(g{ejN4MV7_trGy1H2Cub~$ez7iUX7CIwT4%OrGezi%QR3d`c+VmxOmq}sqma}`7Q z2Z?#5BRqg<&X7Q}{z@RSaeeqQBnt9y`B=#}nrQv!{t_584R+p_-iY$)H|LX~Kt)i2 zgA;b_zoY#jHJmX`9OfSqtXs=m39V;SADvl)ZrZ5cd119mFY3iB=uM~etnyIuy_y^ zNp4B?HFh|Rl>9NMflc*WJ3nyOXc(qQhpJvuf!X!+alizh{yIIp03a*&w9GZ zm*2U|vlmXOS*F_3cbv&ftb}xNbTuoh?YfopoTV1Sh;Nu%ho7KMolgNM>jzrKdD8pD z6!!%R>805g8H5K%xs0U;@jX24-J~JPI|a@j4_p+((Kq{}C+df411^S>%oxN9nLZ%q zM^(3D@8IwIpbNq_cmTNPbXu_dpayp0LoeqdpCJ{_KvNw#A}MynNv7o+vH|7F$6~1j zmY(0Yyyw3<-UhER(;e6$fK7o)>@fPi*<6+<$P?WXD9D#)D?71U!f``EkI7*lOU{8( z9&X6JKjR7Ws+;|H-bskWa_W$P0C5Qoxoeyr zRa4CA_|g$df6S>$@(vD%KrmSsfd*mnt2Gr*rTuGF>{3Y!sOW))M?{*FiscO1B0W|?VC zktcu6E7(+$=6+>+2rs69x{gbcX@OHdj9H2r!L8PQxCHHzB6e>tFs%g@F(ik?lGYyRPE+B$%Qs@}se@Z=SUkV+fi-AFsO1jWq{M~u4Tz#0c z1q+oDUzpx0eccqV0QgSknl0{i2EM9z?F0KA#0`}vT3$PH)@-^!FRRNqo^Q-&A5X={ zyajF@PkN+iA-mu6dw8vN==~>CafIEw+(ka-J6V#+kSm4annk=eO?(HF)(^XU3!JIc zuuuDnSiDFci+5M+0SJCXj&3w{gUJ*oc2_L>&Q-67DWAH;E^U0WB^T;kn!$1BlRo{W9~4#_u@<<#Bo zQWh{q2V-J%VVFtTfgNmN0oT@a%)05gcoZNGXI8l z=MvyxKCvMFWoos%>pt&jS&5BNjjXYI!dgi>>7zmVRJ?iADT>qU0WIiZm7qHI6XnhU znVDBusFel`Wnrl^i=DFLc(@9cZ?S-}l~dL|!Ej&PY>$#bbeb5E0_T<5Quh6nfJo#! zhkq|P?du_bK_*6zg3%YGCvaxBjF)?}sn)Z=AECaT2{mEionf-Lyf+KLQY3|i+TP28 z5jIOlGcQV7H;#2A&k(;qYF{FQe>V3)`G{9wbG=BH%IJA~;!C4|mx95SpePp1Yvpux zvF+;uLtgu~50oMeDWEyW$oN$+wSe^b1z2?964V*>%s@ekVA0HNRu>%%W0mfwK~|lR zc+K9@@@94VPlmjw`I}*hULhLlP#TOMPg;Y@QN5IN`qiU9RW`v$!Fc+{joU7lEuI;h zuklmO?U&Xy#TWCYfkF)B3^}@EXmiKhy;DDpuMa4@xx7{^ji}&k8|Bnm)$q1%$cu{1dEg6b)gLL+(y|65Ec#EPmTZdh2upe z26l@$LAOQ|Sh<(GQh|PR4BnlTzo+r~PN>d9SwoMpm-pj`-`KG+%6o=VSs?**ZeAd= z-0?5Kvu=Um6hIl0kg8V;t0YAAb|5e|@>-$!2JPQu>B#}?_P`5YsWTMV(G$|yauN&X z)HtCD$t_D^W!3iS_dMO|ej!1FjEeuKJI~OMlEaxpLtV|g2;Ce|XP>HHo73`=Iuoa6 z@7Bi_6Fxp>@oc#n`&{vOG~qD+E5&MbN0POyCwJURMrO_=C3oW-d~I|_fpzq1J(N(Z zkV{>611Y=fgjS9M+F*(!m3Kj8)NwRgdcw?M94UfKom`)?+CG;tAewWVE^gfN^CG4d zkbS3Lh=d&X*@d;O^h=Ibh$!PQh4){lxpG8E71GUn|FFhQALtCA!&mP1!3Cbr>o=(& zF(@Xo8N~pCxj`?(Uml?Es3p^=lR)YU2#22ge^tLJ7Qlw*tSJ@E+YI#H!&dED*N@)v zKW9jNI+4^}1}NmVtb)|<;aY$l^X*RHcnDh`_J9L1@4$jR>1z~y)n%Lkf?qpe-w}6d71SY$RzsMkKK6>qHPH`(B3}n7Ut=LyeA4*L1x)ThKQR98;JA`WV?)HI?9_chDh45$;x4-zejMhF zOF!yypR{Uns?1h7*~ZA)uK!&4t)F`zwHfrtYCww@#oJ^gn7e_z#u|`-KD*+778Oh4W z2FLHt$G_~H^tqKLVEvkqy3t=)$MGjU>a~@#t*`R}xqLzD=s|MQkdNu7#*iDtHtoxK z7W71JBlz5-718z-7fI7+tVhw3AxU=#TZ*7h&|bo)^>&exCU{N6|H(y= zizG#y8H(|jLyoe~aJ|10DGqc`DXl?|8U7T<5|}seiVZI%4LLwCjrTXj)C(heJLR8M znC>&*{=%al4CfPV$Mmx~1~J&SEQ124pdI2!kz7gZ~^kAmA$!t(?tfll%z-WC$5 zsIE|&!QAsTzq(;t%a#f$BfP4b4jYj`>84(0pW9NOil%>LHf5Xi5iVFb9`!$EGvG%n z;a_@O%I}*9XzI)u78?C>AQ9qWVJ7!546=^o?-=-MmEd>NpSfgPE%!Qf8-ktaYByL4 z${;FdCoIRJo!UBtEMR=@lZh~9%i1hrLR(X)xP+ut(4Sb=#%1v<9zzz}>2~INVuZlY z0po7YXXsS21+jU2c$he`D?;{JA#?r)a}stYI|^@Dy0_VpkUQM!F=E47NRxBONrlq6 zI0`!Z`d6=ScP{GibUa(d1L|T*VeoBH;;jtftg8(1caNeshn6f_qaAV*NI}a833r~NoLToRb z*vgYlF_fm8e|(6!AH>#Jt;_qF2)7{0@}wbM;0vL^?o6$0Ho$xdo03BcFCQvtCR4hA zO;q`O*k|Q$p2({BNv?W;VvwvX-#{G-D7DgRYwG6D$95Ht@vOufYcL8?#hvYizuF&r zz_kJ|A4cFLSk_9vb!d$ZQ{FgfyJCg+OpRCr6E&`5_dAv2!XQN3R$h82f^K<~TqF9( z@vDS-zhl)P`tA4Lf!$b@VVdM9P`Ul(bR2d%ClAAGI~Jz%u_8}m=?#{$kxi!T)VSn( zN8V37&YxX$+)A0Y7x9G6yG*EtJXj(}hxvJvzg}rm(LAB!qL_>9O3W#KrSybGcEXZR zqhnYE4muzS1GW&JPi!mDmrL{0cSFonq?ebTs}#<9cRS4d!i&m~pTBrWq#nN| zA{x&hTcXQ00;=FBmEunv4bD3@(z8wp8<^JpCA#0mgeUrtVNcxwAs2~AaE?gKh?5Maqv8;tP8XDUX>#g%CEn$`PDjS>UuNBQlOD@R$iC%iJi-jv`e z_lpHTpMR~VjDjPu$8X&olj7IRItFuM0Tu>mr~L-3E@SNKAX@GI%H)eIQhZ+wqZxYg zo_+tIV##go#3^4+#?-<&pb1;;J`#IIg<^S5!QmW5`?K5U>=g@hwBDAnSJkOq!IT(S&h!mzvhuSaSVHp z%VDu$k@a*ae!;k&H3s}nS>pT?KKO;go%a5ESy3Znq=+deH%8A)O7ssa6!_`SRT6S` z-!!^Bi#ul{z{^N!J^V9?kl&yY3=93~)__oA9`S?)Y*?AN(3zZK#gHxXXr&9zLH5Zo6+SVg4G?a`aKt1Mbub8ih!lxTwN=RUa| zbYPu2yz>9EQ!X_IcjVaBnB09Z$q71UcD1 zZpm#3fG-q|m@&e_O@im^15><0E007K%r;K}vKsh_5EY4n^-i|jKnNiGo&TsIOaynh zpe{o93v7V^<(gSMRc4FBlCD5)qg~fx^CqLMv_g^M&|`3;3q-@@gbAd4Z*94Acdlo+ z!`dg)q86@5pA?0|2D!sq_4do6r?r)5f-`H6DDMm>FSNf+N}sI$#$T$qVb+*px&~Dk ze*OV$$ubIxN7(8zAyyGc8uLbo@poJJ-%jx8Hi~`EaS!%t%hAy3@drQjF$CXV*YIf{hBYC<2u{JYTrB? zQv@pR6TKc8ga{aef`c*oJ0=oU%*o+cjN)Zv7gx7`$bj|=jBF_3Z`hv&0SQr{pLNnP zt1O&6P{vDHy>_cew)9D6aAUD#N-P#0<6*CqT|A(4V`aFyze`xomr5%(y)ZHN{E0+R zMOeI*R=E|7-8&G}%;D7VCg7A^o_&zZGWkE8Yq4)^6Js==7N`ya?T44dD1C#z=1zs)z zQ8XecYmD7H#;=A8u}oi=Q}8VDF>Isj$_HhRETu`&NLoW=xN`N%>%x~R0q-Syn8 zenI)S(f;NC!%C&ja88%N^qB+qyw*Kf!@Et9L$jE~yFDT=?KYatOXYuJO!+z*5sYp9fDr zD@|7)NZ(ZG?i)=oR>XoCPSNh^V@`au7e8LZoA=Qbd@#pSEY>ulDy4 z{a0)L#APvL;BgZdoZz;rac{uy z6a@@2f$n*YU=1}AZPj<8BA>;n(PGyJ%k(ScJfud>aUojxh2V_V>`Xf8Lk16=QV6^z1 zGh#DjiWH_EU89#$^q=LSMR=&P$Ef9zSKIG{&E5^IAzcciVcQ5ylsX2XHxgVq*zq-#tX3;p2Xu0=VJ?i@Km}e8HW$F55s8;UJ8~biFzV zvMS3XJ`M5$CXE6{QY60p(o&>`IXuY|2N80z-00d zr5bLB4+Csq&tmQYO*>{#3VS!3)_TLmlO0>K`zf9!Kp32w*<}u|m^sNgp&p;3JRU0$ zKIRfX<;>Tqxw0a)8En&y4eE0PVE5- z{La-z3rQZxw$R+8D?*|q?9YQJws!V;1#ib4T8gYKzh?AvaKGg~?pL0Fu4eKq5Pe@M zT2UA!7;33u8=%Wzqv6)M|1A`q#e?=0w7<8XyyR@?BVgbxt)wj2)(M|al?k;@W6nbwThNxp$hW)H^RKfx7Otjv+Lc#v!wyK)w)vRoILv5 z4VwHs|Fn62FFJX-MLx>H!k7?<1u;!LKEoya;T9OP7p$!{gWle}4|g@7w3G4kH(G)1 zXYVgYL9eatFP~2P_N>QeRD=(8li>$GBNB-*&#QoojV|Hvi7S01Nq+NLGnD z1_$*X2H`0)S{jS{*A$OQ#`av1oAa~U>vx(2-iv6;kJHM??(@03YCI>qI(tvQ;nsD< ziL`*-vPTZXojd)@j!M{P$W89LBjv~P;FxAvOLiuFuAz}Ti*A}1PB|o+neG!^d^fZc zm)Vn+PY^iJ2L@N}d)>fsqQFJZLP{w@h>fNYd-V(7QXC|5B6|qh5GB*Z!4ekNNEQdd zN#Kt>wLT?LlflD3OGb>F^v?Ztg{1`v4v)^J@jY}sd*jceKV}^*{tE*iRH#mM)pR{}Ue0(XM+6SePJNU=h|M)09*7r~Tj!@DVP754+pCZ(tp{)Iod$Rr zm*yTVR%Z>2P#a!wdGb)>T`8lz3qx76lU#WP`A>&Ly#?nDzqR|YITh_ZsE$LM&5!Pf zVg@UN^8#2QXki}#7Cp;g6Tnx5m)VPh8Y`WXiVQk+{b@$4HtXN6@SHL{&Atfc3#pUG zBnc10EWmitZ5E$&MzPm&Zfe?m%M#PMk`AP&t zPh={a{)~~I*ei^MX4v(_=zUe{YosrY-%HO276`uGT$?8<2KbTz@hOJv0|8OQQe-4{ zZgH+A;_v|SIev&~>$CyZULsE9KPCr_B}^+H3R}X%#C~V0g@zsrS@Rf$p66k0?$3Or z`X?(o*&7B;6){LX`uKjaSa2#%{vx#TGCybk&nf?wn;gBL!uFl^Spk%!E~ExkRRCD1 z<9x#TTHA|7h62oocFbVEz$l+S@N51d5AP8MT?eFO@Bpz7U#&{Y)-$l@#S(pM@3({1 zBX48@JLr)Er|maYekiFR*DB=Nc*o4CVjw7!tIfftR>mN_x_U%W232o1R=vJ2PHwUj6xZ!+;Y#aH!hqaRzuEfDxUS zd&jbj)kU6-0^RiBE?GxwMo0s|iuK-BU3S-3im< z{?n~AM(K2^_q0J2 ziWmz0(%FJCV^w1NOMRdSIGiW3|Axq8zSnW>FK%X;208T^4l#*e1XA2?(AkIWA40ZrP*uhwht|PT_XjsA zFb;PQBSn5l#T(Y&hbopp)yyf0tX2vxwGUPV>}?N6Whtp4$2)GWM&OKHM&E+X-v>MzH4|aoj}qqFNU61?K(f#1Bs-q=RGM~pzp>aLWax#p zsTkJS%0yXp+!7?WWfdT2m~!6`G67z^_EKowa&CeAaJe!5pCfa(~jKdH66nU707A`*x z*e<~l2~?vulc*?qD0`4GgBLRcqrPYm%r1X*+B@6f)d*qg$0JZ!{92j)ir9Mj>9>V7 ze9z(>8NIdjzJGhT4w&+u^qmCcdtAvvd1A)!&4qL+SaBu#|9T_GsVv<`+mG}WVLr%4 zH#Rn=`g)uj9k_@IF;q%093Bpr>H6Y2nBsezp%A*gV-kU%#~~^ALNq`Dh=?jUUi~wX z{By&#kDT&Pt%F607zF?D3k~5uxAy@8Jx1Qs09WGgEC&^BCZmvj2MZ@2wwE zP@bN5J}%H7YIqKqC@iQJHDdp+aww$}w@tVS7`SX;4AtR&ezmw*wrps^muzsEKH6cx z%@Cx6U0|ZYPke!ehN*5aA4c=n++qI0%1?Q5ks0Ca_tr8#kpt}nTNC(X^RM6$u?eLE z<7qcSW_o{h>~!ift}g$&D?V09$o_)6Yux2h>$g#!PTjV3-Pk#8x9iDIT#va~7fV95 zK&8AlA&t#;eDOtL`$Z-v#Zc8?1(&I_<`lRaQbnv81F$yxUP?yozt(_Roc^fR{sOLKt#U~Y5gnx{Dsc3zPl20 z%J|wH^c0AtjT@X0FWVgSyfMqjpocl{&@O%_Po7NRk87R=2`s!)J|_sS`Z5;N8|M-% zEaP|)!}&<~rbBdvYc(Pzx0YI9Ntw%N5D#ME3?<;v8X1v{109DT?i`d^K;0&J?=pcw z0L9~Uj@kC;jd5jZ(k{BTQ zLg##vo{v$ba2MIxMHZI)BgL!%vPc6y5zh3G?`Xa1X=#8M0bqS%7^-5gV@}z_T}RAaz8&SYSzyf?!mR zs2peXibDZ2XJm17{KnZil}_(}jM^psu@YuDHt6`l&w)WC*}R0cSjAjXU@#!z4|W+y z1K0$&O{AwEK8XKCO2$Q-(Oh*F;_2rvbdH7o`HVir*Y3dNw5(jmjAhn+P@Bd2t^-Fg z;rTPEeghI$ zpebH~IYw&`NCf}ZfX<;P+J)MNY!pW`K(dBN6Io`@n?7|*0T3owNHV}VdC39^NZdky z8Y_o@1`RwJYV&Ht>?~3Qrj55g47F?$J zG5u@+ZOfLbsy~YbXW%MAi3v(EC@My;TE!tj=O7iLc4it_rAE)zTE~Etyyd}zO5Dlv z`Zcso(Jgo92K+td{1XBJe?`L85mlqBJT?5J2(v0-V$*zq!(YC1K@->+1BADJR>40k zUT`?+=_~DB526HvUk+bfO9V=hT_iA!K{D~mCoNW?7OLP+A~67y(ksCDAWjy=VmSra zCTp}ZlJ5QgK<6+<7L+Qj?5jkcEWUOJlz2Zl{a8&g+T1O49sCd`JoBGF%ET1ZATft8 zNS$lfu4Qoirm9;3!Z1z^(pY|Fm9f?ggwe)X0KfwA#_cCqLcuD*!#QgowO$T`kQ4M3 z8I4Ob7bEE+V>-t;%iD9A@fQ;@UHW(+krx;Vz<>}qyLRm=PhsQ%R57?hEnk+xD2OhC zn7dpq9j{1aY45lK}o0-XEwhWRu zt*|t5=gtjEVW73k#B$!ad}WuHuyK5&UKT7uG#DnV)|$0zl|M9mOz>Wzfeh0IBIm%9 zC)DV1@J~27q5nn__PP3()4p&7SWrO%7_N#C0m|nDA&`uIvG2vKTYAS5X^4k%5cDBl z4J8pGzG{Dg5b!uF2_lEzCQX_UL%eZ!5kqrmg|-BPFn}G?CCAzeR1exW_-gJIhZ`nw zg}L;`@c{P!fzDxjVj|I4)3qE0P{&}QU;{y21#QzCISCJw`3Kc4Zte-5LAGJk=zWQre$id;a_jC>1ppBPd z`c3a4WR#3C7ts40YXpzwrOrf)w7C#krA?m_ah2fY@XHk~TrtzMX;UbCQqqUdUx%H1 zRr1&0mZI;(%}}8FZr!`I>(Kh9BCqC&R<72TY%)w|V&M`yK0me|dJKHgWXVk9_?pQk z%a2hckbDd}2O(^W7A?R?FbPr0iV;W&nOHv*@q<-99@yOGAXx;|0_r%W%l*M^k*mJw zd~VPiF=7O_3TDZY1uqt2?R-2?DOnygL@lh!DpjhuySwuWR)I+1V(|sn4h_7ueMIoy z4fp+9T|JA?YD8dI>0NidFFr1|^={G4cYX_fUVLY$&+U6P{QYmecsTXm>9HXPMS&<8 z3QI9oC});1WgQyYn0caoBv&h4gs!qUpy5adl0!)S9w~=Vm;^$h)(A?00z{8!-SJkc zD_6z$uV;_wE{;f$I$#z0P+}XroDtKxTgxs(Dz@lc8Syu$7-c^^X>f4Xo}K^l&LIP_(F_Zs4&^fg6^y$+mKQNc9>6XtiO?>SR(&GDroxlRoPT&uwH<Nd^s#Df1E906ItfpW>q zdSyWGb!sLAvk>UBRq+h>Qa#DbH29f8wvL2dcn>!4Wh#>qKwI*fu7{P(STGXzZ_+2Q zL9~Tv!z0G@0{LiTL>PjQzPf(>I@6;?kFsLt;`|7=C-~X+?{j_Sy{v@PZ7|MmAqIFr zeHId!{6y!|V-^}BAT*gb;UfVi-sv2~6BNrPLUWkFgcH79R@RuP#=;!TtaosToWrnW zFX|e=D!26JD>Q|in`!# zL01^}74YEfOU8pCMZe)<`GIZ%-NllGyg}MU0K5by>^nxisiD8OtKjfM{{Xx|`1B80 z1xyI7F6J;c8cqAB8sOvT|J1Wx`?j(oN)ycg*d2;NG7N6qcNrRzsOTKviOVCq*Eqne zW@xn1L*q1`bqxI$FYsF< z+%Q=37IMVl%#!8vrDskH%CshlChc?uQHU8{YPjy+vvvX}{)FB<1o~M!9GqcR0nM%0Aqn0(>Xrpc72mO3oumMIj%&*>dSU*G%i`jfME_j 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 W44_{-3|vG6jzB=TxD>UNApZl$Zpgy` diff --git a/doc/GSI_user_guide/images/ch5_fig_analysisincrement_prepbufr.pdf b/doc/GSI_user_guide/images/ch5_fig_analysisincrement_prepbufr.pdf deleted file mode 100644 index 72d263623ac98637707b964038a8260efbcc6318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202878 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