From 8b8673e16b84107b3919148469a7a424a82f39d5 Mon Sep 17 00:00:00 2001 From: "russ.treadon" Date: Thu, 15 Oct 2020 13:17:00 +0000 Subject: [PATCH 1/4] GitHub Issue NOAA-EMC/GSI#2 merge release/gfsda.v16.0.0 at 1d3e30a into master Squashed commit of the following: commit 1d3e30a844c163224bb2ab81bdb5234daabbc7ef Author: russ.treadon Date: Tue Oct 13 20:49:12 2020 +0000 Issue #2: fix runtime errors flagged by debug global_gsi.x - committed changes do not alter analysis results commit 5d40197db645bc69e7f0bb48230832583f5e56d5 Merge: 89f85ed6 5c097753 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue Oct 13 15:30:19 2020 -0400 Merge pull request #71 from HaixiaLiu-NOAA/feature/gfsda.v16.0.0_bugfix bug fix for reading seviri asr data commit 5c09775305492617c9abc302e38f223548105673 Author: Haixia Liu Date: Fri Oct 9 18:39:16 2020 +0000 bug fix for reading seviri asr data commit 89f85ed60268e3ff535942b97ec8bc1b550d6f2b Author: russ.treadon Date: Tue Oct 6 10:11:23 2020 +0000 Issue #2: remove variables MPI3 and MPI3FLAG from ush/build_all_cmakes since not used commit fb31aa6b941158ed1f77bdb080a571d2e1035092 Author: russ.treadon Date: Thu Oct 1 18:40:29 2020 -0500 Issue #2: update modulefiles for various platforms (correct typos, cleanup, update versions) commit 937cc3cc5d6c8d1a7601dafbde9eab3c9dad5a7c Author: russ.treadon Date: Thu Oct 1 19:16:40 2020 +0000 Issue #2: update wcoss_c and hera modulefiles to use GFS v16 versions commit 2c901a4cefda8e53cb1bed64e090a55a8c4653ee Author: russ.treadon Date: Thu Oct 1 12:20:56 2020 +0000 Issue #2: update wcoss_c and wcoss-d modulefiles to use modules from nwprod commit 5c12435def1802af367f6a98a3f775cac2ece5b9 Author: russ.treadon Date: Wed Sep 30 21:10:55 2020 +0000 Issue #2: update modulefile.ProdGSI.wcoss_d to use modules from nwtest and prod commit 54d22190d3c1dc6a45a2e7de5850c8f1f29b0f3a Author: russ.treadon Date: Tue Sep 29 21:07:34 2020 +0000 Issue #2: update fix submodule to point at DA_GFSv16_global_only at 928d56d8 (clean up fix/Big_Endian) commit 00b24fd7ce98fc19b4dbf936d89bb9bacff10731 Author: russ.treadon Date: Tue Sep 29 20:59:19 2020 +0000 Issue #2: miscellaneous clean up in preparation for gfsda.v16.0.0 code delivery * remove global jobs and scripts no longer used * rename nc_diag executables in accordance with WCOSS Implementation Standards * update gfsda.v16.0.0 release notes commit 68f90db7e397ab78ff7bd5a1ca4e5624afc9de9c Author: russ.treadon Date: Mon Sep 28 16:54:25 2020 +0000 Issue #2: update fix submodule to point at DA_GFSv16_global_only at 243711ba commit 8ad168482a5be02cc3ecdc6f1e65ab6872433fcf Merge: 27e5f338 12533a82 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Fri Sep 25 22:18:05 2020 -0400 Merge pull request #65 from lbi2018/release/gfsda.v16.0.0.HDOB Release/gfsda.v16.0.0.hdob commit 12533a827793b8165b0c2a026b3882bb7819a46e Author: Li Bi Date: Sat Sep 26 00:57:47 2020 +0000 Fix for the array bound failure commit cd19d37d6bb99a88ab0f77c36b606e71149eca5d Author: Li Bi Date: Fri Sep 25 15:40:36 2020 +0000 292 to 213 update for gsimod.f90obsmod.F90 setupspd.f90 commit 9ae687b215c270da822a164f345c05542b934b54 Author: Li Bi Date: Fri Sep 25 14:36:47 2020 +0000 release/gfsda.v16.0.0.HDOB: global_convinfo.txt prepobs_errtable update commit 9a883dff32058be997e20b84624bdaf290939eb8 Merge: faf08e2d 27e5f338 Author: Li Bi Date: Fri Sep 25 13:31:28 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into release/gfsda.v16.0.0.HDOB Conflicts: fix commit faf08e2d6787f252704c4e5094463e836851dc9b Author: Li Bi Date: Fri Sep 25 03:07:32 2020 +0000 Replace 292 with 213 for the SFMR winds type change commit 8541dc9f174767be6cbca1969df8b02908dbf082 Author: Li Bi Date: Fri Sep 25 02:43:15 2020 +0000 Add conv_spd to exglobal_diag file commit a801f3b318ca254f8c2bc648eec9d3e0763617f4 Merge: 43962b08 6587af79 Author: Li Bi Date: Fri Sep 25 02:27:15 2020 +0000 Merge remote-tracking branch 'origin/release/gfsda.v16.0.0.HDOB' into release/gfsda.v16.0.0.HDOB commit 43962b08f755d4b6110e8579f77634e14790ae3e Merge: 96996100 30e24ea3 Author: Li Bi Date: Tue Sep 22 14:43:02 2020 +0000 Merge remote-tracking branch 'origin/release/gfsda.v16.0.0.HDOB' into release/gfsda.v16.0.0.HDOB commit 27e5f338e10ddeea48c042c7b20dc515f0d17fd6 Author: russ.treadon Date: Thu Sep 24 19:22:50 2020 +0000 Issue #2: update libsrc to branch DA-FV3-IMPL-empty at commit e3cb6fc commit 78bc54a8848854f786a0c4388a99a43c13c6aaae Author: russ.treadon Date: Thu Sep 24 19:08:32 2020 +0000 Issue #2: update fix/prepobs_errtable.global (set obs type 260 uv error to 0.10000E+10) commit 28d7f6af96351031324b80d3fbbd1bcb18fe9d54 Merge: aa09b386 b2458c9d Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu Sep 24 13:27:38 2020 -0400 Merge pull request #63 from ilianagenkova/feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr Added a NC005091 (VIIRS winds in new BUFR) bug fix into feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr commit b2458c9d0e71d35cbdfec486989e3a7c0df22d78 Author: Iliana Genkova Date: Thu Sep 24 12:01:57 2020 -0400 Remove a comment sign commit 6767d45c7c66e470b1314d659d8ecede73c63eff Author: Iliana Genkova Date: Thu Sep 24 12:00:26 2020 -0400 Manually bringing read_satwnd.f90 to its ca5596cd content commit f5e6a370fae9fe945e08d3a71b23e7513059f4fa Merge: e629d77d 26a62d00 Author: Iliana Genkova Date: Thu Sep 24 11:54:04 2020 -0400 Merge branch 'feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr' of github.com:ilianagenkova/GSI into feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr commit e629d77db284b9c10ec64a1e7e835923a133d112 Merge: bbbd5fb3 aa09b386 Author: Iliana Genkova Date: Thu Sep 24 11:51:08 2020 -0400 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr commit bbbd5fb358c4dabf09522578736371e490eaa3b4 Author: Iliana Genkova Date: Thu Sep 24 11:50:21 2020 -0400 Commit after reset ca5596cd commit 26a62d00d5cea0dd2eec4bffeafc2e70ef49b452 Merge: 1fcf9115 aa09b386 Author: Iliana Genkova Date: Wed Sep 23 22:32:41 2020 -0400 Allign with release/gfsda.v16.0.0 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr commit aa09b386c14c56edbec61d4e5153ce9d2b7fb77f Author: russ.treadon Date: Wed Sep 23 18:05:15 2020 +0000 Issue #2: various updates in preparation for code delivery * scripts/exgdas_enkf_fcst.sh - update name of forecast model script * scripts/exglobal_diag.sh - remove GDASRADSTAT dbn_alert * src/gsi/correlated_obsmod.F90 - limit diagnostic printout to single task * src/ncdiag/ncdw_chaninfo.F90 - comment out diagnostic print * src/ncdiag/ncdw_data2d.F90 - comment out diagnostic print commit 1fcf9115f9e19aafb9936db04992b39b81112480 Author: Iliana Genkova Date: Wed Sep 23 11:13:50 2020 -0400 VIIRS AMVs fix reverted, waiting till v16.* commit 6587af79ff3647a32e618a97eec84ef8cb870294 Merge: 96996100 30e24ea3 Author: Li Bi Date: Tue Sep 22 14:43:02 2020 +0000 Merge remote-tracking branch 'origin/release/gfsda.v16.0.0.HDOB' into release/gfsda.v16.0.0.HDOB commit 9699610060f1e09a7ddc94dc991adc6fbea90765 Merge: 3fb6e05d fc8a83fc Author: Li.Bi@noaa.gov Date: Mon Sep 21 20:03:00 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into release/gfsda.v16.0.0.HDOB commit 30e24ea34acf0b934819b30ea03eccb6290340a4 Merge: 3fb6e05d fc8a83fc Author: Li.Bi@noaa.gov Date: Mon Sep 21 20:03:00 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into release/gfsda.v16.0.0.HDOB commit ca5596cd3a4e470e6cf45dfc97d5b75fa0341b08 Author: Iliana Genkova Date: Fri Sep 18 18:51:41 2020 -0400 Comment out the WARNING message for itype=-1 commit c049983022bc3e263410a7834d7e9ce363261580 Merge: f227e5cb fc8a83fc Author: Iliana Genkova Date: Fri Sep 18 18:42:50 2020 -0400 Add dbn_alert updates ( release/gfsda.v16.0.0 @ fc8a83f ) Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr commit fc8a83fc7cb395a6acd16699d5ed399bbf7ab712 Author: russ.treadon Date: Fri Sep 18 15:35:01 2020 +0000 Issue #2: update dbn_alert after consultation with NCO Dataflow commit 3fb6e05d2b8a6369c19ed02685bed8626ebd11e9 Merge: b9e7d309 a8a01b86 Author: Li.Bi@noaa.gov Date: Fri Sep 18 14:30:19 2020 +0000 Complete gfsda.v16.0.0.HDOB fix update commit b9e7d309c1ac20abede1a84dfc29c64025308c8b Author: Li.Bi@noaa.gov Date: Fri Sep 18 13:41:44 2020 +0000 HDOB GSI code update and script change commit f227e5cbc29904fe3a4bfc527a434421967e990f Author: Iliana Genkova Date: Thu Sep 17 19:58:11 2020 -0400 Add a catch for unassigned itype==-1 commit 5e45e270e866b7e1f6f70c2a1d7c655b7f017bcb Merge: f3b51bcf a8a01b86 Author: Iliana Genkova Date: Thu Sep 17 11:36:12 2020 -0400 Updating with v16 gpsro changes Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr commit f3b51bcfcd534b19ca8f6a02a22385ccb4af67a3 Author: Iliana Genkova Date: Wed Sep 16 15:34:58 2020 -0400 Fixed SatID range check for NC005091 winds (VIIRS in new BUFR) commit c74f67ebfd5d14921b3319c4252acae93053571c Author: Iliana Genkova Date: Wed Sep 16 15:30:02 2020 -0400 Point /fix to 0c4d01 commit a8a01b8623ac03c727df619231cc623fcc362d96 Author: russ.treadon Date: Wed Sep 16 18:32:11 2020 +0000 Issue #2: update fix/global_convinfo.txt to assmilate metop-c (005) gps; add jacobian check to setupbend commit 8ae556278194df3f61e58431144962b916f54e79 Author: Iliana Genkova Date: Tue Sep 15 14:46:28 2020 -0400 Add a fix for unassigned itype commit c63b5ccb69c27165f09d5ac29a203c78601a3684 Merge: dc76ce7c 7c912139 Author: Iliana Genkova Date: Tue Sep 15 14:22:35 2020 -0400 Add NC* subsets for LeoGeo, new bufr EUMETSAT/Metop/AVHRR, and VIIRS winds Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into feature/gfsda.v16.0.0_EUM_MetAVHRR_bufr commit 7c9121399a135334951adcbaf0015b9e800572d6 Author: russ.treadon Date: Tue Sep 15 14:32:45 2020 +0000 Issue #2: Update DA_GFSv16 fix/global_convinfo.txt to include LeoGeo AMVs (skip reading), add fix/gfsv16_historical/global_convinfo.txt.2020091512 commit 96eaeb99256e139ad7da76fab7aa7ae3ec2a5939 Merge: ad60bd66 56652c2f Author: russ.treadon Date: Tue Sep 15 13:20:30 2020 +0000 Issue #2: Merge branch 'master' at 56652c2 into release/gfsda.v16.0.0 commit ad60bd66b5bbe369fad8c5b7a5a809452b28390f Author: russ.treadon Date: Sat Sep 12 00:08:26 2020 +0000 Issue #2: update comments in DA scripts; correct typos in DA job and scripts commit 73c8e1f8e1abdd00f49298de7abe5f2905cb29bb Author: russ.treadon Date: Fri Sep 11 16:42:20 2020 +0000 Issue #2: minor updates to enkf * src/enkf/gridio_gfs.f90 - initialize variable clip * src/enkf/readconvobs.f90 - split combined logical test into separate tests commit e451bcc58924dd97da0800aa9dd6eb863616d123 Author: russ.treadon Date: Fri Sep 11 13:37:19 2020 +0000 Issue #2: update name of scripts in j-jobs to be consistent with renamed scripts commit 7b00841a6c6d37d6ff7d62f8ebdc3df9c036bdcb Author: russ.treadon Date: Fri Sep 11 13:20:32 2020 +0000 Issue #2 rename jobs and scripts in accordance with WCOSS Implementation Standards commit e474cf06de30d4a5fd8ca08a39f0542997caf3da Author: russ.treadon Date: Thu Sep 10 13:38:36 2020 +0000 Issue #2: add GFS DA v16.0.0 release notes commit dc76ce7cca601c4fa1c9cb8608b7a76e7d068a9d Author: Iliana Genkova Date: Tue Sep 8 17:42:29 2020 -0400 Add BUFR 03-10-077 changes for Metop/AVHRR AMVs from NESDIS commit 25e79078ab0893c119ab02d131e41a7ce44421eb Author: Iliana Genkova Date: Tue Sep 8 13:24:32 2020 -0400 Add BUFR 03-10-077 changes for EUMETSAT commit 0bd8d699150cdf9fb0b6f5bf8ac5b243698ee1bb Author: russ.treadon Date: Fri Sep 4 20:54:42 2020 +0000 Issue #2: add prep_step and missing file checks in accordance with WCOSS Implementation Standards commit 7580ab99cb2eb7b3e51fff9aa20e2a4c3531798d Author: russ.treadon Date: Tue Sep 1 19:51:44 2020 +0000 Issue #2: Remove redundant and unused variables in accordance with WCOSS Implementation Standards commit fb50124bb4e12ecfdb3e6dd39d6059ab86eb3fc6 Merge: dce36030 85f38c0e Author: russ.treadon Date: Fri Aug 28 19:08:38 2020 +0000 Issue #2: Merge branch 'master' at 85f38c0 into release/gfsda.v16.0.0 commit dce36030faa97ba6285a00e57b43b543234dc55d Author: russ.treadon Date: Fri Aug 28 17:40:50 2020 +0000 Issue #2: update variables in jobs/ and scripts/ to be consistent with global-workflow commit 50bba81acd6df1bcee2272e0df7543d933f0871c Author: russ.treadon Date: Thu Aug 27 21:26:32 2020 +0000 Issue #2: remove APREFIX from DIAG_DIR path commit 0ac5a57f1772cec3d6dc6d4e1143594f33bb2120 Author: russ.treadon Date: Thu Aug 27 21:04:57 2020 +0000 Issue #2: remove ".ecf" from within monitoring jobs and exscripts as per WCOSS Implementation Standards commit 9b0fb0e801c66ae2f6c988bc78e750868731ff60 Author: russ.treadon Date: Thu Aug 27 20:59:37 2020 +0000 Issue #2: remove ".ecf" extension from monitoring job exscripts as per WCOSS Implementation Standards commit 965549156d30195944a8c8c42931e2de27aa061e Author: russ.treadon Date: Thu Aug 27 20:35:07 2020 +0000 Issue #2: remove ".sms" and ".ecf" from within exscripts as per WCOSS Implementation Standards commit 5c2e91454ae32ca04448b90ae48a091c6fd03e54 Author: russ.treadon Date: Thu Aug 27 20:23:18 2020 +0000 Issue #2: remove ".ecf" extension from exscripts as per WCOSS Implementation Standards commit dc5bddb535dca4ce6abde97ea9f21f36fbf62434 Author: russ.treadon Date: Wed Aug 26 20:42:53 2020 +0000 Issue #2: rename script in JGDAS_CHGRES_FORENKF and exglobal_chgres_forenkf_fv3gfs.sh.ecf commit 02ae2abab10db80dca7451d2fd34c3fd87e78c24 Author: russ.treadon Date: Wed Aug 26 20:39:06 2020 +0000 Issue #2: Rename JGDAS_ENKF_CHGRES and exglobal_enkf_chgres_fv3gfs.sh.ecf as per EE2 guidance commit df2581cec06ec55fc83175bf2114a051712276b0 Merge: 6724c131 52f9e5cf Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Wed Aug 26 11:33:15 2020 -0400 Merge pull request #54 from CoryMartin-NOAA/feature/enkf_chgres Change gdasechgres namelist for new version of enkf_chgres_recenter_ncio commit 52f9e5cfc75c40842f2b142b90c727ccce50fdd8 Author: Cory Martin Date: Tue Aug 25 14:03:01 2020 -0400 Change gdasechgres namelist for new version of enkf_chgres_recenter_ncio commit 6724c1315654f259ba4eeeb22fd09f3e9190a58b Author: russ.treadon Date: Sat Aug 22 12:36:44 2020 +0000 Issue #2: remove incorrect "." from dbn_alert in exglobal_enkf_fcst_fv3gfs.sh.ecf commit ca4b59c1f596ec3a9c7232ef267e3c4f6f243db6 Merge: 6f58682a 5fd6b23e Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Wed Aug 19 09:12:01 2020 -0400 Merge pull request #39 from KateFriedman-NOAA/release/gfsda.v16.0.0-restructure Release/gfsda.v16.0.0 restructure commit 5fd6b23e85aacaf348dd3560c3e7b253a6dd7d3a Merge: 283ab3ac 6f58682a Author: Kate.Friedman Date: Mon Aug 17 17:16:14 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into release/gfsda.v16.0.0-restructure * upstream/release/gfsda.v16.0.0: Add in some useful print statements commit 6f58682afd245568e63c730ca6e661552ab8bcf4 Merge: 0c23b60a e8b1459d Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Mon Aug 10 14:47:49 2020 -0400 Merge pull request #50 from CoryMartin-NOAA/feature/calcanl_print Add in some useful print statements commit e8b1459de5df22a9d97a0a028618c43364dcf0fa Author: Cory Martin Date: Mon Aug 10 12:50:43 2020 -0400 Add in some useful print statements Add print statements if increment or ensemble guess files are missing but IAUFHRS says it should be there. commit 283ab3acb4a5f34a869a8eba7349b9457515ddc0 Merge: b53db5de 0c23b60a Author: kate.friedman Date: Wed Jul 29 14:31:24 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into release/gfsda.v16.0.0-restructure commit 0c23b60aec3848149b9d6ae27a77906c85a6cabd Merge: 9fca7b3c 13366a1a Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue Jul 28 10:29:02 2020 -0400 Merge pull request #43 from NOAA-EMC/master Issue #2: Update release/gfsda.v16.0.0 with master PR #32 commit b53db5deac8c98418798b72041601b1936e48cb6 Merge: aff4da8b 9fca7b3c Author: kate.friedman Date: Thu Jul 23 13:35:21 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into release/gfsda.v16.0.0-restructure commit aff4da8b604fde8918ca68bed1fea8c3ff069c0b Author: kate.friedman Date: Thu Jul 23 13:34:11 2020 +0000 Small text fix in JGDAS_VMINMON commit 9fca7b3c7b8301f60a1860703e1d104b7689d97e Author: russ.treadon Date: Thu Jul 23 11:09:23 2020 +0000 Issue #2: refactor CFP in scripts to better support LSF and SLURM commit 263c10aa1541c2913c0dee5ed48eeeb33b0fb5fc Merge: 15f35da2 3eef0732 Author: kate.friedman Date: Wed Jul 22 15:23:57 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into release/gfsda.v16.0.0-restructure commit 3eef073293bcfa9c641bde3c5549621dbebea0a0 Author: russ.treadon Date: Tue Jul 21 18:27:48 2020 +0000 Issue #2: remove obsolete modulefiles/4.7.4 commit 15f35da215d2f1d59784e5bc5b2256fa02587d64 Merge: f6bc0f6a 29bd66fd Author: kate.friedman Date: Mon Jul 20 14:39:52 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into release/gfsda.v16.0.0-restructure commit 29bd66fd0c8e54783c25ee863fcf2575678ebbe9 Author: russ.treadon Date: Mon Jul 20 14:08:16 2020 +0000 Issue #2: update modulefile.ProdGSI.wcoss_c to use netcdf/4.7.4 and parallel hf5 commit e0327d3f6f84a81349ab5bd1291b5380f846040c Merge: 72b4c012 adbdbdd6 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Mon Jul 20 10:00:11 2020 -0400 Merge pull request #38 from kgerheiser/wcoss-fixed-cmake-build Issue #2: merge kgerheiser/wcoss-fixed-cmake-build into base repo release/gfsda.v16.0.0. commit f6bc0f6a010b0606bf6003f14872fb3ddc80f96f Author: kate.friedman Date: Thu Jul 16 17:46:58 2020 +0000 Add variable to JJOB and ex scripts for new atmos subdirectory commit adbdbdd66dbd139f6f477a7a9efbcd0df58d1de2 Author: kgerheiser Date: Thu Jul 16 16:48:35 2020 +0000 Fixes for link order and missing libraries commit 72b4c012db4b82b1fd6bf9257bb8075b9f2b2e86 Merge: c4f6dc19 6e815576 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Wed Jul 15 11:24:49 2020 -0400 Merge pull request #36 from EdwardSafford-NOAA/release/gfsda.v16.0.0 Add fixes to OznMon. commit 6e815576f24d22a62c3bd69065dcc52af4a6af03 Author: Edward.Safford Date: Wed Jul 15 14:13:42 2020 +0000 Add fixes to OznMon. commit 422b62c750d02141a27f9b796ebd39dfc855f30c Author: kgerheiser Date: Tue Jul 14 21:10:35 2020 +0000 Fixes for GSI so that it can build on WCOSS Cray commit c4f6dc19b79f4e43052b97bfd1a3e226bbb0aeeb Merge: 19bcabc3 06b99b7e Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue Jul 14 15:35:53 2020 -0400 Merge pull request #35 from CoryMartin-NOAA/bugfix/calcanl Bugfix for incorrect function call when IAU is off commit 06b99b7ef8483ab2b247110afe1a056e72ec8a15 Author: Cory Martin Date: Tue Jul 14 14:55:53 2020 -0400 Bugfix for incorrect function call when IAU is off commit 19bcabc3cb48fac7e57702d5a5080a5a8c90a4ea Author: russ.treadon Date: Thu Jul 9 14:26:52 2020 -0500 Issue #2: update modulefiles/modulefile.ProdGSI.orion to load w3emc/2.4.0 commit a0ef7d3d582b1092a8915895d58683abece0baee Merge: bbdaf21b d74bc03b Author: russ.treadon Date: Wed Jul 1 16:58:55 2020 +0000 Issue #2: merge branch 'master' at d74bc03 into release/gfsda.v16.0.0 commit bbdaf21b3f573229ce8f583df99940e1c3a9d40d Author: russ.treadon Date: Wed Jul 1 13:41:02 2020 +0000 Issue #2: replace ERROR with WARNING in tcv_mod.f90 runtime printout commit a1f83ecb47e745cd1d9a1dd00c8620c1cf3bdaa9 Merge: 947d7843 ef6f4746 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu Jun 18 15:54:03 2020 -0400 Merge pull request #21 from CoryMartin-NOAA/feature/gdaschgres Feature/gdaschgres commit 947d7843a37af36d804c8e4203746e1bfb740dc0 Merge: 63d9f196 fcec2a92 Author: russ.treadon Date: Wed Jun 17 18:12:36 2020 +0000 Issue #2: merge branch 'master' at fcec2a9 into release/gfsda.v16.0.0 commit ef6f474692e572e80ca6702ba41128730fce672d Author: russ.treadon Date: Tue Jun 16 20:24:05 2020 +0000 Issue NOAA-EMC#8: rename JGLOBAL_CHGRESFCST and exglobal_chgresfcst_fv3gfs.sh.ecf commit 63d9f196b9f8d9810d3aae20b285b668c40e1437 Merge: e9e717af 93cd14b9 Author: russ.treadon Date: Fri Jun 12 18:08:09 2020 +0000 Issue #2: merge branch 'master' at 93cd14b into release/gfsda.v16.0.0 commit e15074e1370266b18cfb8d35a20adca82e6b4c4a Merge: ed9eab45 e9e717af Author: CoryMartin-NOAA Date: Thu Jun 11 20:13:16 2020 +0000 Merge remote-tracking branch 'upstream/release/gfsda.v16.0.0' into feature/gdaschgres commit e9e717afc203e4b25dcf7570a3ba0443a04a42d3 Merge: 54e178f5 58354d02 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu Jun 11 14:45:56 2020 -0400 Merge pull request #11 from CoryMartin-NOAA/bugfix/contrib_hera Hotfix to allow for contrib modules to still load on Hera commit 58354d02fe441b3e3ef4a9962fd6038c47122cad Author: CoryMartin-NOAA Date: Thu Jun 11 18:36:02 2020 +0000 Hotfix to allow for contrib modules to still load on Hera after change from admins commit ed9eab45d962070eceb073b5e51675f9cd40eabe Author: CoryMartin-NOAA Date: Thu Jun 11 18:14:21 2020 +0000 Fix Hera modulefile for contrib changes commit 685589834199fb10e5eff13c752771e6d3840c0a Merge: 7d1b2948 54e178f5 Author: CoryMartin-NOAA Date: Wed Jun 10 21:18:22 2020 +0000 Merge branch 'release/gfsda.v16.0.0' into feature/gdaschgres commit 7d1b29488b3c354f1cdcea0094e5713136a092d1 Author: CoryMartin-NOAA Date: Wed Jun 10 20:49:00 2020 +0000 Changes from debugging addition of chgresfcst on hera commit f828de84bad1eda9191aac3aa1fbd2756f4fea74 Author: Cory Martin Date: Tue Jun 9 16:45:27 2020 -0400 Renamed script; created j-job for chgresfcst commit 99350edc1a9427d3bcf80d6c4fd1e4478fb275e0 Author: Cory Martin Date: Tue Jun 9 16:34:55 2020 -0400 First draft of exglobal_chgres_fcst.sh.ecf commit dd969e633930ac8d9e1fafb6a55bce65dea3078c Author: Cory Martin Date: Mon Jun 8 17:36:55 2020 -0400 change ln -s print commit 3df7c5b28052b5ac805d1e4a412302371fd3f09c Author: Cory Martin Date: Mon Jun 8 17:33:31 2020 -0400 Fix issue with indentation in getncdimlens commit 60a65fe533c7fe54a8c0019716b8b83dfce1a66d Author: Cory Martin Date: Mon Jun 8 17:22:10 2020 -0400 fix missing import os commit f91866710b059aa2cebac2e130ec433e33353c1c Author: Cory Martin Date: Mon Jun 8 17:04:04 2020 -0400 Fix some indentation in calcanl_gfs.py commit c12c96298249662ae1d7c4ac9d9cbfb518ac2019 Author: Cory Martin Date: Mon Jun 8 15:37:13 2020 -0400 Add print to gsi_utils; 4 spaces for calcanl_gfs Changed to 4 spaces instead of 2 to conform to Python coding norms for calcanl_gfs.py; removed capability to run chgres in calcanl_gfs.py; add print statements to gsi_utils for link, copy, mkdir; create chgres ex script from analcalc commit 54e178f59df7e608929048050577f511c4aa147a Author: russ.treadon Date: Wed Jun 3 20:02:45 2020 +0000 Issue #2: updates to streamline and add flexibility * jobs/JGLOBAL_ENKF_ANALDIAG - source config.analdiag * scripts/exglobal_analdiag_fv3gfs.sh.ecf - add option to remove DIAG_DIR * src/gsi/obsmod.F90 - add -p to mkdir command commit b3c6b668272795589d0a9f06d5d402a9fb3f0011 Merge: 6a9b5244 c489ff43 Author: russ.treadon Date: Thu May 28 17:48:06 2020 +0000 Vlab issue #65376: merge branch 'master' at commit:fa0e592c into feature/parallel_ncio commit 6a9b5244528767a19e891b59725c079b6d5a4006 Merge: 10741d5b 663f28ed Author: Edward.Safford Date: Tue May 26 13:36:17 2020 +0000 Merge branch 'feature/parallel_ncio' of ssh://vlab.ncep.noaa.gov:29418/ProdGSI into feature/parallel_ncio commit 10741d5bf39bd2eeae23a3ec436515a5702d55f3 Author: Edward.Safford Date: Tue May 26 13:31:06 2020 +0000 Update setupt.f90 adding missing Data_Vertical_Velocity field to NetCDF formatted diagnostic files. Change-Id: Ibe792738deb071e3e8b99118f395a8ad1bf21a61 commit 663f28ed10cd77f6016c729d2d013692144ba5d6 Author: russ.treadon Date: Tue May 26 13:16:33 2020 +0000 Vlab issue #65376: update to fix to point at DA_GFSv16 at commit:f0f7447f * global_convinfo.txt - assimilate COSMIC-2 and and monitor commercial GNSSRO * gfsv16_historical/global_satinfo.txt.2020052612 - assimilate COSMIC-2 and and monitor commercial GNSSRO * gfsv16_historical/global_satinfo.txt.2019021900 - update CrIS H2O observation and gross errors * gfsv16_historical/global_satinfo.txt.2019110706 - update CrIS H2O observation and gross errors * gfsv16_historical/global_satinfo.txt.2020022012 - update CrIS H2O observation and gross errors commit 16bfc145ce5e592cc4eb0410da2e0f5e402973e0 Author: russ.treadon Date: Sun May 24 13:10:55 2020 +0000 Vlab issue #65376: add logic to optionally compress diagnostic file created from a single task commit 54cfbdb4dbf5b3fdf987b9fd679fca044b426586 Author: russ.treadon Date: Thu May 21 23:35:40 2020 +0000 Vlab issue #65376: updates to process COSMIC-2 and commercial GNSSRO commit 16fae83675238fde64a846e9cb69d512097b5d30 Author: russ.treadon Date: Thu May 21 11:03:25 2020 +0000 Vlab issue #65376: additional source code updates from code review 21684, correct exglobal_analdiag_fv3gfs.sh.ecf bug commit d73ad90b0d30898d71f61d5aa36fddce2474c8fe Author: russ.treadon Date: Wed May 20 00:19:23 2020 +0000 Vlab issue #65376: correct typo in scripts/exglobal_analysis_fv3gfs.sh.ecf commit d9181d64819865edbcea13525a64a39d5c9491bb Author: russ.treadon Date: Tue May 19 22:46:30 2020 +0000 Vlab issue #65376: updates for code review 21684 and GFS v16 DA commit be0a5c421b05421c02bb041e4266e32ea814ddb1 Author: jswhit2 Date: Fri May 8 15:05:36 2020 +0000 update interp_inc to use ipolatev for interpolation of u,v increments commit 0038c050cc0b64079e18de46c0671b36706b0e71 Merge: 29c838b3 1b95607d Author: CoryMartin-NOAA Date: Fri May 8 15:03:05 2020 +0000 Merge branch 'feature/parallel_ncio' of gerrit:ProdGSI into feature/parallel_ncio commit 29c838b3f9f1d8ad26ce4447ba3eb15faf72089f Author: CoryMartin-NOAA Date: Fri May 8 15:03:01 2020 +0000 Add in print of netCDF filename for errors to module_fv3gfs_ncio commit 1b95607d5cac2987aa1573114fd75f1a1988b33d Author: russ.treadon Date: Fri May 8 11:35:23 2020 +0000 Vlab issue #65376: correct dpres latitude index in write_atm (netcdf analysis) commit c520b5673b4e82e7f00800844735e74e3efac801 Author: russ.treadon Date: Mon Apr 27 13:37:24 2020 +0000 Vlab issue #65376: add logic to check for and, if needed, remove DIAG_DIR prior to GSIEXEC executation commit cc69dcfa90b8e55a41d862d5259053992a272fb6 Merge: 8ef7fd0a 0938cb5f Author: russ.treadon Date: Thu Apr 23 16:56:07 2020 +0000 Vlab issue #65376: Merge branch 'feature/enkf_increment' at commit:620fa23c into feature/parallel_ncio commit 8ef7fd0add5a3a5e668383df6356ca6c66222a71 Author: Michael Lueken Date: Thu Apr 23 16:41:35 2020 +0000 VLab issue #65376: Address debug run issue for netdf_fv3_regional configuration. commit 0938cb5f10ddb7b5bb0938f96c47c4a2855c40ca Merge: 8b7c79e3 0b2c74b5 Author: russ.treadon Date: Thu Apr 23 14:51:08 2020 +0000 Merge branch 'feature/parallel_ncio' at commit:63fac121 into feature/enkf_increment commit 8b7c79e3ff60fcbbefb55d80727ef23c7c828979 Author: jswhit2 Date: Thu Apr 23 13:23:34 2020 +0000 add barrier to prevent race condition on shared memory window commit 8940866914db6025604175d0a4e8fe26c1ae0788 Author: russ.treadon Date: Wed Apr 22 16:03:02 2020 +0000 Update two exglobal_enkf scripts: * exglobal_enkf_recenter_fv3gfs.sh.ecf - check for existence of ensemble mean file prior to attempting to create file * exglobal_enkf_update_fv3gfs.sh.ecf - remove scripting to run ENKFEXEC task 0 on a single node commit 0b2c74b5a4b827efd287022cd6dedca87a068686 Merge: 6dcc3003 005f50b1 Author: edward.safford Date: Wed Apr 22 15:55:47 2020 +0000 Merge branch 'feature/parallel_ncio' of ssh://vlab.ncep.noaa.gov:29418/ProdGSI into feature/parallel_ncio commit 6dcc300385e795199cd91836f3b028be7b33c8a8 Author: edward.safford Date: Wed Apr 22 15:54:22 2020 +0000 Correct OznMon's read_diag.f90 to correctly handle levels. Change-Id: I55b89338857feacf14f9e60865e67b92a9fa280b commit 005f50b146c0146667fbdf21421a35ccc4daaa11 Author: CoryMartin-NOAA Date: Wed Apr 22 14:58:20 2020 +0000 VLab issue #68133 - bugfix for parallel increment write on Hera/Orion commit fd95cc9a547ff7886740d1e8d5ea3ec5be00c009 Author: jswhit2 Date: Tue Apr 21 22:28:06 2020 +0000 make sure shared memory window size is of type MPI_ADDRESS_KIND and > 0. commit 987b7e765a7622496f5fadb0faf7232e983a26ea Author: russ.treadon Date: Tue Apr 21 10:40:24 2020 +0000 Vlab issue #65376: extend parallel processing of diagnostic files to slurm commit c4cc8ea0b63a5e3276170e7a040e09022af2e370 Author: jswhit2 Date: Mon Apr 20 20:51:02 2020 +0000 revert changes from a172284a2311da2352ea10f8c99663d216ba82d3 (use of MPI_win_lock/unlock) commit 1721c87c9f86191fa756cb731a90571853e66b74 Merge: 0a565f3f c52be726 Author: CoryMartin-NOAA Date: Mon Apr 20 14:28:33 2020 +0000 Merge branch 'feature/incr_metadata' into feature/enkf_increment commit f014bac2125b870fca754bdd6de61fc81fb8fd05 Author: russ.treadon Date: Mon Apr 20 11:20:31 2020 +0000 Vlab issue #65376: add analcalc and analdiag to list of config files to source in their respective j-jobs commit 0a565f3ff06595d7fa8fe548e5e1835adb0ef35f Author: jswhit2 Date: Sat Apr 18 01:40:38 2020 +0000 remove MPI3FLAG - no longer used commit 6514f747f4b3e7b3c371b2ba91fc372e97495f85 Author: russ.treadon Date: Thu Apr 16 11:28:15 2020 +0000 Vlab issue #65376: code review updates - (1) remove unused variables, (2) address debug run issues commit fd91fe89d2d01f80a344dd3f0c71eaf8987a2966 Merge: a172284a 05e345de Author: jswhit2 Date: Mon Apr 13 20:03:02 2020 +0000 Merge branch 'feature/enkf_increment' of gerrit:ProdGSI into feature/enkf_increment commit a172284a2311da2352ea10f8c99663d216ba82d3 Author: jswhit2 Date: Mon Apr 13 20:01:57 2020 +0000 put lock around initialization of shared memory window commit 5e870e8fd87c1be2fe470a6684f04e34a610fd86 Author: jswhit2 Date: Mon Apr 13 20:01:38 2020 +0000 make sure arrays are allocated before deallocating them commit 05e345de7198c16bfc611948395d3b511fc9e13b Merge: cf514cba 3a60c3cc Author: russ.treadon Date: Mon Apr 13 17:28:48 2020 +0000 Merge branch feature/parallel_ncio at commit:0676a17d into feature/enkf_increment commit cf514cba84469ba38492606cb75a42cde3a72f98 Author: jswhit2 Date: Sun Apr 12 18:40:43 2020 +0000 remove MPI3 CPPFLAG (now mandatory) commit ade6fc8232a6cabd72f8d00745a2e11177f1ac3b Author: jswhit2 Date: Sat Apr 11 19:51:58 2020 +0000 revert fix link commit 8681cd9ec8ad2d4588e62901c9d97355a96ef8e9 Author: jswhit2 Date: Sat Apr 11 16:35:31 2020 +0000 revert libsrc hash commit 0af7cf39ba50a4ae21ff09d74dd4d1b706cb6269 Author: jswhit2 Date: Sat Apr 11 16:33:09 2020 +0000 remove extra endif commit 9b5fcf9d56df6a082ba252d8ba0982a698b5b45c Author: jswhit2 Date: Sat Apr 11 15:57:33 2020 +0000 optimizations for creating and distributing obs prior ensemble commit 3a60c3cc4a1d8fef62b7128f2f618deda4b20d30 Author: russ.treadon Date: Fri Apr 10 16:09:16 2020 -0500 Vlab issue #65376: add missing cmake/Modules/platforms/Orion.cmake commit af891f1566b3c51504dcc42eb9663b15b0d06659 Author: russ.treadon Date: Fri Apr 10 15:18:01 2020 -0500 Vlab issue #65376: add Orion to cmake files commit 1177fca6911d53c35040cebd1102b99c960b84cd Merge: f11ca530 cef3a3e6 Author: russ.treadon Date: Fri Apr 10 15:48:18 2020 +0000 Merge branch feature/parallel_ncio at commit:c7aab51b into feature/enkf_increment commit cef3a3e6ccd477dea5885b1d48450773065c93aa Author: Cory Martin Date: Fri Apr 10 10:36:31 2020 -0500 Add 'stop 99' so netCDF errors will return non-zero exits commit f11ca53017fa1d44f20f00fc798c6c825e03c4b4 Merge: 748ad023 ff1e0320 Author: russ.treadon Date: Fri Apr 10 13:54:59 2020 +0000 Merge branch feature/parallel_ncio at commit:e9669ac5 into feature/enkf_increment commit ff1e0320a1d673882977a6a76f77275eb83d0d8b Author: russ.treadon Date: Thu Apr 9 20:17:06 2020 +0000 Vlab issue #65376: remove unnecessary lines from scripts/exglobal_enkf_recenter_fv3gfs.sh.ecf commit 5b9bc119e1b1916cf4fe3320e1df415ea8b76db1 Author: russ.treadon Date: Thu Apr 9 18:13:52 2020 +0000 Vlab issue #65376: updates in preparation for GFS v15.2.12 * scripts/exglobal_analysis_fv3gfs.sh.ecf - update ESCRISFS & CRISFSDB defaults and uncomment links * src/read_cris.f90 - changes to process new data feed (backward compatible with previous feed) commit a84dc26a9e47714d7310a1b7dbe33249a15aa0f3 Merge: 3f2b353a 70bc69a5 Author: russ.treadon Date: Wed Apr 8 21:09:02 2020 +0000 Merge branch 'feature/parallel_ncio' of gerrit:ProdGSI into feature/parallel_ncio commit 70bc69a5486e9ecb0ea8cb23b075ca8101ff5a74 Author: CoryMartin-NOAA Date: Wed Apr 8 21:05:38 2020 +0000 Bugfix for calcanl_gfs.py to work on either Python2 or Python3 for converting slurm nodelists to Python lists commit 3f2b353a35d8a03a1354f151d0dd2a72eeeefbf7 Author: russ.treadon Date: Wed Apr 8 21:05:22 2020 +0000 Vlab issue #76037: update DA_GFSv16 fix to be consistent with gfs.v15.2.11 * fix/gfsv16_historical/global_convinfo.txt.2020040718 - same as global_convinfo.txt below * fix/gfsv16_historical/prepobs_errtable.global.2020040718 - same as prepobs_errtable.global below * fix/global_convinfo.txt - assimilate 135/235 (Candian AMDAR) * fix/prepobs_errtable.global - set observation errors for 135/235 commit fbc3503d2ccd8531db98d1eb8d6b984008f38b35 Author: russ.treadon Date: Wed Apr 8 11:13:49 2020 -0500 Vlab issue #65376: use /home/cmartin/opt/modulefiles to load anaconda/anaconda3-2020.04.02 in modulefile.ProdGSI.orion commit 3baa0f64cf2fe5573e72a5cace9a3e5cb97838c2 Author: russ.treadon Date: Wed Apr 8 10:29:23 2020 -0500 Vlab issue #65376: update modulefiles/modulefile.ProdGSI.orion to load anaconda/anaconda3-2020.04.02 commit 01d59c9e6a8342c4af0257ece5bbce61844ec6fc Author: russ.treadon Date: Mon Apr 6 15:54:14 2020 +0000 Vlab issue #65376: add modulefile for orion, add orion to build_all_cmake.sh commit 970582ce1201233c0f95f4a7f6a8ea45b220b0a1 Author: russ.treadon Date: Fri Apr 3 19:39:11 2020 +0000 Vlab issue #65376: change hsst from 600 to 100 in L127 global_berror files commit ea6f70ff3a870353e9805b1748f5fdb2aeb82034 Author: russ.treadon Date: Wed Apr 1 22:51:36 2020 +0000 Vlab issue #65376: change declaration and printout of variable filename for FV3CAM_SAR commit c52be726f78ee00fe5e4bf1a5ac170ffa6d0a9be Author: CoryMartin-NOAA Date: Wed Apr 1 21:18:35 2020 +0000 #76442 - added additional metadata to GSI/EnKF increment files to know analysis/valid time commit 748ad023f79ff517e70b583bace9dab930ca3c21 Author: CoryMartin-NOAA Date: Wed Apr 1 16:25:57 2020 +0000 #69740 fixed bug in calc_increment_ens_ncio that caused liq_wat_inc to not zero out; tested commit 96ffa45f585833fb1a7de7a5b8bb93262b16155d Author: CoryMartin-NOAA Date: Wed Apr 1 15:55:52 2020 +0000 #69740 fixed bug in calc_increment_ens_ncio that caused liq_wat_inc to not zero out commit d45f6f8268f370abd463eb8985597a934da1448e Author: CoryMartin-NOAA Date: Tue Mar 31 18:29:13 2020 +0000 #76442 - add in psinc hPa to Pa conversion commit 2f489523611686e101d5fd59af0ab46f0bef01e4 Author: russ.treadon Date: Tue Mar 31 16:20:02 2020 +0000 Vlab issue #65376: script and source code updates scripts/exglobal_analdiag_fv3gfs.sh.ecf - add safeguard to prevent multiple writes to diagnostic files src/enkf/gridio_gfs.f90 - use correct units for pressure increment in delz increment computation commit fdbdac0d12b602d7084a847c2347ff2f9e48a3a7 Merge: 338a7d96 b4638a3b Author: CoryMartin-NOAA Date: Tue Mar 31 12:57:29 2020 +0000 Merge branch 'master' into feature/enkf_increment commit 338a7d96f32f727bc47c3b25d7f5880fa23c7c55 Author: CoryMartin-NOAA Date: Mon Mar 30 20:39:41 2020 +0000 #76442 - fixed compile errors commit bdc6b0b5b4ee2786d8cdcb9252f56b0f57b19367 Merge: da3e28a0 4a831215 Author: CoryMartin-NOAA Date: Mon Mar 30 20:26:32 2020 +0000 Merge branch 'feature/enkf_increment' of gerrit:ProdGSI into feature/enkf_increment commit 4a8312159f5aeff1b814a9691f74931bb4113eaf Author: Cory Martin Date: Mon Mar 30 16:26:26 2020 -0400 #76442 - removed unused vars from gridio_gfs.f90 commit d5433e4274a8db6ae854e4095f26d2a8163b4d91 Author: Cory Martin Date: Mon Mar 30 16:17:57 2020 -0400 #76442 - added in serial writeincrement to enkf; fixed bugs in enkf/recentersigp; need to confirm it compiles, then test commit 392e2fd1f437b5e5a3600cd1afcda96da5c12208 Author: Cory Martin Date: Mon Mar 30 12:23:18 2020 -0400 #76442 - add zero increment option for recentering utility; added it to eupd/ecen scripts commit 24da418c1012553f082fe429bbb43a747f9fb68f Author: Cory Martin Date: Fri Mar 27 17:29:21 2020 -0400 Commented out code that isn't finished for recentersigp commit 77b2df844c1e7064d2dd2fca2c1f6325c9aa7b18 Author: CoryMartin-NOAA Date: Fri Mar 27 21:14:45 2020 +0000 #76442 - add zero increment option for EnKF, need to finish adding it for recenter utility commit f7d098b6ce801df5679061d8cfbe0a9bac53b945 Merge: b24cbdf9 b4638a3b Author: russ.treadon Date: Fri Mar 27 19:19:44 2020 +0000 Vlab issue #65376: merge branch 'master' at commit:7b74864b into feature/parallel_ncio commit 54839e354dfd026e95a94e15555142dd6b55585a Merge: b764919f 41902c3c Author: CoryMartin-NOAA Date: Fri Mar 27 18:13:20 2020 +0000 Merge branch 'feature/enkf_increment' of gerrit:ProdGSI into feature/enkf_increment commit b764919f2ca8e0f386a2a67426aec342890e3e1d Author: CoryMartin-NOAA Date: Fri Mar 27 18:12:41 2020 +0000 #76442 - add forced zero out to recentersigp for output var commit 41902c3c592f82b563e8508829cdc210e0905a88 Author: russ.treadon Date: Fri Mar 27 14:55:46 2020 +0000 Add RECENTER_ENKF and PREFIX_ATMINC to exglobal_enkf_fcst_fv3gfs.sh.ecf commit 15e5783ddec5c7ddd9e2aa4ff244752384db1960 Author: CoryMartin-NOAA Date: Thu Mar 26 20:02:57 2020 +0000 #76442 - recentersigp and getsigensmeanp_smooth run and there are output files, need to see if they are consistent with before commit b24cbdf90110190503b20a9d7d0b06ebf494e025 Author: russ.treadon Date: Thu Mar 26 00:43:17 2020 +0000 Vlab issue #65376: update namelist and script for global_fv3_4denvar_C192 regression test commit a9a146852df991979eb2c172fe4376bd60fced1c Author: CoryMartin-NOAA Date: Wed Mar 25 20:13:12 2020 +0000 #76442 - fixes to get it to compile commit 7137f58670ca34b6aa4a768927676ff8873906cf Author: Cory Martin Date: Wed Mar 25 16:00:14 2020 -0400 #76442 - initial modifications to recentersigp to support recentering increment; commit to test on wcoss commit bdb159ffc4fa05da81430f2ca09aa1c868b4f77c Author: russ.treadon Date: Wed Mar 25 15:16:40 2020 +0000 Vlab issue #65376: add MKL_NUM_THREADS=1 to global_fv3_4denvar regression tests; add global_fv3_4denvar_C192 regression test commit 45ae1bc6144e8cb2f9ebcb13d1cc3a609db9b4e7 Author: Cory Martin Date: Wed Mar 25 10:58:18 2020 -0400 #76442 - make changes to ecen script to support increment recentering commit b95281d4b4698f5fde26e58790c0a30dec48b80c Merge: 441acea9 871e9c98 Author: edward.safford Date: Wed Mar 25 13:25:23 2020 +0000 Merge branch 'feature/parallel_ncio' of gerrit:ProdGSI into feature/parallel_ncio commit 441acea93361e55ae660b86faa45c933c7cf8787 Author: edward.safford Date: Wed Mar 25 13:23:58 2020 +0000 Update OznMon summary plot script to avoid trying to plot single level sources. commit 60c174b5c91f991ca18a74ab77bec30f2943918a Author: Cory Martin Date: Tue Mar 24 16:55:06 2020 -0400 #76442 - make changes to getsigensmeanp_smooth to support netCDF increment files; need to test commit 871e9c989309e8af3f56bcace10ea3bd170d7d35 Author: russ.treadon Date: Tue Mar 24 16:08:30 2020 +0000 Vlab issue #65376: update code related to ozone usage flags commit 44a3627e7551a3b936b16d54d8fc4d6c1c08ffda Author: CoryMartin-NOAA Date: Mon Mar 23 20:26:28 2020 +0000 #76442 - use variable DO_CALC_INCREMENT in the eupd script commit 1e608049ca8d21f8a7b7f427e0027a08e346dfb2 Author: Cory Martin Date: Mon Mar 23 15:19:58 2020 -0400 #76442 - add symbolic link of increment, not analysis, in eupd when using write_fv3_incr=true commit da3e28a0f99d1f4208f9359e7f6ca173f658de5b Merge: cdd256f8 5e4a0194 Author: CoryMartin-NOAA Date: Mon Mar 23 13:14:41 2020 +0000 Merge branch 'feature/parallel_ncio' into feature/enkf_increment commit cdd256f816dd791e32b32c1f772566471d02da09 Author: Cory Martin Date: Mon Mar 23 08:53:38 2020 -0400 #76442 - fixed some precision issues with variables, need to test; hopefully I can do so on Hera commit 5910347738e5587fb29a885366d74b49d0e22cd1 Author: CoryMartin-NOAA Date: Fri Mar 20 21:29:15 2020 +0000 #76442 - delz is now worse than before; but change of r_kind to r_single fixed some vars completely; look into this more commit 5e4a0194e5b188e69b3bbf1603a9dc246b4f5471 Author: russ.treadon Date: Fri Mar 20 20:56:17 2020 +0000 Vlab issue #65376: update netcdf, hdf5, and crtm modules for wcoss_c commit 9b0647927b2bf7edd9c15474129a8b9063ea0940 Author: CoryMartin-NOAA Date: Fri Mar 20 19:52:13 2020 +0000 #76442 - bugfix for delz pressure - psges vs psanl commit 7060fbc53445dedad21efe8db0dc1e79839be21c Author: CoryMartin-NOAA Date: Fri Mar 20 19:41:20 2020 +0000 #76442 - bugfix for delz pressure - units hPa vs Pa commit 3f60f43ab4d94fb17357efa0ddad11637fd38ecb Author: CoryMartin-NOAA Date: Fri Mar 20 19:06:43 2020 +0000 #76442 - fixed issues with delz,t,sphum increment; differences are minimal (<0.1%) commit 20d9170a7935d33676ca9d256bb299e642642356 Author: russ.treadon Date: Fri Mar 20 14:58:02 2020 +0000 Vlab issue #65376: remove unused variables commit 192954c155c08e4b9511d2fb4d81d94d5f7ce254 Author: Cory Martin Date: Fri Mar 20 10:07:50 2020 -0400 #76442 - read lat/long from guess commit 1caf42cd9a31b4d6de460bbf8700a8133c689502 Author: Cory Martin Date: Fri Mar 20 08:51:18 2020 -0400 #76442 - fix allocatable array bug commit 7df2559e984f63316d2fbaa4e06a857b875f6bdd Author: Cory Martin Date: Fri Mar 20 08:35:47 2020 -0400 #76442 - flip latitudes for all 2/3d vars commit 1579415d29a36473d243d28206a763fc6ce9bd21 Author: Cory Martin Date: Thu Mar 19 17:22:17 2020 -0400 #76442 - add write of lat/lon to increment file commit 9e6c2ad27beb9f178143b713214c70e81f41529f Author: Cory Martin Date: Thu Mar 19 16:01:55 2020 -0400 #76442 - bugfix for filename of guess for writeincrement commit f33202297bd9cf9d2c9f2f999335c768e564e547 Author: Cory Martin Date: Thu Mar 19 15:28:38 2020 -0400 #76442 - bugfix for namelist variable commit b818ccb1fce0368de4002ae092d6586318473bf3 Merge: 9400abec 294fbb19 Author: russ.treadon Date: Thu Mar 19 19:17:58 2020 +0000 Vlab issue #65376:: merge branch 'master' at commit:7b52464f into feature/parallel_ncio commit 63b7a9bc47fdca128c31e62bb04c21ef5c34123f Author: Cory Martin Date: Thu Mar 19 14:24:16 2020 -0400 #76442 - bugfix for subroutine 'use' commit b2548d388c495078778dc2e398176c05ba00b875 Author: Cory Martin Date: Thu Mar 19 14:18:44 2020 -0400 #76442 - bugfix for namelist option 'use' commit a2ed64fc22044764dcfa7ef883d616fa026f53ba Author: Cory Martin Date: Thu Mar 19 14:12:06 2020 -0400 #76442 - add namelist option for writing increment when parallel IO is true commit 76442964c30bdc0ee99a6a508e0dfbfde03e67d3 Author: Cory Martin Date: Thu Mar 19 13:58:04 2020 -0400 #76442 change increment to be r_kind for copygrddata commit 7da5bc5b3b32727dd0162c83e01ef2de4a0918c9 Author: Cory Martin Date: Thu Mar 19 13:53:26 2020 -0400 #76442 add copygrddata to increment write commit 6271ed403db038b18d23828df5362b527e515531 Author: Cory Martin Date: Thu Mar 19 13:47:56 2020 -0400 #76442 fix psges; add ak/bk commit c605b477283caaf000e406a9aa8b7432b9f2c668 Author: Cory Martin Date: Thu Mar 19 13:42:12 2020 -0400 #76442 fix even more compile-time errors commit 9cff1fb8eb2f6d37f3b6320fb0d45b6dd1d99701 Author: Cory Martin Date: Thu Mar 19 13:35:21 2020 -0400 #76442 fix some more compile-time errors commit 5bebfc825099a29432f8eaf4b4505533a40b8747 Author: Cory Martin Date: Thu Mar 19 13:29:45 2020 -0400 #76442 fix some compile-time errors commit d78992fb1b8552e7c39d5f333326fa07d86ae40d Author: Cory Martin Date: Thu Mar 19 13:13:24 2020 -0400 #76442 commit to switch to WCOSS for compile/test/debug commit 8adb4eeaa4f849b16e989a0a5c43f309c68f5d31 Author: CoryMartin-NOAA Date: Thu Mar 19 14:43:17 2020 +0000 #76442 commit to switch to personal machine so I don't have to edit source on VPN commit dd5df327fd788a32d8cd4a213d392c30e4a9dafa Merge: 261d282b d7ca0b26 Author: CoryMartin-NOAA Date: Thu Mar 19 13:13:22 2020 +0000 Merge branch 'feature/enkf_parallel' into feature/enkf_increment commit d7ca0b26baa2a2e0bcd7d6debf16f715c0f920c9 Merge: d58361bb 9400abec Author: CoryMartin-NOAA Date: Wed Mar 18 21:14:04 2020 +0000 Merge branch 'feature/parallel_ncio' into feature/enkf_parallel commit d58361bbdda307143cb622b6123846d78791107a Author: CoryMartin-NOAA Date: Wed Mar 18 21:13:26 2020 +0000 #72540 - reworked EnKF parallel read again; this time it seems that there are no differences when using nccmp; need to test at higher resolution commit 9400abec2c9721b220cf5ebece18ab67563a79c9 Author: edward.safford Date: Tue Mar 17 15:46:58 2020 +0000 Update gdas_radmon_satype.txt file. Change-Id: I31e0775bba7c04b656d15751fcd1fd6146deb60d commit 2a1f1d7a04b6b7ce19c4ae7598376594acae0a01 Author: russ.treadon Date: Mon Mar 16 10:16:42 2020 +0000 Vlab issue #65376: DA workflow updates for GFS v16 (does not change results) * jobs/JGLOBAL_ANALCALC - job to peform non-diagnostic file tasks following anal (new) * jobs/JGLOBAL_ANALDIAG - job to create diagnostic files following anal (new) * jobs/JGLOBAL_ENKF_ANALDIAG - job to create diagnostic files following eobs (new) * scripts/exglobal_analcalc_fv3gfs.sh.ecf - complete non-diagnostic file tasks after GSI completes (new) * scripts/exglobal_analdiag_fv3gfs.sh.ecf - create diagnostic files after GSI completes (new) * scripts/exglobal_analysis_fv3gfs.sh.ecf - move post-analysis calculations and diagnostic file creation to new exglobal_anal scripts commit 1a6502f65dd03851f8dc0ad3ee050e262cb957cc Author: CoryMartin-NOAA Date: Fri Mar 13 20:47:46 2020 +0000 #72540 - removed debug print commit 217d6bfbe6fded15f8690572d075145f52d63a58 Author: CoryMartin-NOAA Date: Fri Mar 13 20:39:28 2020 +0000 #72540 - reworked EnKF parallel read; write was fine but read resulted in small differences from original results; still need to test but saving for backup purposes now commit ce0842a998a0700bc18b0d21b1e4208f26cb6450 Author: edward.safford Date: Fri Mar 13 16:12:32 2020 +0000 Implement OznMon fix for iuse_flag from NetCDF formatted diag files. Update historic values file to add ompsnp_npp and ompstc8_npp data. Change-Id: Ia6aa1607a2f794ed10b27aaeb0cda536ff5c2039 commit 261d282b469f698763ad5b57de53375d40a19aba Author: CoryMartin-NOAA Date: Thu Mar 12 20:56:18 2020 +0000 End of day save; added u,v,delp increment write to EnKF code, still a work in progress commit 061527d0e7e758f008203bf5645183211b957a20 Merge: 9ee6dc9e 6f7a9ff6 Author: CoryMartin-NOAA Date: Wed Mar 11 20:12:01 2020 +0000 Merge branch 'feature/parallel_ncio' into feature/enkf_parallel commit 9ee6dc9ef4e48db1e61bdcc8ba9274cd454ee334 Author: CoryMartin-NOAA Date: Wed Mar 11 20:11:25 2020 +0000 #72540 - working version of EnKF parallel read/write, nccmp shows 3 randomly selected anl files are virtually identical (small diffs for spfh); need to test at high res for timing info commit d2332c616750ba394c9ccd33436d38a50939fb5e Author: CoryMartin-NOAA Date: Tue Mar 10 21:05:05 2020 +0000 End of day commit; code runs, but double/triple check vert coord krev, etc.; also ps std dev huge, why? related to vert coord issues perhsps? commit 80e4e1180ab08a97585abaf3de7763bbf44456e4 Author: CoryMartin-NOAA Date: Mon Mar 9 21:16:30 2020 +0000 add some debug prints commit ff87d1acc7b65e0acff6cc1af28c7768f578877f Author: CoryMartin-NOAA Date: Mon Mar 9 20:58:32 2020 +0000 End of day save before parallel production test; parallel write for EnKF is hanging, must be MPI related, need to debug on Hera tomorrow commit 6f7a9ff62afdea8e056dd2de9207ec736a6a6cbb Author: edward.safford Date: Mon Mar 9 14:37:02 2020 +0000 Remove ompslp_npp from OznMon's expected sat/instrument list. Change-Id: I5def2a0fb8569d150fad13379a8bd9b94909533e commit 131a9762713e79a8fcc76f2649ffab0da1e46fe5 Author: CoryMartin-NOAA Date: Fri Mar 6 21:03:01 2020 +0000 Code compiles for EnKF parallel read/write; not yet calling write_pnc though, need to ensure increment is on correct PEs and all PEs call the write routine, but only the first 80 do the rest... commit d0719fec27acd0ec4095e57d9b4fdcfb17ce718a Author: CoryMartin-NOAA Date: Thu Mar 5 22:18:43 2020 +0000 End of day commit for backup commit 498b816cb4ac7b0a1bf077949e51600bdd4c5f88 Author: CoryMartin-NOAA Date: Wed Mar 4 21:39:46 2020 +0000 Commit to save end of 3/4; need to rethink how to do PE distribution for parallel IO commit 7e2be785e8d3ac83f106d5c4c0fc0c84d82a888a Merge: 865b492d ffd64e70 Author: CoryMartin-NOAA Date: Wed Mar 4 13:39:31 2020 +0000 Merge branch 'feature/postanl' into feature/enkf_parallel commit ffd64e7090ef0122b25f9c0e9a67ead43db5602c Author: CoryMartin-NOAA Date: Tue Mar 3 22:12:03 2020 +0000 #75775 - added FIXgsm to exglobal_postanl_fv3gfs.sh.ecf, it now runs successfully for calcanl_gfs.py and for concatenating diag files commit da2cf60c4c9aa3e57a28744757332cac4212151a Author: CoryMartin-NOAA Date: Tue Mar 3 21:51:57 2020 +0000 #75775 - added guess/incr/anl links to exglobal_postanl for calcanl_gfs.py commit 7a8c70c62c459071b2ecfec6624539d3a8e8ce01 Author: CoryMartin-NOAA Date: Tue Mar 3 21:16:24 2020 +0000 #75775 - fixed bug to hopefully actually run exglobal_postanl script commit 34f198f23efde46bc553d1e11a185b096b73979a Author: CoryMartin-NOAA Date: Tue Mar 3 20:55:36 2020 +0000 #75775 - first attempt at exglobal_postanl script; removes steps from exglobal_analysis script; adds symbolic linking of dir.NNNN directories for diag files; commit 456ddc5746b2ab302aebff60d1a1fceebc089228 Merge: b1d3644a e8e11098 Author: CoryMartin-NOAA Date: Mon Mar 2 13:55:25 2020 +0000 Merge branch 'feature/parallel_ncio' of gerrit:ProdGSI into feature/parallel_ncio commit b1d3644a0dd797f4687a4b3918efbe9f675134c2 Author: CoryMartin-NOAA Date: Mon Mar 2 13:55:17 2020 +0000 #72540 #68133 modify calcanl_gfs.py to support when gfs/gdasanal step has fewer than LEVS PEs available; tested on Hera, need to confirm on Dell commit e8e1109823f26d11ee9a5ffc74234f8d825c8b0a Author: edward.safford Date: Fri Feb 28 21:37:56 2020 +0000 Add changes to make RadMon level cmake build script work. Change-Id: I7caf1be073d898c4449ef26f1aff8406d0a59776 commit 0e2bfc8be51e030222d4ad4f5b3fec86b0e9f57b Merge: e0031965 26005ea1 Author: edward.safford Date: Fri Feb 28 17:55:34 2020 +0000 Merge branch 'feature/parallel_ncio' of ssh://vlab.ncep.noaa.gov:29418/ProdGSI into feature/parallel_ncio commit e00319652d138dda56cd2ebd2d3accff3333f284 Author: edward.safford Date: Fri Feb 28 17:52:49 2020 +0000 Add changes to radmon's time data extraction executable and supporting scripts to add low obs count warnings. Update gdas_radmon_base.tar file for v16rt2 sources. Change-Id: I78420f5b4783a36012b95d2c9097d636e3f9c04c commit 26005ea11bbaca290fa055ff72d2c9211c2378ff Merge: 36c7fa3d 8340f155 Author: CoryMartin-NOAA Date: Thu Feb 27 16:22:46 2020 +0000 Merge branch 'feature/parallel_ncio' of gerrit:ProdGSI into feature/parallel_ncio commit 36c7fa3ddd8acd2eab9c8693bf48dd7b7dfb5ab0 Author: CoryMartin-NOAA Date: Thu Feb 27 16:22:39 2020 +0000 calcanl_gfs.py change to remove SLURM_HOSTFILE variable for calc_analysis commit 8340f15587a8d4d75a1f5d47aecd2e3f51fc98e0 Author: russ.treadon Date: Thu Feb 27 14:44:27 2020 +0000 Vlab issue #65376: two updates to exglobal_enkf_post_fv3gfs.sh.ecf * change SMOOTH_ENKF default to NO * add ENKF_SPREAD to toggle on (YES) or off (NO) creation of ensemble spread file (default NO) commit 71fb82528bd1940b466edbad1761037ffad72be3 Merge: 9acf4502 d90cdd7c Author: CoryMartin-NOAA Date: Thu Feb 27 14:03:49 2020 +0000 Merge branch 'feature/parallel_ncio' of gerrit:ProdGSI into feature/parallel_ncio commit 9acf4502e779e51f6d33c1556952db9d8dda9035 Author: CoryMartin-NOAA Date: Thu Feb 27 14:03:39 2020 +0000 Update to calcanl_gfs.py to support interp_inc parallelization on Hera/SLURM commit d90cdd7ca341e984e6273d2a1562a6e88b9fb1c6 Merge: 2d686687 1a6e33cc Author: russ.treadon Date: Wed Feb 26 18:29:11 2020 +0000 Vlab issue #65376 Merge branch 'master' at commit:8cf58e3e into feature/parallel_ncio commit 2d68668774d8e5332727da2de935a7cb6f41f73c Author: CoryMartin-NOAA Date: Wed Feb 26 16:49:41 2020 +0000 Change order of module load for Hera to fix Anaconda issue; modify gsi_utils.py to not need cftime py module commit 5c585a5ac3b75d1269fb595c8bf052386485bb83 Author: russ.treadon Date: Tue Feb 25 15:09:41 2020 +0000 Vlab Issue #65376: correct errors in convinfo settings for uv 290 (ASCAT) Following corrections made to global_convinfo.txt and gfsv16_historical global_convinfo.txt files * turn off thinning for ASCAT satellite ids 3 and 4 * place ASCAT satellite id 5 in monitor mode commit 4d9527c474ac64d1e8638658eba42f8cb125a109 Author: russ.treadon Date: Mon Feb 24 19:06:44 2020 +0000 Vlab Issue #65376: update info files for GFS v16 real-time parallel; add fix files for GFS v16 retrospective parallels * global_convinfo.txt - place GOES-13 AMVs (satellite id 257) in monitor mode * global_satinfo.txt - place all Metop-A MHS channels in monitor mode * gfsv16_historical - directory containing convinfo, ozinfo, satinfo, and prepobs_errtable.global for GFS v16 retrospective parallels commit f6e0aba3bed659e344e4d8cbddca3dbd59df430a Merge: 2c5fa6aa 32454686 Author: russ.treadon Date: Fri Feb 21 20:07:34 2020 +0000 Vlab issue #65376: Merge branch 'master' at commit:652c6470 into feature/parallel_ncio commit 2c5fa6aa4b89e96b0498d0ddc9570b24b9872c21 Author: russ.treadon Date: Fri Feb 21 16:29:42 2020 +0000 Vlab issue #65376: update fix/global_convinfo.txt with stricter gpsro qc. Leave fv3_historical convinfo files unchanged. commit 5e7f9042af993261a979c7b9706af2e81b2a6349 Author: russ.treadon Date: Fri Feb 21 16:18:20 2020 +0000 Vlab Issue #65376 Revert DA_GFSv16 (fix) commit "updated all convinfo files for stricter gpsro qc #65376" commit 7b58ef7911ce7e68719b9e74a685fd32e9c720a9 Author: russ.treadon Date: Thu Feb 20 22:07:28 2020 +0000 Move writearray call inside save_jacobian block commit 8394125a1d466bfb81e6e6bfaa9597be5f8aa1d2 Author: Anna Shlyaeva Date: Thu Feb 20 02:25:17 2020 +0000 bugfix for gps jacobian for non-assim'd obs commit 0d6c4d128f79c098396c049f8a8b997b820d6770 Merge: 33279da7 05e9af3b Author: Anna Shlyaeva Date: Wed Feb 19 22:00:16 2020 +0000 Merge branch 'feature/parallel_ncio' into bugfix/wind_jacobian commit 33279da74888a39234cce9bae04986a829ece3aa Author: Anna Shlyaeva Date: Wed Feb 19 20:46:06 2020 +0000 use sparse array jacobian for all obs types commit 05e9af3b74c00f031ad0b5cfae7f16c3999bbbee Author: russ.treadon Date: Wed Feb 19 19:53:53 2020 +0000 Vlab issue #65376: add MPI_Fortran_LIBRARIES to CMakeLists.txt for oznmon_horiz and oznmon_time commit f0f348dcf7ea14d0f4f3e17508d0dea8e166bf88 Merge: 962c7f79 4974ce73 Author: russ.treadon Date: Wed Feb 19 17:48:34 2020 +0000 Vlab issue #65376 Merge branch 'master' commit:0b623a3b and commit:0b623a3b into feature/parallel_ncio commit 962c7f7928d368baaa760b6f045a589538a4c113 Merge: 259b3f36 4291e520 Author: russ.treadon Date: Wed Feb 19 11:44:54 2020 +0000 Vlab issue #65376 Merge branch 'master' at commit:3cb8f0dc into feature/parallel_ncio commit 7f01a2a0c9e7448fd11f383d6b1a205108555b33 Author: Anna Shlyaeva Date: Tue Feb 18 15:22:37 2020 +0000 save wind jacobian as sparse array commit 259b3f3607bcc5a10dbfe5d35461500bdf75a80d Author: russ.treadon Date: Fri Feb 14 20:08:13 2020 +0000 Vlab issue #65376: update modulefile.ProdGSI.hera to use crtm/2.3.0 commit 865b492df62214bcece1614ded55e1f44ece131f Author: CoryMartin-NOAA Date: Thu Feb 13 13:51:46 2020 +0000 Commit to move to Mars for testing commit 902d7d0c778b5847be25aa242938aea9df9fd0f9 Author: Kristen Bathmann Date: Wed Feb 12 21:37:59 2020 +0000 update to setupbend to alter qc with alt #65376 commit d5b7668cfdbed5fd4e2e78eeb3bcbf3db51b47e7 Author: Cory.R.Martin@noaa.gov Date: Mon Feb 10 15:12:20 2020 +0000 Change to module_fv3gfs_ncio to have the option to write out uncompressed files; exercising option in EnKF write commit 9041addbe192b886add87259f7c554d6da7b4506 Author: russ.treadon Date: Fri Feb 7 16:54:30 2020 +0000 Vlab issue #65376 add historical ozinfo files to handle period of bad OMPS data in January 2020 commit 6fe34b8da65bc99f814176788649c3e0a7d0d072 Merge: 7cf7ec7f c8eb9d8a Author: Cory.R.Martin@noaa.gov Date: Fri Feb 7 16:09:39 2020 +0000 Merge branch 'feature/parallel_ncio' of gerrit:ProdGSI into feature/parallel_ncio commit 7cf7ec7f811e2b8e77250b2018042628e45847ed Author: Cory.R.Martin@noaa.gov Date: Fri Feb 7 16:09:29 2020 +0000 Fix to calcanl_gfs.py to not oversubscribe node with new parallel calc_analysis.x commit c8eb9d8a6d053612322aedcdce8332036ff64451 Author: russ.treadon Date: Fri Feb 7 11:27:43 2020 +0000 Vlab issue #65376: Increase threshold for pcgsoi b check from 5.0 to 7.0 commit 83aecfe8dde0e70155cba8e532279909a892a5a4 Author: russ.treadon Date: Fri Feb 7 11:16:15 2020 +0000 Vlab issue #65376: update global_satinfo.txt in fix branch DA_GFSv16 * global_satinfo.txt - decrease ermax for CrIS water vapor channels from 2.0 to 1.0 commit ea6570d35a1282635b169394d5c8ea5f097cb7d0 Author: russ.treadon Date: Tue Feb 4 21:36:31 2020 +0000 Vlab issue #65376: update module load for parallel hdf5 and netcdf to use NCEPLIBS installation on Hera and WCOSS_D commit 576f5b26571e11336ce1e02600bfc0e05fc5c7c5 Author: Cory.R.Martin@noaa.gov Date: Tue Feb 4 19:45:38 2020 +0000 Fixed indexing issue where the northernmost latitude increment was not written to the netCDF file commit 54341793d980f391dc752491cd3ca04b6cdb95a7 Author: Cory.R.Martin@noaa.gov Date: Tue Feb 4 17:03:35 2020 +0000 Revert "Change variables for general_read_gfsatm for netCDF to be r_kind and not r_single" This reverts commit 90415e1cc7be0f4164ba5ce085876e2d0b46b8da. commit 90415e1cc7be0f4164ba5ce085876e2d0b46b8da Author: Cory.R.Martin@noaa.gov Date: Mon Feb 3 21:14:47 2020 +0000 Change variables for general_read_gfsatm for netCDF to be r_kind and not r_single commit 32f0741717c27c0cab4a41ae5a17ee8fab10bed1 Author: Kristen Bathmann Date: Mon Feb 3 17:37:25 2020 +0000 reverted fix branch to DA_GFSv16 #65376 commit 68efbd5ac368157f26ad7ca8403815620620c6d1 Author: Kristen Bathmann Date: Mon Feb 3 16:14:05 2020 +0000 fixed a bug in upd_varch #65376 commit e87d7752e62f0cb4ee04a17bef6587d4c2dc8d4e Merge: f3dec418 b60a8aac Author: russ.treadon Date: Mon Feb 3 13:58:22 2020 +0000 Vlab issue #65376: merge branch feature/fv3_ncio at commit:8c2825e5 into feature/parallel_ncio commit b60a8aac4674645ebff90c9ef1a022f80da0ca41 Author: russ.treadon Date: Wed Jan 29 20:43:01 2020 +0000 Vlab issue #65376: commit reproducibility and qc change * scripts/exglobal_analysis_fv3gfs.sh.ecf - set MKL_NUM_THREADS=1 if running GSI with correlated observation error * src/gsi/qcmod.f90 - remove channel 3 from window channel test in qc_amsua commit f3dec418f941b230829d94db0850e988907a0a53 Author: Cory.R.Martin@noaa.gov Date: Wed Jan 29 19:54:31 2020 +0000 #69217 - removed debug print statement left by accident commit 1ed22ee620e41c701e19b738f2e3e007efffc630 Author: Cory.R.Martin@noaa.gov Date: Wed Jan 29 19:53:35 2020 +0000 #69217 - removed lingering deflate level from u_inc in attempt to resolve random differences between parallel and serial writes commit 71565522d941ff96992b9febd29cfd28e1c4e611 Author: Cory.R.Martin@noaa.gov Date: Wed Jan 29 15:16:18 2020 +0000 #69217 - fixed indexing issue when writing increment in parallel commit 475234bed464b91cc21e09a629601d834814b622 Author: Cory.R.Martin@noaa.gov Date: Tue Jan 28 22:05:43 2020 +0000 Fixed typo/error on nc-start from 2 to 1 for lowest latitudes commit 8e59993c2f6a6fa47117439cca701ca5f23ab84e Author: Cory.R.Martin@noaa.gov Date: Tue Jan 28 21:59:26 2020 +0000 Changed calcanl_gfs.py to support MPI calc_analysis and interp_inc utilities commit ed3f3532f5c628f8a0f738f300471808d94c5722 Author: Cory.R.Martin@noaa.gov Date: Tue Jan 28 16:41:15 2020 +0000 Update to allow for utilities to compile properly with parallel netCDF commit cf95eab22c7f661993dec2e1be345e51eebb9602 Author: Cory.R.Martin@noaa.gov Date: Mon Jan 27 20:43:36 2020 +0000 Add parallelization to interp_inc utility commit efa08b0dccf77f89c0ff7eaadf626c4e0412e699 Merge: c57be6e4 213e2f24 Author: Cory.R.Martin@noaa.gov Date: Mon Jan 27 12:59:39 2020 +0000 Merge branch 'feature/fv3_ncio' into feature/parallel_ncio commit 213e2f246ff6d95aacfebd0150a677bc71eb4b97 Author: russ.treadon Date: Fri Jan 24 21:26:45 2020 +0000 Vlab issue #65376: update q_diag printout * add jiter to printout * replace g13.6 format with g19.12 commit 3dfad66da4e8a3a523916542a2e9ab9cfbc537de Author: russ.treadon Date: Fri Jan 24 19:07:03 2020 +0000 Vlab issue #65376: update regional enkf source code so that it compiles on WCOSS_D commit c57be6e4fe80d1852939c07b222e293c6c36786e Author: Cory.R.Martin@noaa.gov Date: Fri Jan 24 16:00:46 2020 +0000 #72540 #68133 #68591 - removed debug time print commit e17beb5f9b0874895f3ba14e17fc7ce112ff8078 Merge: 99a0d1c5 f1c34c69 Author: Cory.R.Martin@noaa.gov Date: Fri Jan 24 15:58:55 2020 +0000 Merge branch 'feature/fv3_ncio' into feature/parallel_ncio Conflicts: src/gsi/write_incr.f90 commit 99a0d1c59bd24d7151700dcbac8ddf7e73503017 Author: Cory.R.Martin@noaa.gov Date: Fri Jan 24 15:56:31 2020 +0000 #72540 #68133 #68591 - add in parallel write for increment and parallel IO for calc_analysis utility commit f1c34c6900b8f345aea0f2b843f6f1d0a025fb07 Author: russ.treadon Date: Thu Jan 23 00:28:25 2020 +0000 Vlab issue #65376: correct one character typo in getsigensmeanp_smooth_ncep.f90 commit dc9684dff0fb4543dc85d2d9f513c8ca637dbfae Merge: 58ae1e37 0913db94 Author: jswhit2 Date: Wed Jan 22 22:15:38 2020 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 58ae1e374aa0731cc185a7601e528ed620e2169a Author: jswhit2 Date: Wed Jan 22 22:14:42 2020 +0000 make sure values_3dv_sprd allocated, and vgrd spread is computed when smoothing is on commit 0913db94f6fa3db36c05da8b5dde7c5c7b287484 Author: russ.treadon Date: Wed Jan 22 15:23:28 2020 +0000 Vlab issue #65376: add CDUMP to ush/calcanl_gfs.py commit b0fd47f8688da03effb0a8a9a307f610b54fcbea Author: russ.treadon Date: Thu Jan 9 20:40:59 2020 +0000 Vlab issue #65376: add atms to logical test for call ret_amsua in setuprad commit 70b961037366a84660bb400e83d427395f2f94b2 Merge: 36bc39f0 0a9e4cd2 Author: russ.treadon Date: Thu Jan 9 14:25:38 2020 +0000 Vlab issue #65376 Merge branch 'master' at commit:57a19ea7 into feature/fv3_ncio commit 36bc39f0601052b65ea656bc1fe56f6cf2419143 Author: russ.treadon Date: Wed Jan 8 20:41:08 2020 +0000 Vlab issue #65376 - set amsua channel 14 and atms channel 15 error and error_cld to 4.000 in global_satinfo.txt commit 8969ee73c2a0a9220dba0b986ffb4cc0fcd6c66b Author: russ.treadon Date: Tue Jan 7 20:04:16 2020 +0000 Vlab issue #65376 - RadMon and (lon,lat) updates * add abi_g17 to RadMon scaninfo file * write real(8) longitude and latitude to GSI netcdf increment file * use real(8) longitude and latitude in increment interpolation code commit dad0084a4442fd9d7582afcdbd0cb5f2e8deb11f Merge: cec44c38 a150f9e1 Author: russ.treadon Date: Mon Jan 6 14:51:27 2020 +0000 Vlab issue #65376 Merge branch 'master' at commit:0b3aaac1 into feature/fv3_ncio commit cec44c38e9ca1a1010772d467634ddcdd51ec7d1 Merge: 7fefefc5 4b747dd6 Author: russ.treadon Date: Sat Jan 4 19:13:41 2020 +0000 Vlab issue #65376 Merge branch 'master' at commit:918d9efb into feature/fv3_ncio commit 7fefefc5efac6f4a2c4fb65460aaebf6ba7212ef Author: jswhit2 Date: Thu Jan 2 17:50:21 2020 +0000 fix another spread bug commit 95f8568e649f181b05726f7e713302918251bc08 Author: jswhit2 Date: Thu Jan 2 16:51:26 2020 +0000 fix bug in spread computation affecting u and v commit 39dbdbdcc2fdb9e2115f7b5026fee3d30b7e1f94 Merge: 139aeb45 4acaa454 Author: CoryMartin-NOAA Date: Thu Jan 2 14:21:35 2020 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 139aeb45c8bdf2a3ca0b580a02358ab1505f9f00 Author: CoryMartin-NOAA Date: Thu Jan 2 14:21:26 2020 +0000 Force lat/lon/grid_xt/grid_yt to be double precision in calc_analysis commit 4acaa45450fb747ca94caeaf5166cf253605b822 Author: russ.treadon Date: Thu Dec 26 11:23:17 2019 +0000 Vlab issue #65376 - script changes to reduce job run time * scripts/exglobal_analysis_fv3gfs.sh.ecf - add log file for creation of atmospheric and surface analysis files; add creation date/time stamp to increment and analysis log files * scripts/exglobal_enkf_surface_fv3gfs.sh.ecf - add DOSFCANL_ENKF to control creation of EnKF surface analysis fils at center of analysis window. Default is "YES" - no change from current behavior. Set to "NO" for IAU commit 42ca097096d5be8cf29189b693b8aa5468f1f0fc Author: Cory.R.Martin@noaa.gov Date: Fri Dec 20 13:32:18 2019 +0000 Fix allocation issue for rwork3d0/1 commit fd5578d0344ff283ca601fb39f113e1467e3c2f0 Author: Cory.R.Martin@noaa.gov Date: Thu Dec 19 21:26:16 2019 +0000 Removed setting allocatable array to zero when it might not be allocated commit 3947c2f2afb9f1cd912e9888a07d6c6e6a7c0f5e Author: russ.treadon Date: Tue Dec 17 15:29:27 2019 +0000 Vlab issue #65376 - update global_convinfo.txt and prepobs_errtable.global to assimiliate TAMDAR aircraft T and uv observations commit 2bc81f5262f095b3b941bf793b5bab96a3d3cc9e Author: CoryMartin-NOAA Date: Mon Dec 16 21:43:53 2019 +0000 #72540 - using JEDI netCDF on Hera to test parallel IO commit c8f20370b902a6205b3d574fd24ab6fba6ed6743 Author: CoryMartin-NOAA Date: Mon Dec 16 20:48:47 2019 +0000 #72540 - fix attempt for errors in read dims commit c9675ed2b41fb236748d872870aefb7c79d2532e Merge: 1f15d415 84accb49 Author: CoryMartin-NOAA Date: Mon Dec 16 18:20:59 2019 +0000 Merge branch 'feature/fv3_ncio' into feature/parallel_ncio commit 1f15d41560bade5e9bbfc7a33948d81024fd27a1 Author: Cory.R.Martin@noaa.gov Date: Mon Dec 16 18:10:11 2019 +0000 #72540 - first commit on Mars to switch to Hera commit 84accb49ab2e0f4142b53c45bddad45f2a65d5e4 Author: russ.treadon Date: Fri Dec 13 20:04:41 2019 +0000 Vlab issue #65376 - add missing job for new ensemble job commit 7c98560f60131a43a186081e0b2b34a6159f6027 Author: russ.treadon Date: Fri Dec 13 19:51:29 2019 +0000 Vlab issue #65376 - modify analysis and recenter scripts to reduce run time * reorder tasks in analysis script to more quickly trigger forecast * move generation of sfcanl tiles into new script, remove from recenter script commit 1304f20097b57d87b741d4e2146bd9577b71ad0f Author: jswhit2 Date: Thu Dec 12 03:52:46 2019 +0000 optimize calculation of modulated ensemble in ob space commit c5c083cf8710bd3bac82e7323b37a4155a1faa7d Merge: f849ac1e ca4c76a2 Author: jswhit2 Date: Thu Dec 12 03:51:35 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit f849ac1e4b38618cb32bcf460f7954e3aa2f8810 Author: jswhit2 Date: Thu Dec 12 03:51:04 2019 +0000 fix calculation of delz commit ca4c76a283d8b07e6693849cc9545a7625b8ed87 Merge: efdf6305 89fd8767 Author: Cory.R.Martin@noaa.gov Date: Wed Dec 11 21:04:36 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit efdf6305c3054e6b39cc5ee6dc86ca07ca53075a Author: Cory.R.Martin@noaa.gov Date: Wed Dec 11 21:04:28 2019 +0000 Add NCIO flags for debug compile option with cmake commit 89fd8767552738d69edfaeee322781fd05e1a63c Author: russ.treadon Date: Wed Dec 11 20:58:47 2019 +0000 Vlab issue #65376 Set ompslp_npp usage flag to -1 (monitor) in ozinfo commit 2e0efd2e6a6a9e65479c9415eeeae5493ac140ab Author: Cory.R.Martin@noaa.gov Date: Wed Dec 11 20:42:19 2019 +0000 #69326 - forgot that there is a .nc suffix on the siginc file written by GSI commit 96d40e170512dba16d9ed56522e93629c1a54c96 Author: Cory.R.Martin@noaa.gov Date: Wed Dec 11 20:39:30 2019 +0000 #69326 - go from copying siginc to atminc.nc in ROTDIR to symlink at same place as atmanl in exglobal_analysis commit cefd7c02e0a51f86b9abff7ee3711cae35befb3b Merge: 745aefd0 56346df2 Author: russ.treadon Date: Wed Dec 11 16:41:02 2019 +0000 Task #65376 Merge branch 'master' at commit:fc5334c1 into feature/fv3_ncio commit 745aefd04dc04bf507a05963131a1286dfd31e7b Author: russ.treadon Date: Wed Dec 11 16:35:54 2019 +0000 Vlab issue #65376 * Correct commit:a3b1d9f2. Failed to push fix revision to repo prior commit:a3b1d9f2. This error is corrected with this commit. commit 6ca6a479064a66cb9b75c7863a7bb25cdf42d575 Author: russ.treadon Date: Wed Dec 11 16:16:26 2019 +0000 Vlab issue #65376 * Merge fix branch 'rev2' at commit:f13e0cdb into fix DA_GFSv16 commit 0132ccbdbb9fe6dd6c997b39e0c13bd5669ac653 Author: jswhit2 Date: Tue Dec 10 19:36:11 2019 +0000 suppress 'Attribute not found' messages by using has_attr function. smooth u,v perturbations for ncio check if smoothparm >0 for each level for ncio add threading in smoothing loop for ncio commit cd9553bd1458f68c97415737e8668f04db26324a Author: jswhit2 Date: Tue Dec 10 19:35:51 2019 +0000 suppress 'Attribute not found' messages by using has_attr function commit 7aaf46eefc36c67a967664feca770f4594aa70e5 Author: jswhit2 Date: Tue Dec 10 19:32:05 2019 +0000 suppress 'Attribute not found' messages by using has_attr function commit fab830b44b7bb0c873431afd7f52c352ffb70a63 Author: jswhit2 Date: Mon Dec 9 16:53:34 2019 +0000 make sure delz increment is added to (negative) background correctly for ncio commit 6465858b965dad0ffc0e7b35b035c546759740df Merge: 1eef79fb 716294a5 Author: Jeffrey.S.Whitaker Date: Sat Dec 7 15:12:47 2019 -0500 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 1eef79fbc674120aba2383fd183279f9072efb5d Author: Jeffrey.S.Whitaker Date: Sat Dec 7 15:11:19 2019 -0500 exit if incompatible options letkf=T,denkf=T and getkf=F are specified commit 716294a5eddcb19b020d73488a88933e738c7943 Author: CoryMartin-NOAA Date: Sat Dec 7 19:23:43 2019 +0000 Finally have srun working properly on Hera commit 48139e22b03e9db97efb8e032aef5bee0eaafc50 Merge: c900fe23 7b498ee9 Author: CoryMartin-NOAA Date: Sat Dec 7 14:38:15 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit c900fe23bc564e6139c260dcb144887cb3f425c8 Author: CoryMartin-NOAA Date: Sat Dec 7 14:38:11 2019 +0000 Try again to get srun working on Hera in calcanl_gfs.py commit 7b498ee938a1d57f9eb3d19f0149e8228d1637d3 Merge: 0536a55a 3a9d5ddf Author: jswhit2 Date: Fri Dec 6 21:52:29 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 0536a55a9de781fa44f6ca80d5d5c7392c60f0e4 Author: jswhit2 Date: Fri Dec 6 21:51:07 2019 +0000 fix for classic format files commit 3a9d5ddf32405b93f6f913c5ed90c7e127a620ad Author: Cory.R.Martin@noaa.gov Date: Fri Dec 6 21:40:59 2019 +0000 Change write_incr to write out netCDF4 file and not 64-bit offset to work with changes to fv3gfs_ncio module commit cbad78cc6be25b8491cc96e7ef865e228c7e8238 Author: CoryMartin-NOAA Date: Fri Dec 6 20:29:05 2019 +0000 First attempt to fix calcanl_gfs slurm support commit ae91596186eb6c427703a3cdd9ddeea6dfbb267d Merge: 32c8491f 3d92307e Author: CoryMartin-NOAA Date: Fri Dec 6 19:29:39 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 32c8491f7634b3d5410e045ec532a1fc883a8093 Author: CoryMartin-NOAA Date: Fri Dec 6 19:29:28 2019 +0000 #69326 - change HOMEgsi to HOMEgfs and vice versa for exglobal analysis commit 3d92307e1beff3254571f2ccf1945d7948e961b5 Author: jswhit2 Date: Fri Dec 6 17:41:18 2019 +0000 workaround for older versions of netcdf lib commit 134144017999e1d3e426b8055ee9d576cd83c9e6 Merge: 63ae6afc 8ef7b659 Author: jswhit2 Date: Fri Dec 6 13:59:47 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 63ae6afc002adb1ec9d4215754447ffc633faf27 Author: jswhit2 Date: Fri Dec 6 13:59:18 2019 +0000 preserve chunk sizes in create_dataset commit 8ef7b65938b066f6bd748322e839cff200b745dd Author: russ.treadon Date: Thu Dec 5 18:19:50 2019 +0000 Vlab Issue #65376 Update fix submodoule associated with feature/fv3_ncio. The following change committed to fix branch DA_GFSv16 at commmit:2c569c88 * prepobs_errtable.global - double errors for observation types 245, 246, 247 (GOES AMVs) commit 02a07d3abaaec552b6c5b6b277eb6fa22387b215 Author: Cory.R.Martin@noaa.gov Date: Wed Dec 4 22:21:44 2019 +0000 #69326 - make calcanl_gfs.py script use hostfile provided by lsf; more stable than possible issue with length of shell variable; tested on Mars; added support for srun and aprun but need to test still on Hera/Cray commit da91cf6ec99ba809265bc9f39c708228181cc6a4 Author: Cory.R.Martin@noaa.gov Date: Wed Dec 4 17:47:01 2019 +0000 #69326 - make calcanl_gfs.py script submit jobs in parallel to speed up execution time; tested and works on Mars for C192/C96 for 3 IAU hrs commit 5a34ddb9d7bbb35011f692ae32d79bc04fbdf3fe Author: Cory.R.Martin@noaa.gov Date: Tue Dec 3 15:56:43 2019 +0000 #68591 - added w3 calls to begin/end of calc_analysis for runtime info commit bd633d86e4cc7e696a392659214be3310d9b87aa Author: Jeffrey.S.Whitaker Date: Wed Nov 27 22:51:29 2019 -0500 update commit 7f1a99cf98de38080ab6e3ee9e4da943189c05a2 Merge: 68b5429e 14663ad1 Author: Jeffrey.S.Whitaker Date: Wed Nov 27 22:39:56 2019 -0500 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 68b5429e70ca54b5d9295fed917fef7a8b1e15f0 Author: Jeffrey.S.Whitaker Date: Wed Nov 27 22:37:38 2019 -0500 allow use_correlated_oberrs if modelspace_vloc=F and letkf_novloc=T commit 14663ad130f13c26a2a051468bff80f6580a4789 Author: russ.treadon Date: Wed Nov 27 17:16:40 2019 +0000 VLab issue #69326 * define LEVS in JGLOBAL_ANALYSIS for nemsio and nc files * add logic to bypass redunant mv in exglobal_analysis_fv3gfs.sh.ecf * generalize levs2 in calcanl_gfs.py commit 14e0b3afdb64ab82a241ddea0e5bfded288a4a45 Merge: 3c2f079a 970ecbe6 Author: Cory.R.Martin@noaa.gov Date: Wed Nov 27 14:58:49 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 3c2f079a2dee8c84460fe25c64f2e70573a4d165 Author: Cory.R.Martin@noaa.gov Date: Wed Nov 27 14:47:07 2019 +0000 #69326 - added list() to IAUHrs def to work on Py3 and Py2 commit a82561a40c12bb954722651a8f6ecb64a3a18b24 Merge: df1d921e 970ecbe6 Author: Jeffrey.S.Whitaker Date: Tue Nov 26 20:48:58 2019 -0500 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 970ecbe65edbe96822de5aa25e6ef4409cf98c83 Author: russ.treadon Date: Tue Nov 26 19:12:31 2019 +0000 * correct typo on first line of ush/calcanl_gfs.py * correct local filename typo in scripts/exglobal_enkf_post_fv3gfs.sh.ecf commit 404340aa38b1fa53865e7e9d00e7d720f0a3b9f8 Author: CoryMartin-NOAA Date: Tue Nov 26 18:43:05 2019 +0000 #69326 - removed LEVS definition from JGLOBAL_ANALYSIS script; will fail without set; gets set in exglobal_analysis script commit fb1857e83e80a720bfcbed3a7d68ee7c9cc8b736 Merge: e29afa15 40677965 Author: Cory.R.Martin@noaa.gov Date: Tue Nov 26 18:37:48 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit e29afa15446186f60e77220cc5ed17a614ed7d30 Author: Cory.R.Martin@noaa.gov Date: Tue Nov 26 18:37:12 2019 +0000 #69326 - removed LEVS definition from JGLOBAL_ANALYSIS script commit 40677965a31604696c02639cda987a2c28b51ebb Merge: e21661bf 04d56b03 Author: russ.treadon Date: Tue Nov 26 18:32:31 2019 +0000 Merge branch 'master' at commit:cb8f69d8 into feature/fv3_ncio. This commit brings #71496 and #55367 into feature/fv3_ncio. commit df1d921e4422f4b9595db274a4e86681c9fb2ba3 Merge: f8caca49 e21661bf Author: Jeffrey.S.Whitaker Date: Mon Nov 25 13:51:35 2019 -0500 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit e21661bf797d19d53b48e16d4cdc2c4f9d2c5408 Merge: 2d10ef7a 5d7b919d Author: russ.treadon Date: Mon Nov 25 17:44:53 2019 +0000 Vlab issue #69326 Merge branch 'DA_GFSv16' at commit:fc98bdf2 into feature/fv3_ncio commit 2d10ef7a5baf7bde3ff35cbb72faa7f6b9fd4706 Author: russ.treadon Date: Mon Nov 25 15:42:27 2019 +0000 Vlab issue #69326 * scripts/exglobal_analysis_fv3gfs.sh.ecf - remove extra USE_CORRELATED_OBERRS line, add missing LEVS_ENKF line, change OBSQC namelist variable nvqc to .true., add abi_g17 * scripts/exglobal_enkf_post_fv3gfs.sh.ecf - remove atmfXXX.ensmean.nc4, replace ensspread suffix ".nc4" with SUFFIX * scripts/exglobal_enkf_update_fv3gfs.sh.ecf - add abi_g17 * ush/calcanl_gfs.py - replace IAUHRS with IAUFHRS * ush/calcinc_gfs.py - replace IAUHRS with IAUFHRS, update local filename to be consistent with executable, add ".nc" suffix to increment file commit a7bed94459067f6d03fb59ce97dd3ce75bf40bf6 Author: Cory.R.Martin@noaa.gov Date: Fri Nov 22 20:59:08 2019 +0000 #69326 - fix nFH because I suspect that is an issue commit 38e3c75c628867a2d75d5e699b40fc9adeb22f01 Author: Cory.R.Martin@noaa.gov Date: Fri Nov 22 20:56:44 2019 +0000 #69326 - add IAUHRS for loop in calcanl/calcinc commit 68469383f86eb52549a13b85a8eef2b24f042036 Author: Cory.R.Martin@noaa.gov Date: Fri Nov 22 20:15:30 2019 +0000 #69326 - fix typo for erroneous parentheses commit 536cc17b70380dbab0ea38814ab5a66de1908196 Author: Cory.R.Martin@noaa.gov Date: Fri Nov 22 19:28:12 2019 +0000 #69326 - fix typo commit 34a9e743291638eceb9af593828b9462caf6cc42 Author: Cory.R.Martin@noaa.gov Date: Fri Nov 22 19:21:39 2019 +0000 #69326 - add support for nemsio_get for calcanl_gfs.py commit f8caca49ad5559a58c2d9a0aceb8fee0f64bf26d Merge: 53d1c452 ad733015 Author: Jeffrey.S.Whitaker Date: Thu Nov 21 12:56:39 2019 -0500 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit ad733015db0eb4a7c3a45dfa93eda4c43d8a0cb6 Author: Cory.R.Martin@noaa.gov Date: Fri Nov 15 19:47:02 2019 +0000 #69217 - made ensemble smoothing consistent with nemsio and netcdf on which vars to not smooth commit 96f4aa679189554f95abbd215d7553c634a03187 Author: Cory.R.Martin@noaa.gov Date: Fri Nov 15 19:35:22 2019 +0000 #68591 #69217 - bugfixes for ensemble smoothing and calc_analysis commit 5d7b919d36745eceb945d25b77e53aa92769e607 Author: russ.treadon Date: Fri Nov 15 19:24:49 2019 +0000 Vlab Issue #65376 add missing comma after nvqc in OBSQC commit 4deb0a9c2270842f53ff9d4c945fca8fa71bb971 Author: russ.treadon Date: Fri Nov 15 16:32:26 2019 +0000 Vlab Issue #65376 Add the ability to process abi_g17. commit 6114d6b6db2b2e58242dc20021df9f08b2c9f582 Author: Cory.R.Martin@noaa.gov Date: Fri Nov 15 13:41:21 2019 +0000 #69326 - change scripts back so its atma### in COMIN/COMOUT and atma## in DATA (to be consistent with atmf### vs sigf## commit 0dd9635526560747775a0a2de3e8cac7fbc95e63 Author: Xu.Li Date: Thu Nov 14 22:00:53 2019 +0000 Modify setupst.f90 to add 4 missed nsst variables to netcdf sst diag file commit 086c921513de2a071cba8f2ab470318d2cfc5394 Author: Cory.R.Martin@noaa.gov Date: Thu Nov 14 20:29:20 2019 +0000 Fixed bug where variables would not be redefined in a loop commit c3c05c92b69a7caf8c8e7c0c7fe990c270f631cd Author: Cory.R.Martin@noaa.gov Date: Thu Nov 14 20:12:09 2019 +0000 Fixed atmanl03 to be atma03 commit 6d6845c49f964805f1480e237b8221cc06dfdc4e Author: Cory.R.Martin@noaa.gov Date: Thu Nov 14 20:06:43 2019 +0000 Switch from a003 to a03 format for analysis files for IAU commit e98e6e43258c6697abd99d4c5a815fccdcde274e Author: Cory.R.Martin@noaa.gov Date: Thu Nov 14 19:19:56 2019 +0000 #69326 - add IAU bugfix from J. Whitaker here because Hera Vlab access is down commit e4626d733f5d3dc878fa16374cc10a203ff9b37d Author: Cory.R.Martin@noaa.gov Date: Thu Nov 14 19:06:31 2019 +0000 #68591 - modifications to use MPI to generate multiple analyses in parallel for IAU; also committed on Hera but Vlab connectivity issues persist commit 8d4424163cafefa05d42917b6ba4105cc0b5f3f3 Author: Cory.R.Martin@noaa.gov Date: Thu Nov 14 19:01:18 2019 +0000 #69326 - Fixed bugs for IAU support in calcanl_gfs.py and calcinc_gfs.py; removed NCIO from recenter script commit 53d1c45266406040d272d10380eaf2de7520dd5e Author: Jeffrey.S.Whitaker Date: Thu Nov 14 12:00:49 2019 -0500 fix allocation of lats array commit 20a3c3da94e9a85b6ba3124fbafffafff844d052 Merge: 29b413f0 9c52b477 Author: Cory.R.Martin@noaa.gov Date: Wed Nov 13 19:22:14 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 29b413f00463abd0e5abd987b83c9d8c11cde590 Author: Cory.R.Martin@noaa.gov Date: Wed Nov 13 19:21:59 2019 +0000 #69326 - fixed APRUN issue for CALCINC; added print of locals() for debugging/logging purposes commit 9c52b477f478c075a588263ce4e17c35d2da898a Author: russ.treadon Date: Wed Nov 13 13:56:30 2019 +0000 Following changes committed * fix - update submodule to point at DA_GFSv16 fix * modulefiles/modulefile.ProdGSI.wcoss_d - replace crtm/2.2.6 with NCEPLIBS crtm/2.3.0 * scripts/exglobal_analysis_fv3gfs.sh.ecf - add missing comma in OBSQC * util/EnKF/gfs/src/recentersigp.fd/recentersigp.f90 - move deallocate and close inside netcdf block commit 95a3da193954bb3d806391cc869559b6aa20002d Merge: d07c6594 f59cfb0c Author: Cory.R.Martin@noaa.gov Date: Wed Nov 13 13:27:24 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit d07c65947e8465d9027c25ded6e7c4fd4616a2da Author: Cory.R.Martin@noaa.gov Date: Wed Nov 13 13:26:59 2019 +0000 Issues #69326 #68133 - fixed bug that didn't support nemsio for calcinc; fixed bug of length of strings for zeroing out increments; added support for zero out stratospheric increments in run script commit f59cfb0c10fab3831ea0028be17176b0b464dce8 Author: Jeffrey.S.Whitaker Date: Tue Nov 12 22:07:53 2019 -0500 fix array allocation bug commit d4816f6e81356674143b228372cf8fd6431438b3 Author: Jeffrey.S.Whitaker Date: Tue Nov 12 17:35:13 2019 -0500 write out delz_inc commit b1bac7d0401cf193189eb6f3946b4a6b803938f4 Author: jswhit2 Date: Mon Nov 11 18:24:35 2019 +0000 don't toss obs without pressure assignment if modelspace_vloc=T commit 538b5e384c78004256e300ee3011c9f26b9f1cf0 Author: jswhit2 Date: Mon Nov 11 02:49:28 2019 +0000 if modelspace_vloc=T use total ozone obs without a level assigned commit 1b007c2ec7b1d339f751d2ff68717587485da954 Author: jswhit2 Date: Fri Nov 8 20:59:14 2019 +0000 don't try to deallocate smoothfact if it's not allocated commit f565d23c5ca473eba7b7716efb27c1ea668b0e76 Author: russ.treadon Date: Fri Nov 8 20:45:50 2019 +0000 Vlab Issue #65376 Correct typo (missing space) in commit:1773c8e2 commit ceddd95b35501a16a77f095d45b6bb6dd40bb20e Author: russ.treadon Date: Fri Nov 8 20:40:15 2019 +0000 Vlab Issue #65376 Replace crtm/2.2.6 with crtm/2.3.0 in modulefile.ProdGSI.wcoss_d commit 939642e11d69de8be8208e43f66acbe691f7a9d5 Author: jswhit2 Date: Fri Nov 8 17:21:54 2019 +0000 add ASuffix to function signature commit 8800a6b912c1450466b977fc5f0ff772211c6c1f Author: jswhit2 Date: Fri Nov 8 16:46:52 2019 +0000 fix typo commit d904587e982da40fe1cea48fec53e49dd2371649 Merge: 3effe22d 228cbcf8 Author: jswhit2 Date: Fri Nov 8 15:03:25 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 3effe22df952afe5a933d01a0b7b0b82a43a0eda Author: jswhit2 Date: Fri Nov 8 14:40:42 2019 +0000 back out previous commit commit 228cbcf8fea8e6edb50c79e08a333e57544fa4b5 Author: CoryMartin-NOAA Date: Fri Nov 8 14:00:34 2019 +0000 Fixed GSUFFIX if to be SUFFIX for enkf compatibility with ensmean commit 1cb294658acf10b7ff679e59b773e49c3ec8d494 Author: CoryMartin-NOAA Date: Fri Nov 8 13:49:16 2019 +0000 Removed support for NEMSIO anl when using netCDF ges; requires them to be the same format commit 316733319d602f546bdfc0d311af7956138e2542 Author: jswhit2 Date: Fri Nov 8 13:22:01 2019 +0000 GSUFFIX can be '.ensmean.nc' in gdaseobs step - fix suffix check to handle this commit 134af741edce270ee92164bd61dea319d360c653 Author: CoryMartin-NOAA Date: Thu Nov 7 18:41:23 2019 +0000 Fixed bug/mistake in exglobal_analysis_fv3gfs.sh.ecf commit 1084445732c8d07cf6643457484fb4648a252182 Author: CoryMartin-NOAA Date: Thu Nov 7 18:39:12 2019 +0000 Changed where PREFIX is defined to be in config.base commit 3f4dbb3a5bc333edd7f9c0baf33748ec6589dd40 Author: CoryMartin-NOAA Date: Thu Nov 7 15:29:59 2019 +0000 Changed scripts to look for to determine netCDF/NEMSIO commit a6d9f143a2c0d5740a6901dde20dac551ffe6643 Author: jswhit2 Date: Thu Nov 7 13:35:07 2019 +0000 EnKF assumes tv,ps_ind are in control vector. Make this explicit. commit ecf3cf68687c9be838945620e7efada1cfc8f6ec Author: CoryMartin-NOAA Date: Wed Nov 6 19:13:10 2019 +0000 Issue #69326 - fixed typo/bug in moving increment file for write_increment commit 059ab7c87a1e1c6b1b515f6e7d693e72382dddce Merge: cb5ff336 f7385db1 Author: jswhit2 Date: Wed Nov 6 02:58:52 2019 +0000 Merge branch 'feature/fv3_ncio_correrrenkf' into feature/fv3_ncio commit f7385db1271622fa6ed84f8a186db065359636bc Author: jswhit2 Date: Wed Nov 6 02:55:19 2019 +0000 remove duplicate definition of ges_geopi commit cb5ff336554c537db2fa07d412652e7ab5c45d02 Author: jswhit2 Date: Wed Nov 6 02:51:43 2019 +0000 remove duplicate definition of ges_geopi commit c3460a455957f293db37dcf24b02ed90ed25991d Merge: 83387048 13029952 Author: jswhit2 Date: Wed Nov 6 02:50:23 2019 +0000 Merge branch 'feature/fv3_ncio_correrrenkf' into feature/fv3_ncio commit 0d8922d2e1d5a92f33ac721e096a1e53fadaf313 Merge: 13029952 83387048 Author: jswhit2 Date: Wed Nov 6 02:11:13 2019 +0000 Merge branch 'feature/fv3_ncio' into feature/fv3_ncio_correrrenkf commit 786aef3687abe90ce71abff0626d2c6c6e440d69 Merge: 3d8305d2 c31e008d Author: russ.treadon Date: Tue Nov 5 20:30:12 2019 +0000 Vlab Issue #65376 Merge branch 'master' at commit:15a1d199 into DA_GFSv16 This commit brings in bug fix #70828, "problem near zero degree longitude for FV3 regional" commit 8338704858614dfec1972cb28e6ececae7b243d3 Merge: b194d16f 3d8305d2 Author: Cory.R.Martin@noaa.gov Date: Tue Nov 5 19:01:49 2019 +0000 Merge branch 'DA_GFSv16' into feature/fv3_ncio Conflicts: src/gsi/gsimod.F90 src/gsi/ncepnems_io.f90 commit b194d16fad84cdcdd7d54680a4d9f9023bea3e0d Merge: d4b7eea4 c31e008d Author: Cory.R.Martin@noaa.gov Date: Tue Nov 5 18:59:43 2019 +0000 Merge branch 'master' into feature/fv3_ncio Conflicts: fix scripts/exglobal_analysis_fv3gfs.sh.ecf scripts/exglobal_innovate_obs_fv3gfs.sh.ecf src/gsi/gridmod.F90 src/gsi/gsimod.F90 src/gsi/guess_grids.F90 src/gsi/ncepgfs_io.f90 src/gsi/ncepnems_io.f90 src/gsi/read_files.f90 src/gsi/read_guess.F90 commit 130299520776df2fff81268d5a90aaa1b53c48e8 Author: jswhit2 Date: Tue Nov 5 00:05:36 2019 +0000 fix for segfaults when IAU on commit d4b7eea4f33b28041e1941a0154a27d75220d48a Author: jswhit2 Date: Tue Nov 5 00:04:22 2019 +0000 fix for segfaults with IAU commit 351002d8f84354ce3c081a4c207898bb2b823066 Author: jswhit2 Date: Mon Nov 4 03:22:01 2019 +0000 merge updates from feature/fv3_ncio commit b1cb8cf9c372f2468cfec8f042e35c685c90d5cc Author: jswhit2 Date: Mon Nov 4 03:15:50 2019 +0000 set write_fv3_increment default commit 4431e6088c2da04d5fbf0dfd7b45cb19cbb3ae80 Author: jswhit2 Date: Mon Nov 4 03:15:11 2019 +0000 make sure increments are copied if DO_CALC_INCREMENT=NO and write_fv3_increment=.true. commit 5a31d2571de8c5591b9cc21bd0ccd682165abffd Author: jswhit2 Date: Mon Nov 4 03:14:47 2019 +0000 fix delz analysis output commit 3d8305d2e301986e9e4e5222c2eba7a6bd890058 Merge: c2c5755f c1d037e8 Author: russ.treadon Date: Fri Nov 1 17:07:05 2019 +0000 Vlab Issue #65376 Merge branch 'master' at commit:57d071f3 into DA_GFSv16 This commit brings in MinMon update #67898. commit c2c5755f83790ba20fb5bd5b210fe5d9651f7627 Merge: ba33ea86 1e39631d Author: russ.treadon Date: Fri Nov 1 16:36:08 2019 +0000 Vlab Issue #65376 Merge branch 'master' at commit:1a00eb0f into DA_GFSv16 This commit brings in delz bug fix #70452. commit a5e44fdaa446f87de85f1896dd23e16781bf3a7d Author: jswhit2 Date: Fri Nov 1 00:01:34 2019 +0000 add letkf_bruteforce_search namelist parameter commit d9243ab250d79029ac1e8d1e67b2f65d05f08b04 Author: jswhit2 Date: Thu Oct 31 18:29:54 2019 +0000 exit if USE_CORRELATED_OBSERR=YES and Rcov info missing in ANAVINFO commit 75fc72710d5acdd4487337ea676a2a52a71c373f Merge: cadfa1ed 06132b4f Author: jswhit2 Date: Wed Oct 30 20:12:07 2019 +0000 Merge branch 'feature/fv3_ncio' into feature/fv3_ncio_correrrenkf commit ba33ea86a61e58ed95f0d29041603176f182f694 Author: russ.treadon Date: Wed Oct 30 17:48:13 2019 +0000 Vlab Issue #65376 Update global_convinfo.txt and global_satinfo.txt * global_convinfo.txt - turn on hilbert curve for aircft uv, add KOMPSAT-5 GPSRO (assimilate) * global_satinfo.txt - set usage flag for AMSUA channel 14 and ATMS channel 15 to 4, assimilate Metop-C AMSUA and MHS commit b72e5b17e789ddde68060fcfb47ae078d7db1878 Author: russ.treadon Date: Wed Oct 30 17:36:38 2019 +0000 Vlab Issue #65376 Add global attritubes missing from netcdf ozone diagnostic files (see #66694) commit 06132b4f858ca515831bcac858725d3bbcad8e0e Merge: d0c6597d 70796097 Author: CoryMartin-NOAA Date: Wed Oct 30 17:03:20 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit d0c6597da3381ff9227e8f52cadd61e45aa7b3a3 Author: CoryMartin-NOAA Date: Wed Oct 30 17:03:15 2019 +0000 Issue #69326 - allow for NEMSIO analysis for full res and netCDF for ens res; only a temporary solution commit 8f3acd723dac14302641e9e9efa4b1f464f06dfa Merge: 0ac81944 80e18871 Author: russ.treadon Date: Wed Oct 30 15:48:04 2019 +0000 Vlab Issue #65376 Merge branch 'master' at commit:fc96d06e into DA_GFSv16 This commit brings in #70505 , #63751 , #66146 , and #57072 commit 0ac819444a39bcbb327c22fc24f7f2ac325798e0 Author: russ.treadon Date: Wed Oct 30 15:39:28 2019 +0000 Vlab Issue #65376 Merge update to master fix at commit:3d7c3fb3 into DA_GFSv16 fix. commit cadfa1ed10fd0c074c90a7a1e86db9cacf691b25 Author: jswhit2 Date: Wed Oct 30 15:36:43 2019 +0000 updates needed to use correlated obs error in EnKF (for LETKF w/model space vloc) commit 7079609796b77d46ba7fe01fec40d3a03a3e06ce Author: CoryMartin-NOAA Date: Tue Oct 29 20:20:51 2019 +0000 Issue #69073 - added sign flip for adding increment to delz for netCDF commit 17d3e26dcf2444a76e6ca2f98413fb666b48acd4 Merge: f94f6dae c22bf294 Author: CoryMartin-NOAA Date: Tue Oct 29 15:33:08 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit f94f6daeefa21e20bf4d78a84cf70d38ae939882 Author: CoryMartin-NOAA Date: Tue Oct 29 15:33:01 2019 +0000 Issue #68133 - support ability to zero out humidity increments above the tropopause commit c22bf294bcd91c3ff262bd8035832ebe01fef535 Author: jswhit2 Date: Mon Oct 28 20:19:55 2019 +0000 fix typo that caused compilation to fail commit 549ac8e001832c2512a53c755aa50d0ff315b6fa Author: jswhit2 Date: Mon Oct 28 18:32:32 2019 +0000 turn off correlated errors for EnKF commit 7a2b29d6d23ea11ee1a6bfb0fbf79762a38a0b00 Author: CoryMartin-NOAA Date: Mon Oct 28 13:54:49 2019 +0000 Issue #68591 - added check for variable in background for calc_analysis util commit cdef5a56100ca173a965580fa9cd3063e5c4cca3 Author: catherine.thomas Date: Mon Oct 28 07:47:21 2019 -0400 Vlab Issue #65376 Made the delz bugfix consistent between write_fv3atm and write_atm commit 8825ddadf7ac460ac3d8e4ba567582e0a98bbbb4 Author: jswhit2 Date: Fri Oct 25 14:39:07 2019 +0000 make netcdf_diag=.true. default (to be consistent with exglobal_analysis) commit 74514a681f7dfb8d4a9abce425b3eaa5a3eeaf2d Merge: 8e38493e 91139b12 Author: CoryMartin-NOAA Date: Thu Oct 24 22:10:34 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 8e38493e8449e584b27c4021200ca49b576eca35 Author: CoryMartin-NOAA Date: Thu Oct 24 22:09:43 2019 +0000 Issue #69326 - fixed APRUN issue for regridding increment; fixed missing assimfreq var commit 91139b1255e056edc250127ad8dfddbb2e6e7367 Merge: 68768c32 30767e9b Author: CoryMartin-NOAA Date: Thu Oct 24 20:34:12 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 68768c323aaf324b0a5b2b8be274382b9b68efe4 Author: CoryMartin-NOAA Date: Thu Oct 24 20:33:59 2019 +0000 Issue #68591 - fixed indexing issue that was preventing pressfc increment from working properly commit 30767e9b4c6e78dab9f1cd9fdeca832f3cf13708 Author: CoryMartin-NOAA Date: Thu Oct 24 19:53:08 2019 +0000 Issue #69326 - changed DO_CALC_ANALYSIS YES default to NO in exglobal_analysis script commit 43271dfd35badc52ebe1bdafa75fc05d2d7f8c02 Merge: 5cd9029f 4593779f Author: CoryMartin-NOAA Date: Thu Oct 24 19:04:11 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 5cd9029f114cbfbc13cd42bd0acdc254b5f3e345 Author: CoryMartin-NOAA Date: Thu Oct 24 19:04:04 2019 +0000 Issue #69326 - more small python syntax bug fixes; changed calc_analysis namelist commit 4593779f3c643c1fad91718e7c0ab400a8414a2b Author: CoryMartin-NOAA Date: Thu Oct 24 18:44:42 2019 +0000 Issue #68591 - added some extra metadata for NEMSIO output commit 82e02183044e4c94608051269e5a7485bf0d4315 Merge: a4a97256 fb7ad7e1 Author: CoryMartin-NOAA Date: Thu Oct 24 16:13:22 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit a4a97256a77cc1c1725ea8404ac68166a675a3e4 Author: CoryMartin-NOAA Date: Thu Oct 24 16:13:10 2019 +0000 Issue #68591 - make calc_analysis support netCDF guess and either netCDF or NEMSIO analysis commit fb7ad7e1e8860bd6ad241b194c1ab9e616a86dba Author: CoryMartin-NOAA Date: Wed Oct 23 18:41:45 2019 +0000 Issue #69326 - fixed yet another small python syntax issue commit ed5844630d658344bd4fabb01f7a18d43de59acc Author: CoryMartin-NOAA Date: Wed Oct 23 18:11:16 2019 +0000 #68591 - update modulefiles for wcoss for ip library commit 4148d7e63cf3f95dbfdbdecb5522f2c17e0e0124 Author: George Gayno Date: Wed Oct 23 15:50:40 2019 +0000 Issue #69326: Cleanup util/netcdf_io/interp_inc.fd/driver.f90 commit 9cecf27848b3e9d24af82fe56f5d94905079c2ac Author: CoryMartin-NOAA Date: Wed Oct 23 12:53:57 2019 +0000 Issue #69326 - fixed python if syntax issue, no then in python! commit 94e09670adf9237f2a6c14ba834c5f71c6a0cb4e Author: CoryMartin-NOAA Date: Tue Oct 22 20:42:06 2019 +0000 Issue #69326 - fixed overlooked colons in python script commit 8a8fcb48319caafe1692f5c28753c699154d764e Author: CoryMartin-NOAA Date: Tue Oct 22 20:17:35 2019 +0000 Issue #69326 - fixed function def bug in python script commit 661ba7aacc1d8a0c609f8baceef631fd6175b1e9 Author: CoryMartin-NOAA Date: Tue Oct 22 19:23:26 2019 +0000 Issue #69326 - fixed more bugs in exglobal_analysis script commit 2793175e28527d6db9f444c74f9057cac2b0ade9 Author: CoryMartin-NOAA Date: Tue Oct 22 17:40:00 2019 +0000 Issue #69326 - fixed bug in exglobal_analysis script commit 27cd5e0b235dbb8f6af2e5e1b2f872184b951ae2 Author: CoryMartin-NOAA Date: Tue Oct 22 17:38:48 2019 +0000 Issue #69326 - changed executable names in exglobal_analysis script commit 9eb7f963413778f47ac1825abf205a5f075bef27 Author: CoryMartin-NOAA Date: Tue Oct 22 17:01:20 2019 +0000 Issue #69326 - first attempt to automate increment regridding commit 401ddd2ea1a18c8031a9cc0054f5145a987ed67d Author: CoryMartin-NOAA Date: Tue Oct 22 16:53:29 2019 +0000 Issue #69740 - move first version of George's increment interpolation utility to GSI/utils/netcdf_io/interp_inc.fd commit af4007c86782419000856367d30eebe30b8662fc Merge: 09126f33 00f97104 Author: russ.treadon Date: Tue Oct 22 14:34:23 2019 +0000 Vlab Issue #65376 Merge branch 'master' at commit:3664477b into DA_GFSv16 This commit brings in correlated obs error bug fix #70063. commit 6cc58847785c2d1ff94387f1e20b3ff075e1a2bc Merge: e162e280 09126f33 Author: CoryMartin-NOAA Date: Tue Oct 22 13:13:12 2019 +0000 Merge branch 'DA_GFSv16' into feature/fv3_ncio commit e162e2804dc1a2c47ee3f361e7144cc94bb15816 Merge: 38064577 ebfd3e24 Author: jswhit2 Date: Mon Oct 21 18:08:41 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 38064577ba0e7f23a6a943d21c07417b55bf0179 Author: jswhit2 Date: Mon Oct 21 18:08:07 2019 +0000 add support for more data types (short, byte, char) commit ebfd3e2433c3892cec8a444a5eda8bc96939a019 Author: Cory.R.Martin@noaa.gov Date: Mon Oct 21 17:20:10 2019 +0000 Issue #68133 - fixed small bug with writing out first latitude to increment file commit d018cc5a752227c9bbf577c747a34821aa91be5f Author: Cory.R.Martin@noaa.gov Date: Mon Oct 21 15:43:28 2019 +0000 Issue #69326 - change the way write_nml function works commit 89c4b1ed499c87c5d45bce5f87cad5cc19064328 Author: CoryMartin-NOAA Date: Mon Oct 21 14:32:27 2019 +0000 Issue #68133 - added in deallocate_state calls to write_incr to hopefully fix memory issues commit 48c61b7d1057b75dc38d2790fb4158436b00b8a7 Author: jswhit2 Date: Sat Oct 19 13:24:52 2019 +0000 fix typo in comment commit 5414c7b45e21439cdec2642a0181f961afd43fb2 Author: Cory.R.Martin@noaa.gov Date: Fri Oct 18 19:53:36 2019 +0000 Issue #69326 - another bugfix for calc analysis variable; changed getgfsnctime and getncdimlen to use argparse; added quick script to plot netCDF increment using python3 and cartopy commit b49daa753f9057b772683c108b00433c606bb67b Author: jswhit2 Date: Fri Oct 18 18:28:51 2019 +0000 add scan angle to ncdiag output for compatibility with JEDI UFO commit 487f54f8a604597538011f5ed4abdf481c864f82 Author: jswhit2 Date: Fri Oct 18 17:09:49 2019 +0000 use has_attr to check for nbits, has_var to check if dpres/delz in guess file commit 0cb3af453e500f0e3e69a030935f0759906b208e Author: jswhit2 Date: Fri Oct 18 17:09:18 2019 +0000 use has_attr/has_var to check for existence of vars and attributes in netcdf files commit c2d45cc31a7c237c7b0df126eb84a4e8b3a1bcdd Author: jswhit2 Date: Fri Oct 18 17:08:55 2019 +0000 use has_attr to check for nbits attribute commit 8d99ba4374ec2ba852ac494c1d8628b22524ad58 Author: jswhit2 Date: Fri Oct 18 17:08:30 2019 +0000 add has_attr/has_var functions commit 70dfa3c56e0fba9a287a6093c890cf8f64576300 Author: CoryMartin-NOAA Date: Thu Oct 17 20:43:54 2019 +0000 Issue #69326 - bug fix for which executable to use for calc analysis commit 7e3b12fe562699aa53728857e46a1cf194950f56 Author: CoryMartin-NOAA Date: Thu Oct 17 19:51:33 2019 +0000 Issue #68133 - removed lupp or imp_physics checks from netCDF routines; these vars were moved as a result of GMAO merge and we shouldn't need to check for netCDF IO, they should both be true commit 22769f8ce870566f7372caac4bbc5f2ab853869a Author: CoryMartin-NOAA Date: Thu Oct 17 19:37:41 2019 +0000 Issue #68133 - fixed lupp compile bug as a result of merge from GMAO commit 260537220567a0498ccc62a78005b3b31d481e93 Author: CoryMartin-NOAA Date: Thu Oct 17 19:35:04 2019 +0000 Issue 9073 - fixed delp to dpres bug commit c8fcf946bd31fa26011f63a1950e3708de835c99 Author: CoryMartin-NOAA Date: Thu Oct 17 18:41:32 2019 +0000 Issue #69326 - quick python script to dump fv3gfs netcdf time info commit 86d6801d827e1c910feba6dc45b35b432cfa8294 Merge: 1b033ef9 1138d21d Author: CoryMartin-NOAA Date: Thu Oct 17 17:46:12 2019 +0000 Merge branch 'DA_GFSv16' into feature/fv3_ncio commit 09126f3357836450becf9d72c5441ed0e4c8f392 Merge: 1138d21d ebe0e8b2 Author: russ.treadon Date: Thu Oct 17 17:38:07 2019 +0000 Vlab Issue #65376 Merge branch 'master' at commit:b98899d8 into DA_GFSv16 This commit brings bug fix #69893 into DA_GFSv16 commit 1b033ef9437ecb5566b22666101e0bf0ac75a51a Author: CoryMartin-NOAA Date: Thu Oct 17 15:12:29 2019 +0000 Issue #68591 - fixed bug in calc_analysis.x that would keep sfc pressure from being updated commit 5ab166adec008b9d897761a0e76afd8a02524c81 Author: CoryMartin-NOAA Date: Thu Oct 17 15:03:58 2019 +0000 Issue #69326 - remove force of do_calc_increment to no when GFS_NCIO is yes commit 500a9b159752315cc8d794d208851f30f3d2672f Author: CoryMartin-NOAA Date: Thu Oct 17 14:12:43 2019 +0000 Issue #69326 - export variables to be used by python script commit 891b1e71f3bef9608f85db046b081fc6ce096e90 Author: CoryMartin-NOAA Date: Thu Oct 17 13:47:38 2019 +0000 Issue #69326 - switch to simple python utility to get LONB, LATB, etc. instead of ncdump + grep + awk commit a215b45e6562bde32711533c04c0cac77ce0f1ee Author: CoryMartin-NOAA Date: Thu Oct 17 13:00:31 2019 +0000 Issue #69326 - add python to modulefiles; first draft of scripts to calculate analysis/increment in python for exglobal analysis commit 1138d21dfd51d8a5116befe1d73e73890055bae7 Author: russ.treadon Date: Wed Oct 16 18:24:48 2019 +0000 Vlab Issue #65376 Commit changes to safeguard aircraft temperature bias correction commit 8d68f77fe0b0665e5790165a28780536d3507a3a Merge: 687afd50 fdbb0b52 Author: CoryMartin-NOAA Date: Sun Oct 13 19:59:10 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 687afd5067f1e8c28388c6077982459b362c7d57 Author: CoryMartin-NOAA Date: Sun Oct 13 19:59:03 2019 +0000 Issue #69325 - start of chgres for increment so that regridding only happens once and not twice; high topography errors in analysis look bad when chgres -> add increment -> chgres again commit fdbb0b525d5f1a465b0a2ce870b7634ecad22100 Merge: ef30c320 277fd4fc Author: jswhit Date: Sat Oct 12 03:37:08 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit ef30c32062ef43fec3d340c2046afc5ca732cfba Author: jswhit Date: Sat Oct 12 01:26:12 2019 +0000 'quantize' output if input was quantized (nbits att present) commit 277fd4fc805bdd9658b9ea40613e456241e0183b Author: CoryMartin-NOAA Date: Fri Oct 11 20:55:48 2019 +0000 Issues #69740 #69326 - fixed bug in ncio calc_increment regarding vertical level order; commit python script stub for calcanl commit 04714c7ecbca99411a5ac904c8627ef24e576a1c Merge: ffb915b1 a13c17d1 Author: russ.treadon Date: Fri Oct 11 19:23:39 2019 +0000 Vlab Issue #65376 Merge branch 'master' at commit:25a2b52c into DA_GFSv16 This commit brings Hera build capability into DA_GFSv16 commit 22ccd036667acc65d34989652312f543e82394ca Author: CoryMartin-NOAA Date: Fri Oct 11 18:33:30 2019 +0000 Issue #69325 - fixed delz bug in chgres_nc_gauss commit d6afe05be89ef1f7ee3955375ef2c16ac940b6af Merge: 3e8ffb59 7f0bcc53 Author: jswhit Date: Thu Oct 10 22:47:55 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 3e8ffb59f738ed2eec328b5fe516e8ddcc60b9e8 Author: jswhit Date: Thu Oct 10 22:47:18 2019 +0000 fix bugs when use_gfs_ncio=T and pst analysis variable enabled in anavinfo commit 7f0bcc5371dcc8ab0b2e3c046ab72de517feeaef Merge: 6a69ed94 0e7187d2 Author: CoryMartin-NOAA Date: Thu Oct 10 21:04:55 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 6a69ed94210a0fe13d5bd047a1d29aed86ec4208 Author: CoryMartin-NOAA Date: Thu Oct 10 21:04:51 2019 +0000 Issue #69326 - start to put increment/analysis generation in separate python scripts commit 0e7187d24c764a463125391e68d134bb4051aea1 Merge: 99aea7cb 48465ab9 Author: jswhit Date: Thu Oct 10 18:48:10 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 99aea7cbe348621b7920119c79b5fb25392cc2ea Author: jswhit Date: Thu Oct 10 18:47:33 2019 +0000 don't flip latitudes in write_gfsncatm commit 48465ab936136e594ad6c417e4745474fb76d212 Merge: fe1a915a 13f6ebec Author: CoryMartin-NOAA Date: Thu Oct 10 13:39:14 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit fe1a915a5a2b9991775703b1f8ff2ed7d1259892 Author: CoryMartin-NOAA Date: Thu Oct 10 13:39:08 2019 +0000 Issue #68591 - fixed a bug in recentersigp commit ffb915b1cadf72da11fd78372b00a53d713c366d Author: Haixia.Liu Date: Thu Oct 10 01:27:48 2019 +0000 Vlab Issue #65376 fix a bug in exglobal_analysis_fv3gfs.sh.ecf: replace the 2nd AHIBF with ABIBF commit 13f6ebec6ca6ea1ecd7297740d79ab21db44a816 Author: jswhit Date: Thu Oct 10 01:23:22 2019 +0000 fix bug in analysis date calculation commit 14b8ce5b4c3d588997aee019be87add689391231 Merge: fa7a9615 91cd3488 Author: jswhit Date: Wed Oct 9 22:49:04 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit fa7a9615e67eb7ad85910941684a2de78b4db247 Author: jswhit Date: Wed Oct 9 22:48:48 2019 +0000 fix error writing v analysis commit 56b8e440b39d478819453e57252d9eacacd142ea Author: jswhit Date: Wed Oct 9 22:48:21 2019 +0000 don't print netcdf error msg when reading attribute fails commit 3724d9e14baef901f133ec4c11fc57fd94a7c749 Author: jswhit Date: Wed Oct 9 22:48:03 2019 +0000 remove error message commit 70674b6c3edf0cea87adfb06327270b4e2f1dc8b Author: jswhit Date: Wed Oct 9 22:47:32 2019 +0000 fix some typos commit 91cd3488671e4497654fbd7d886f14cd5785ca79 Author: CoryMartin-NOAA Date: Wed Oct 9 20:07:24 2019 +0000 Issue #69740 - initial commit of utility to calculate increment for EnKF in netCDF format commit b90c10c9950fe34ac402508410869cdb173b5693 Author: CoryMartin-NOAA Date: Wed Oct 9 20:05:30 2019 +0000 Issue #69326 - more small script bugfixes commit 26030baf9ae6fb2e88d96e3e39650cc4e58bff9a Author: CoryMartin-NOAA Date: Wed Oct 9 13:17:44 2019 +0000 Issue #69326 - fixed some small script bugs commit 680ab376f5cd3065e59cd3d47b9c034551fde9cc Merge: b684a0a1 d9d2140c Author: CoryMartin-NOAA Date: Tue Oct 8 20:37:18 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit b684a0a18a6931ae6b74834f40be5a60c14f1398 Author: CoryMartin-NOAA Date: Tue Oct 8 20:37:09 2019 +0000 Issue #69326 - first commit of updated scripts to ProdGSI to support netCDF IO commit d9d2140c48e50f24be98b77ee531ae37b638b347 Merge: 459e796a 9fba69ad Author: jswhit Date: Tue Oct 8 19:49:32 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 459e796a7bcfd44b1a1ed5588289afa573bd32e9 Author: jswhit Date: Tue Oct 8 19:49:10 2019 +0000 fix writing time units string commit 9fba69ad78a57261f953c7d2b373bc17fba797ab Merge: f5c9e3ac e8f8fe64 Author: CoryMartin-NOAA Date: Tue Oct 8 19:05:32 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit f5c9e3acf4652a944beb6e473666c7ba5f4c032f Author: CoryMartin-NOAA Date: Tue Oct 8 19:05:23 2019 +0000 Issue #69073 - some more bugfixes, still guess time hour related, also a bug in calc_analysis dealing with grid_xt/yt dimensions commit 57f02ed5e83290c0a700c8a1aa0429360487a80d Author: russ.treadon Date: Tue Oct 8 13:09:28 2019 +0000 Vlab Issue #65376 Add missing period to default definitions of logical variables in scripts/exglobal_enkf_update_fv3gfs.sh.ecf commit e8f8fe649ad6fcf6bcecc20885f4c1f93b1043af Author: jswhit Date: Tue Oct 8 12:33:16 2019 +0000 a couple of utils for hybrid gain DA with netcdf io commit 7b48cd935dad3d84cc05bfdd5f79e50fa3392a66 Author: jswhit Date: Tue Oct 8 12:31:31 2019 +0000 update for netcdf io commit 3564ba9cbe0f54a198ea1f114f1471e1d666da1e Author: CoryMartin-NOAA Date: Mon Oct 7 21:07:16 2019 +0000 Issue #69073 - actually fix bug this time; had to do it for atm and sfc, not just sfc... commit 465d5e57e17daa469a3084e24f2dc683bbf3ead6 Author: CoryMartin-NOAA Date: Mon Oct 7 20:53:43 2019 +0000 Issue #69073 - fix bug on reading forecast hour from background, forcing it to be hourly commit 5ea337944638ae308c732ea5177c36b05532fd83 Merge: 12a73a51 b241a558 Author: CoryMartin-NOAA Date: Mon Oct 7 20:08:19 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 12a73a518e34c7cc374f322ab16926f697532f53 Author: CoryMartin-NOAA Date: Mon Oct 7 20:08:13 2019 +0000 Issue #69073 - fix calc_analysis bug commit b241a5584e2401b1ae9ff991a4eb81a237d2fdec Author: jswhit Date: Mon Oct 7 19:57:51 2019 +0000 don't try to write vars that are not in input file commit 5145ce46734b03a135edc9cc85a1d4fa875fd977 Author: jswhit Date: Mon Oct 7 16:12:56 2019 +0000 quantize_data for 4d arrays commit 55b1ca5b95fa5a7ec4918035fa1523d63438925d Author: catherine.thomas Date: Mon Oct 7 11:45:18 2019 -0400 Vlab Issue #65376 Flipped the sign of the delz increment in the nemsio write routine to be consistent with the negative delz from the model. commit db5e9f7230e8f7e0bfdb87051696cff1aa8dd586 Author: jswhit Date: Mon Oct 7 15:41:02 2019 +0000 remove latitude flip take 2 commit fa506a497aa9d01fc6bb38d4eed135a40c70261d Author: jswhit Date: Mon Oct 7 15:23:32 2019 +0000 remove latitude flips commit a6f79c170ce317d70aee6a3b8d22ded9f1b0b43a Author: CoryMartin-NOAA Date: Mon Oct 7 13:29:47 2019 +0000 add cmakelist change for getsigensstatp.fd commit 7917e7bc8f4774cc2cb339a9858eab7b12c78b94 Author: CoryMartin-NOAA Date: Mon Oct 7 13:17:53 2019 +0000 Issue #69073 - fix to possible latitude bug commit 6a2de14d56bd950edcebcceeef14dcb7238fd8f1 Author: jswhit Date: Sun Oct 6 03:39:01 2019 +0000 update commit f52e20cace18eb10d6d6d3af13f1a9012ce7213c Author: jswhit Date: Sun Oct 6 03:16:42 2019 +0000 bug fixes for write_atm commit 6e24f02158342e7d439afcc5addcecfaec26d3e3 Author: jswhit Date: Sat Oct 5 23:49:50 2019 +0000 not used commit 83eab89b38678f681b058b861ddd5accaff476b5 Author: jswhit Date: Sat Oct 5 23:49:44 2019 +0000 not used commit 4463f1e79c7358c52b437b4f3356f653821f611e Author: jswhit Date: Sat Oct 5 23:49:39 2019 +0000 not used commit 533847611dddaf27632f7f62c0c3b1161203a568 Author: jswhit Date: Sat Oct 5 23:49:31 2019 +0000 not used commit 824a71d3377208cead001744813b754748ac0a9e Author: jswhit Date: Sat Oct 5 23:49:13 2019 +0000 update commit fdc4760fe6df5420689130fa15b9e40a57fb95e7 Author: jswhit Date: Sat Oct 5 23:48:58 2019 +0000 update commit aa92fbff41f71604c239aa2feb5fd30e473fdd92 Author: jswhit Date: Sat Oct 5 12:37:33 2019 +0000 flip netcdf data vertically on read (still need to fix write) commit c69e95aa2b8d6ce3f8858004bb97307b5765cf51 Author: jswhit Date: Sat Oct 5 02:19:52 2019 +0000 fix some bugs in netcdf read code commit b16772296b24ef4c0d3732d041ef66d0228c5dcf Author: jswhit Date: Fri Oct 4 20:42:35 2019 +0000 fix typo commit 8a2abff182f6dd41fd013b8b05f99486b852835f Author: jswhit Date: Fri Oct 4 19:42:41 2019 +0000 use pfull instead of phalf to define nlevs commit c751ed4a98e3dffe61abf2422e347ad290b73662 Author: jswhit Date: Fri Oct 4 19:24:18 2019 +0000 fix array deallocation commit 091395e00fc5ddb7171bb30c2667b5b08b58939a Merge: 3a5b67ae 8c49dfa8 Author: russ.treadon Date: Fri Oct 4 18:26:12 2019 +0000 Vlab Issue #65376 Merge branch 'master' at commit:1364ea2c into DA_GFSv16 Additional updates include * src/gsi/read_atms.f90 - initialize crit0 to 0.01_r_kind * src/gsi/read_ozone.f90 - move C-pair algorithm check outside omi only block * src/gsi/read_saphir.f90 - initialize crit0 to 0.01_r_kind * src/gsi/read_ssmis.f90 - initialize crit0 to 0.01_r_kind Kristen Bathmann, Haixia Liu, and Yanqiu Zhu resolved conflicts in several merged files. commit 4921f3ee534e441d0d6c15df48d307f2227dc06b Merge: 8d45ad5b d6ffd4d0 Author: CoryMartin-NOAA Date: Fri Oct 4 15:37:08 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 8d45ad5be16af658934c282bee60d3c721099c74 Author: CoryMartin-NOAA Date: Fri Oct 4 15:37:05 2019 +0000 Issue #69073 - started work on getsigensstatp ncio commit d6ffd4d07af71a8a48dd60d9543a6fd254b725c4 Author: jswhit Date: Fri Oct 4 15:33:26 2019 +0000 fix definition of lats commit db628b09597c71915859f0fdf07ef5a8a4c425e2 Merge: 02e62aca f251dea9 Author: jswhit Date: Fri Oct 4 15:08:17 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 02e62aca87a01e671ad2c140ef1b0849922f8376 Author: jswhit Date: Fri Oct 4 15:07:38 2019 +0000 add write_atm to netcdfgfs_io, fix bug in latitude specification in write_sfc commit f251dea92874038fb7918966af208e8814a0bca3 Author: CoryMartin-NOAA Date: Fri Oct 4 13:19:54 2019 +0000 Issue #69073 - fixed deallocate bug in getsigensmeanp_smooth commit d194b7f794e6279abbf2acd80b2cd02a0ff3bdb7 Author: jswhit Date: Thu Oct 3 13:54:46 2019 +0000 add option to write spread file for ncio commit 5b030d45949062282f2709a9425e0cb8c68585ea Author: jswhit Date: Thu Oct 3 02:57:42 2019 +0000 update commit 3b0c02242abe043b04dab5cc7f53b90254ddae7c Author: jswhit Date: Thu Oct 3 02:04:47 2019 +0000 update getsfcensmeanp for netcdf io commit c2e130e226446c6c8e9f5adccf7702a0ef461160 Author: jswhit Date: Thu Oct 3 01:35:36 2019 +0000 update commit b3f0e36ddc9adfa84e4ed42f27c7197271b59abf Merge: f03d8107 f644785f Author: jswhit Date: Thu Oct 3 01:17:15 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit f03d8107c76bd06f341bd2cb089d85be0a1f68fe Author: jswhit Date: Thu Oct 3 01:16:26 2019 +0000 new file commit bfd45bdacdd2836304608c9510beea6a876fcc4a Author: jswhit Date: Thu Oct 3 00:55:56 2019 +0000 add quantize_data module subroutine commit f644785fc68fe5fe42a6388d1c756dadae94a824 Author: CoryMartin-NOAA Date: Wed Oct 2 19:27:20 2019 +0000 Issue #69326 - commit to exglobal_analysis_fv3gfs script to prepare for first test with global-workflow commit 0c12a512f1c0b61fe4618d4a32ba0003907bd756 Author: CoryMartin-NOAA Date: Wed Oct 2 18:03:04 2019 +0000 Issue #69073 - added cld_amt support to the netCDF chgres util commit 09ae93fb53868a2294cf9704c8ee7caf21daeced Merge: 6fed336d 1baddb8a Author: CoryMartin-NOAA Date: Wed Oct 2 15:46:24 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 6fed336d758b2d06315de75b435da494091214a2 Author: CoryMartin-NOAA Date: Wed Oct 2 15:45:39 2019 +0000 Issue #69073 - fixed some surface field request bugs; fixed cloud water level bug commit 1baddb8aaf0ceb4aa2cfa24d8bcfb5938d2e65aa Merge: 2cb634a2 ed83b047 Author: jswhit Date: Wed Oct 2 00:25:28 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 2cb634a28e0d18a172ec9e19187eba75250a49c3 Author: jswhit Date: Wed Oct 2 00:25:02 2019 +0000 update commit ed83b047c89c73da1fa736489e1b343b33c29d10 Author: CoryMartin-NOAA Date: Tue Oct 1 18:04:41 2019 +0000 Issue #69073 - fixed get_ndim issue with module_fv3gfs_ncio; went back to assuming degrees, not radians from input netCDF files commit 114f0ef12b13152c4980c7c02929467610fa4d5c Author: CoryMartin-NOAA Date: Tue Oct 1 15:56:33 2019 +0000 Issue #69073 - removed calc_analysis cmakelists to not compile it commit e072185eeb74c9b6cb1c157d7805ab2fb7a7445e Author: CoryMartin-NOAA Date: Tue Oct 1 15:51:56 2019 +0000 Issue #69073 - merged in hera-build and removed chgres_nc_gaussian CMakelist to not compile it commit 956583e45e86d733b00326a5aca44069b4f60f6b Merge: 31c239da b35340e4 Author: CoryMartin-NOAA Date: Tue Oct 1 15:43:41 2019 +0000 Merge branch 'hera-build' into feature/fv3_ncio commit 31c239dafaafe2387d9e93cebee4bb5d80b56d4f Merge: 6b3e0c57 ca18ae79 Author: CoryMartin-NOAA Date: Tue Oct 1 15:39:20 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 6b3e0c5760bc75e6a8d0429cd7dc563ebd8e427b Author: CoryMartin-NOAA Date: Tue Oct 1 15:39:15 2019 +0000 Issue #69073 - moved utilites to a util/netcdf_io directory commit ca18ae7909ea451c2a7e4ebb6f7acb37cbe3c46e Merge: 63fe7558 c9845c80 Author: jswhit Date: Tue Oct 1 15:14:14 2019 +0000 Merge branch 'feature/fv3_ncio' of gerrit:ProdGSI into feature/fv3_ncio commit 63fe7558b92143139a56b22bb7fdb830c0eea9b4 Author: jswhit Date: Tue Oct 1 15:12:44 2019 +0000 update commit c932b6a8c3acf75c1d09143cd9528feff0d87d14 Author: jswhit Date: Tue Oct 1 15:12:31 2019 +0000 update commit a869607d29b7d800e307b5490e11da4ee0772b1e Author: jswhit Date: Tue Oct 1 15:11:55 2019 +0000 add ncio capability commit 56ab29d87c1cfc63f4814a07fb8a60bf044413ce Author: jswhit Date: Tue Oct 1 15:10:53 2019 +0000 fix reading of lats/lons to be consistent with model update commit c9845c809d516f2744a10ae33657b79d7f1baf94 Merge: 9c7e60e0 c033889c Author: CoryMartin-NOAA Date: Tue Oct 1 13:23:26 2019 +0000 Issue #69073 - Merge branch 'feature/calc_anl_util' into feature/fv3_ncio commit c033889c6947ffb13ecd68fe145744c525761773 Author: CoryMartin-NOAA Date: Tue Oct 1 13:21:51 2019 +0000 Issue #68591 - commit a working version of chgres_recenter that uses netCDF IO instead of NEMSIO; util/Misc/chgres_nc_gaussian.fd/ commit 3a5b67ae5a310edf00676e68a1b619a12e78bc0f Merge: 213958a7 0439f860 Author: xu.li Date: Mon Sep 30 14:50:39 2019 -0400 Merge branch 'DA_GFSv16' of gerrit:ProdGSI into DA_GFSv16_nsst commit 0439f860eee6bae0a8af1e9ff7e9f9de120d999d Author: YanqiuZhu Date: Mon Sep 30 18:06:05 2019 +0000 VLab Issue #65376. DA_GFSv16: script changes for convective clouds commit 83176486314b0c54dac046cb55c6c7efa9568340 Author: Xiujuan Su Date: Mon Sep 30 16:37:15 2019 +0000 Vlab Issue #65376 add Hilbert curve to estimate aircraft wind observation density and down weighting observations commit 4a3295b3bc3f513e6cc86225034e43ae442bbe8d Author: YanqiuZhu Date: Mon Sep 30 16:23:12 2019 +0000 VLab Issue #65376. DA_GFSv16: add variable cnvw_option in enkf subdirectory commit 9c7e60e019314fcdae5dfa2323d31757bf4b7fb3 Author: jswhit Date: Mon Sep 30 16:06:19 2019 +0000 build with included fv3gfs_ncio source commit 213958a717d4bea4546df6c9579516283c4b238f Author: xu.li Date: Mon Sep 30 11:55:31 2019 -0400 VLab Issue #65376. VLab Issue #69243. VLab Issue #69247. DA_GFSv16_nsst: turn on two more avhrr and modify global_convinfo commit ce465599147a32749ca55c04ef443d324baea464 Merge: f0f09ddc b492167e Author: xu.li Date: Mon Sep 30 10:36:11 2019 -0400 Merge the updates from DA_GFSv16 Merge branch 'DA_GFSv16' of gerrit:ProdGSI into DA_GFSv16_nsst commit a3ab2e24bf069e0ac2aaeecff522b040336013c8 Author: jswhit Date: Mon Sep 30 12:23:20 2019 +0000 update commit b492167e043a57c091f08427b6edad27f56415e3 Author: russ.treadon Date: Mon Sep 30 01:09:46 2019 +0000 Vlab Issue #65376 Revert of 8b2bebb3 - "DA_GFSv16: add Hilbert curve application" This reverts commit 0b8a58570bfdd0927ce0b4a318b6fdf6001655f9. commit 1969de41c2c339424f8d065cc9c977feed06d44f Author: huishao-r Date: Sun Sep 29 03:11:57 2019 +0000 Issue #67568. add cosmic-2, paz and metopc commit 0b8a58570bfdd0927ce0b4a318b6fdf6001655f9 Author: Xiujuan Su Date: Sun Sep 29 01:37:34 2019 +0000 DA_GFSv16: add Hilbert curve application commit 8e5d3033b822ef7933e0d8c1b41653e3b002c725 Author: YanqiuZhu Date: Sat Sep 28 18:18:28 2019 +0000 VLab Issue #65376. DA_GFSv16: code changes for incorporating convective clouds in all-sky radiance assimilation commit 772cc67527c5db57dcc4987912954f39da7a1111 Author: jswhit Date: Fri Sep 27 22:37:56 2019 +0000 update commit a3c174b9505879d2f9b8a63ca4dc686ea2e40c4d Author: CoryMartin-NOAA Date: Fri Sep 27 20:30:56 2019 +0000 Issue #68591 - start of new version of chgres_recenter that uses netCDF IO instead of NEMSIO; util/Misc/chgres_nc_gaussian.fd/ commit 428ba5d4d4fe438c61d7c3b871e30e8823c4a767 Author: CoryMartin-NOAA Date: Fri Sep 27 15:37:05 2019 +0000 Issue #68591 - updated to read and write netCDF model files; needs to be tested but that requires additional tools like chgres to work with netcdf gaussian grid commit b35340e48cc8e719f236a023e00e79cf7179bbd8 Author: russ.treadon Date: Fri Sep 27 14:39:51 2019 +0000 Change Hera fileset check from /scratch4/NCEPDEV/da to /scratch1/NCEPDEV/da in regression/regression_var.sh commit be53ef391db355275070d74e752bb47f57b6f9c0 Author: russ.treadon Date: Fri Sep 27 13:07:47 2019 +0000 Remove modulefiles/modulefile.ProdGSI.wcoss_d.orig (not needed) commit 4575866ac334c874912f87fcbd19feb957b99aba Author: jswhit Date: Fri Sep 27 12:59:16 2019 +0000 update commit 46b9296cc7509198293be0a9c532e280cf8ebb17 Author: jswhit Date: Thu Sep 26 20:07:24 2019 +0000 update commit 086a5ec89b9a9bcf404bd76a215c42e7ed94326d Author: jswhit Date: Thu Sep 26 19:12:57 2019 +0000 update commit 0f908c8b1c6586755a7c443c7353ad76ba919fb5 Author: Haixia.Liu Date: Thu Sep 26 17:35:17 2019 +0000 VLab Issue #65376: add ahi and abi into the analysis scripts commit f0f09ddc980946fcb7ccb7936e839bc418e91bff Author: xu.li Date: Thu Sep 26 12:45:10 2019 -0400 Modify sst observation error and therefore threshold of background QC test for conventional sst data commit 93f3556ddbd92ea0d42ab651043cf200dfdc87e3 Author: russ.treadon Date: Thu Sep 26 16:35:42 2019 +0000 Updates to run regression tests on Hera commit b8f02b931f1270709792e4f60957f6bddc96298b Author: jswhit Date: Thu Sep 26 14:46:49 2019 +0000 update commit a2dbeba79751865e43a33ce3703510922a150f49 Author: jswhit Date: Thu Sep 26 13:30:44 2019 +0000 update commit fdaeb06b04e24c5d81af7e7135469b81247742a3 Author: jswhit Date: Thu Sep 26 13:10:29 2019 +0000 initial work on netcdf gfs support commit 50867beb0922275278e85ef6a41cb5345d3b62d9 Author: russ.treadon Date: Wed Sep 25 20:35:16 2019 +0000 VLab Issue #65376 Set sst 198 usage flag to 1 (assimilate) in historical global_convinfo.txt* commit 929cf796bcf36921961add3e4876bfc9a0930468 Author: russ.treadon Date: Wed Sep 25 19:40:53 2019 +0000 VLab Issue #65376 Update uv 210 usage flag in global_convinfo.txt* to match master commit db011d4e4a694b8788b48ccff067024d0063f1b0 Author: CoryMartin-NOAA Date: Wed Sep 25 18:50:04 2019 +0000 Issue #69073 - compiles on Hera; 3DVar case runs successfully and increments pass the 'eye test'; need to think of a way to do a quantitative comparison commit c92a4217151b8116057f91d65e5d3d7714b3f3c5 Merge: d86d04ad 9c4d23e5 Author: Mark A Potts Date: Wed Sep 25 14:58:14 2019 +0000 Merge branch 'hera-build' of gerrit:ProdGSI into hera-build commit d86d04ad52879d4162d47b2fcfad7996b7753295 Author: Mark A Potts Date: Wed Sep 25 14:54:58 2019 +0000 updates to modulefile for hera Change-Id: Idcf39a0a56362d4d078edc9055cee620baabea19 commit 7c2aa36d0a28f8f5520a76377ad7079517af46d6 Author: CoryMartin-NOAA Date: Tue Sep 24 20:51:14 2019 +0000 Issue #69073 - everything except general_read_gfsatm.f90 should be updated in the gsi/ src directory; have yet to touch enkf dir commit 9c4d23e529e8bb7256283ceae69e3fec91e9f977 Author: Mark Potts Date: Tue Sep 24 14:47:19 2019 +0000 Updates for s4 Change-Id: I24ea30bb2f28a9ef182abc1fe370c78688ca2eb1 commit 79fdbc3a06b3249fd4e7f11191334078acc908a1 Author: Xiujuan Su Date: Tue Sep 24 13:59:10 2019 +0000 VLab Issue #65376 #63931 add new vqc table fix file commit 85d0090cf3bb002818d5f36938eec73782eeaf87 Author: Mark A Potts Date: Tue Sep 24 13:54:51 2019 +0000 updated modulefiles for hera Change-Id: If466b896e1c938568a164bc6bb7772acec1a9fee commit 43fe2ae0d834ab22b8426937f524f7567f388949 Merge: c3129216 ab4c25db Author: CoryMartin-NOAA Date: Tue Sep 24 13:01:42 2019 +0000 Merge branch 'feature/write_inc' into feature/fv3_ncio commit c3129216384a76d2316695fe20e672fb685e9efb Author: CoryMartin-NOAA Date: Tue Sep 24 13:00:12 2019 +0000 Issue #69073 - commit before merging in changes to write netcdf increment commit 6cce3620c0488ba8563a088873670b88bca91b78 Author: Xiujuan Su Date: Mon Sep 23 21:57:50 2019 +0000 VLab Issue #65376 #63931 DA_GFSv16:adding new vqc parameters into convinfo files commit 299d56843014ca7ac8cb8dc46a31d14e40b286f2 Author: CoryMartin-NOAA Date: Mon Sep 23 20:58:01 2019 +0000 Issue #69073 - save for end of day work; not working yet, nor compiling because of library issue with fv3gfs_ncio commit 39ee62b710565390a2036b0ba8ce78b12a75a3e8 Author: Iliana Genkova Date: Mon Sep 23 20:44:19 2019 +0000 VLab Issue #65376. DA_GFSv16: Winds: turn NOAA-20 VIIRS on commit 72b7ea18549f70b0af2cea0789fbbbf639316b17 Author: Iliana Genkova Date: Mon Sep 23 20:40:10 2019 +0000 VLab Issue #65376. DA_GFSv16: Winds: skip VIS GOES, turn off Goes-15, turn on Goes-17, monitor N-20 VIIRS commit 810f358036cd8930c758a1d22c948feb8051fb9b Author: Haixia.Liu Date: Mon Sep 23 20:25:47 2019 +0000 VLab Issue #65376. DA_GFSv16: in fix submodule, changes for GEOS CSR data: SEVIRI, AHI and ABI commit cba05c6aa31332ae9e0cf516c813443e32873805 Merge: 86d7661d 997a3331 Author: Haixia.Liu Date: Mon Sep 23 20:16:37 2019 +0000 Vlab issue #65376 Merge branch 'DA_GFSv16_geoir' into DA_GFSv16 commit 86d7661d3d0115335d7955100e9b1e0343316a91 Merge: ee5bb656 b296b5a1 Author: Xiujuan Su Date: Mon Sep 23 18:52:33 2019 +0000 Merge branch 'DA_GFSv16' of gerrit:ProdGSI into DA_GFSv16 commit 37af2fa3a71cf7ba6bf9435861ca873d6d2f3384 Author: Mark A Potts Date: Mon Sep 23 17:52:12 2019 +0000 updated files to reflect Hera rather than Theia Change-Id: I4f497eba03d51913b101a220cef89514227de2df commit a03a7ca32ccdfe3f6aeccdfa4a30114a35ce2a01 Author: CoryMartin-NOAA Date: Mon Sep 23 17:32:34 2019 +0000 Issue #69073 - first commit, start to add capability for fv3gfs_ncio; want to test compile so far commit ee5bb656552cfed0cf9a75a4eaac8db7562e1629 Author: Xiujuan Su Date: Mon Sep 23 17:11:29 2019 +0000 DA_GFSv16 branch: this commit refs #63931, thsi commit is part of VQC package, convinfo.f90 is modified can read original convinfo file format and new format with two addtional coloums for VQC parameters commit b296b5a191954ba96f20973542ecd3477a6207f7 Merge: f5ba3c39 f1b2bcc9 Author: Iliana Genkova Date: Mon Sep 23 16:43:50 2019 +0000 VLab Issue #65376 #69010 commit 477c5cad9b4ade4ffdba920eefdc85ccd80a0253 Author: Mark Potts Date: Mon Sep 23 16:48:32 2019 +0000 added modulefile for s4 Change-Id: Ied380d7f1c7578082e6fc535479dab5dcbec919c commit 997a3331ed53d686efa4cd9ad0cdbb731e56f1c2 Merge: 46a96055 f5ba3c39 Author: Haixia.Liu Date: Mon Sep 23 13:46:41 2019 +0000 Merge branch 'DA_GFSv16' into DA_GFSv16_geoir commit 7574e65503533a1d9a9371824a86ea78c3b4cf53 Merge: 36267098 45e8575d Author: CoryMartin-NOAA Date: Mon Sep 23 13:09:08 2019 +0000 Merge branch 'feature/calc_anl_util' of gerrit:ProdGSI into feature/calc_anl_util commit 36267098e586ebfb9823d683a1ffd6daa287b237 Author: CoryMartin-NOAA Date: Mon Sep 23 13:05:18 2019 +0000 changes to script commit 46a960558fcdb590395a1478026e7733e551b659 Author: Haixia.Liu Date: Sat Sep 21 16:28:36 2019 +0000 add ahi data into regression test. fix bugs commit f5ba3c39066691193cd1959b2e248868ae282657 Author: Xiujuan Su Date: Fri Sep 20 19:47:09 2019 +0000 DA_GFSv16 branch: this commit refs ## 65376 Adding new variational package to DA_GFSv16 commit 45e8575d32ed90fe7482b51afe088d7587e1539a Author: CoryMartin-NOAA Date: Fri Sep 20 19:33:41 2019 +0000 Issue #68591 - Removed useless line pasted by accident commit 496d2851535f446074631893fa9015cbee3a5be1 Author: CoryMartin-NOAA Date: Fri Sep 20 18:35:35 2019 +0000 Issue #68591 - fixed NLEVS to be NLEVS+1 for chgres recenter commit f1b2bcc9b569eb626ddc583689bd57324f166fc5 Author: Iliana Genkova Date: Fri Sep 20 17:33:26 2019 +0000 This commit refs #69010. Add code to read new BUFR sequence for VIIRS AMVs,expected to be in use late 2019 commit dd8a411bd234d167c8ed4d74ba8b38634fabbf0b Author: CoryMartin-NOAA Date: Fri Sep 20 15:53:25 2019 +0000 Issue #68591 - fixed bug with LONB in chgres part of exglobal analysis commit cc9f8cfd803d0c77bf619c5c4ff71fb6b122338b Author: CoryMartin-NOAA Date: Fri Sep 20 15:11:46 2019 +0000 Issue #68591 - fixed bug with missing end of if statement commit 44d622722d173a1b930e2c30c03d73a5a7a34ddd Author: CoryMartin-NOAA Date: Fri Sep 20 14:38:56 2019 +0000 Issue #68591 - made exglobal analysis script default to not use calc increment utility but to have GSI write increment commit abb19fde4e386f777ea458065ea98ab4f4349a6e Author: CoryMartin-NOAA Date: Fri Sep 20 13:54:28 2019 +0000 Issue #68591 - commit changes to exglobal analysis script to run chgres -> add increment -> chgres to generate analysis; need to test commit f5f6d457426c5d120d465e83031e69dbe9524844 Author: Kristen.Bathmann Date: Fri Sep 20 12:24:49 2019 +0000 reverted nsig_ext and gpstop to the L64 values commit e1168639e6efb76d8f5bdf2caeb52711ae645c33 Author: Kristen.Bathmann Date: Fri Sep 20 10:55:11 2019 +0000 updates to setupbend, nsig_ext, and gpstop commit 8d289872a1561c1b7a2490a5af449a4aff78d6e1 Author: Haixia Liu Date: Fri Sep 20 03:39:29 2019 +0000 add more CSR data into regression tests commit a35753be040c9a1ab07d206ccca9ed0dcb04915e Author: Haixia Liu Date: Thu Sep 19 19:22:24 2019 +0000 modifications made to generalize the codes for geostationary CSR data quality control commit b2c4dea5c241a9c42413c4a3b96e4c38f05ff268 Author: Haixia Liu Date: Thu Sep 19 18:37:25 2019 +0000 modifications made to improve the read_seviri.f90 and fix a bug commit dc11560744d146168bcd06406844959b8268fa97 Author: Haixia Liu Date: Thu Sep 19 18:26:32 2019 +0000 modifications made for correctly reading in the AHI_Himawari data commit e1339317d5c5e47c736b609831883d81f5795bf4 Author: CoryMartin-NOAA Date: Thu Sep 19 17:14:41 2019 +0000 Issue #68591 - change exglobal analysis script to calculate analysis and handle GSI generated increment commit ab4c25db099b84a3f25f5dbc51e11f7e0046cc9f Author: CoryMartin-NOAA Date: Thu Sep 19 16:00:19 2019 +0000 Issue #68133 - force svalinc index to be 1 unless 4densvar is used commit 583b443720230868e16ec9a4debc1f61598a01ea Author: CoryMartin-NOAA Date: Thu Sep 19 14:56:35 2019 +0000 Issue #68133 - working version for 3DVar, need to confirm indexing of svalinc with nobs_bins before finalizing commit ed07057520cbe806ee343b30901d9c95a79ece0b Author: CoryMartin-NOAA Date: Wed Sep 18 19:29:25 2019 +0000 Issue #68133 - changed the way q-increment is computed to be line tsen because of small differences in output commit 59905a1cbf2ccb93a28bfe89241764bd31bf7fe5 Author: CoryMartin-NOAA Date: Wed Sep 18 18:59:11 2019 +0000 Issue #68591 - surface pressure working, everything looks good compared to original siganl commit fca999256cc2b956a9f6ba2d235e165f64ebf75a Author: CoryMartin-NOAA Date: Wed Sep 18 15:39:05 2019 +0000 Issue #68591 - commit to switch branch again commit a593713d84926c768a74394b40d285baab2d202d Author: CoryMartin-NOAA Date: Wed Sep 18 13:02:07 2019 +0000 Issue #68133 - added some print statements to verify that 4D analysis/increment writing index is correct commit 9aea5cffc0117dc4c7c36964df99194b6428bd2d Author: CoryMartin-NOAA Date: Wed Sep 18 12:31:17 2019 +0000 Issue #68591 - commit to switch branch commit 1025362af55f4ae93e7a13bc03f3cef802da0bc2 Author: CoryMartin-NOAA Date: Tue Sep 17 13:41:28 2019 +0000 Issue #68591 - code seems to work for fields with increment, need to work on special cases such as surface pressure commit 071d602c41b6a55bc1f465af77c1c3af1fb4e6d0 Author: CoryMartin-NOAA Date: Mon Sep 16 21:04:41 2019 +0000 Issue #68591 - code reads/writes out fields with no increment, need to get a test set of files to test increment IO commit 895f84a1ddc4991dc065625392a4746d2c09dc1d Author: CoryMartin-NOAA Date: Mon Sep 16 15:43:24 2019 +0000 Issue #68591 - commit to save and switch branches commit 5a4bf301ef6d340e8fc23d7cda16d031c77ef64c Author: Mark A Potts Date: Mon Sep 16 15:23:16 2019 +0000 fixes for intel 18 compilers commit 20687ac595a8c67117701c03ad8eff44bf076101 Author: catherine.thomas Date: Mon Sep 16 10:52:45 2019 -0400 VLab Issue #65376: Allowed SETUP_INVOBS to be passed into JGLOBAL_ENKF_SELECT_OBS from a config file. commit cabe7b4de41cf347ffcd81084100e98bd5e130aa Author: CoryMartin-NOAA Date: Fri Sep 13 20:38:58 2019 +0000 Issue #68591 - initial commit of some code commit 72381a0376f6f84b2c9153717353a3d306e79d6e Author: CoryMartin-NOAA Date: Fri Sep 13 14:54:41 2019 +0000 Issue #68133 - Fixed bug of missing use statement; compiles on Hera now commit 5ad31b771ea3e0fb3bcedb084c84dcffa59f4475 Author: CoryMartin-NOAA Date: Fri Sep 13 14:50:48 2019 +0000 Issue #68133 - Fixed typo for compiling commit c707db738791d19b5833415c89484e4e77404fdc Author: CoryMartin-NOAA Date: Fri Sep 13 14:48:57 2019 +0000 Issue #68133 - added in namelist option similar to calc_increment to zero out increments by field name commit 8a3b644c21650b886076e3cbf4bddcb6735e1487 Author: russ.treadon Date: Wed Sep 11 14:56:11 2019 +0000 VLab Issue #65376 Limit untar of ensemble member diagnostic files in exglobal_enkf_update_fv3gfs.sh.ecf to the case lobsdiag_forenkf=".false." commit 66aa08405fc1873a5ffe1f75673c44b010fb5b4d Author: CoryMartin-NOAA Date: Tue Sep 10 20:56:13 2019 +0000 Issue #68133 - attempt to fix small issues in tsen increment as well as potential delz issue commit db1056efd613ed8eef64dd98ab0d4767a1d3b2fd Author: Mark A Potts Date: Tue Sep 10 19:02:13 2019 +0000 Changed use statements to mpimod Change-Id: Ib997c87cec8753c98b2f4d8e7db31ac5db2d24c5 commit b85c87513d15cf68285efba0aefd50653fd60d56 Author: CoryMartin-NOAA Date: Mon Sep 9 14:38:24 2019 +0000 Issue #68133 - added in logic for 4dvar, ens, etc. in write_incr to match pcgsoi; not tested yet commit 740a6af34fc8f0f347cf9b6d4c81a6e90d20b044 Author: CoryMartin-NOAA Date: Mon Sep 9 14:04:22 2019 +0000 Issue #68133 - confirmed that difference of outputted increment for simple case is equal computed commit 1c1112cf52a0a3c233bd64b87d2ba4ec6164df75 Author: CoryMartin-NOAA Date: Fri Sep 6 21:02:22 2019 +0000 Issue #68133 - added in allocate/deallocate function calls for state/predictors in write_incr commit 425c18d3a5ac71161c0c033b4366de9c5957b038 Author: CoryMartin-NOAA Date: Fri Sep 6 20:32:19 2019 +0000 Issue #68133 - removed sval from upstream subroutine calls, try to use xhatsave to get a new sval commit d095b38d93b32778225616ef6f96df14c9e560e5 Author: CoryMartin-NOAA Date: Thu Sep 5 16:59:35 2019 +0000 Issue #68133 - Added in -1 multiply for delz, not sure which sign is correct, will confirm with tests/comparisons to calc_inc commit d3132ea239be89ae6f11d9be419a48c29195a47a Author: CoryMartin-NOAA Date: Thu Sep 5 15:52:02 2019 +0000 Issue #68133 - should be writing out increment for all fields for FV3, need to compare to calc_increment output commit a12c0b810e484c1dd95fad2d3ffda2e7d5eee6fd Author: CoryMartin-NOAA Date: Thu Sep 5 13:54:39 2019 +0000 Issue #68133 increments written out for T,u,v,q,ql,qi,oz, still need delp/delz and misc fields commit 51b8c42c89d0693a685d97dd4ee298a41ce69a7c Author: CoryMartin-NOAA Date: Wed Sep 4 21:00:39 2019 +0000 Have working output of T/q increment commit f0ae525f7b4f495d89820a82710e408440f3c4ac Author: CoryMartin-NOAA Date: Wed Sep 4 15:56:47 2019 +0000 Save on Venus, will attempt on Hera commit b6419fea178c77007a56c82ea8c56af5faa0d987 Author: CoryMartin-NOAA Date: Tue Sep 3 19:53:58 2019 +0000 Added o3mr only as test for initial compile commit bb659e754345b5b696f22eb63ea90a4d9fa6bf51 Author: CoryMartin-NOAA Date: Tue Sep 3 16:53:43 2019 +0000 changed name of write_fv3_incr.f90 to write_incr.f90 for possible other future uses commit 416d5fb1c2dc44ede60a6ea5cd9740b0bc308579 Author: CoryMartin-NOAA Date: Tue Sep 3 16:02:13 2019 +0000 Added namelist option for writing FV3 netCDF increment commit 46b3e435a821aec0129493bdd0f11b8b7e1a714b Author: Mark A Potts Date: Thu Aug 29 16:26:03 2019 +0000 Updated to build on hera Change-Id: Ie4590477b3dadd1736caed524f157ab53922804c commit 14660067b0f2c9745b5f2bc14bac26db66b563db Author: Edward.Safford Date: Wed Aug 28 17:27:42 2019 +0000 Corrected a problem updating the gnorm_data.txt file when the extracted minmon data is stored in a single subdirectory for each day (i.e. gfs|gdas.${pdy}/ . Changes to MinMon/gfs|gdas extraction scripts were tested and confirmed to now support this storage method, as well as the method used in operations (gdas|gfs.$pdy/$cyc/minmon). In both cases the gnorm_data.txt file is correctly updated. Change-Id: Ia428ea75276781c0001530481d38f2a1e933c591 commit 3dd8e97e204fc8d59b2c1880732f39d57fcc5209 Merge: 3d5dbede 4e8bb5e4 Author: YanqiuZhu Date: Fri Aug 23 14:39:02 2019 +0000 Merge branch 'DA_GFSv16' of gerrit:ProdGSI into DA_GFSv16 commit 4e8bb5e443f786c6f005d4542eaa2432acea34fc Merge: 695894b3 b5a82029 Author: Kristen.Bathmann Date: Fri Aug 23 12:33:01 2019 +0000 VLab Issue #65376 Merge remote-tracking branch 'origin/kbathmann_gpsrofix' into DA_GFSv16 commit 3d5dbede9e27b0b9d3c0b07249c298bb967006cb Author: YanqiuZhu Date: Thu Aug 22 22:17:12 2019 +0000 DA_GFSv16: a bug fix in qc_amsua. commit 6c0de24bb65850ef96f1e6fcd258e76efb2ae076 Author: YanqiuZhu Date: Thu Aug 22 22:08:41 2019 +0000 DA_GFSv16: add flexibility to assimilate certain radiance channels without bias correction. commit 695894b3521ba9c49af009379a8f6b05678ba141 Author: russ.treadon Date: Thu Aug 8 16:23:20 2019 +0000 VLab Issue #65376 Merge master at 21e3d45d into DA_GFSv16. This commit brings in rev2 fix at 39f80665. commit b5a8202981414ddb994029bcd255bd6f3971c22c Author: Kristen.Bathmann Date: Thu Aug 8 13:23:28 2019 +0000 bug fix commit 6cd4bc06cf6452f1dbed0aafb17569560a390116 Merge: a457264f ed27850c Author: russ.treadon Date: Wed Aug 7 12:57:35 2019 +0000 VLab Issue #65376 Merge master at 45078ab5 into DA_GFSv16 commit 266202fc4b82dc97071203d48ba0a4a14dfa49ab Author: Kristen.Bathmann Date: Mon Aug 5 11:32:24 2019 +0000 bug fix commit 924115753e19a6b6d3240a0f4d406caa36c96815 Author: Kristen.Bathmann Date: Thu Aug 1 16:08:16 2019 +0000 changed w4 to w8 commit 9b94ace6c119edab76f793988fc715314c90cfb4 Author: Kristen.Bathmann Date: Wed Jul 31 18:25:24 2019 +0000 doubled the number of lagrangian interpolation points commit a457264f3123c8eba6f0582981d64d7d3b26ea9b Author: russ.treadon Date: Fri Jul 26 16:37:44 2019 +0000 VLab Issue #65376 Address issues in computation of delz increment for UPP. Remove unnecessary code from ncepnems_io.f90 commit 2b41638410da6e53e5d55538e0e4d987de652f13 Author: russ.treadon Date: Fri Jul 26 13:15:12 2019 +0000 VLab Issue #65376 Update WCOSS_D build to use bufr/11.3.0 commit b529e4f2ea21c4e52780008fb3091d0efd8d13b4 Merge: b3d3da81 83933514 Author: russ.treadon Date: Tue Jul 16 13:14:50 2019 +0000 VLab Issue #65376 Merge branch 5c44506b 'master' into DA_GFSv16 commit b3d3da812f261d783cfa164dba9871d5cd0527a3 Author: russ.treadon Date: Thu Jul 4 02:17:55 2019 +0000 VLab Issue #65376 : several IAU related changes to exglobal_analysis_fv3gfs.sh.ecf * add IAUFHRS (default 6) * add nhr_anal to SETUP namelist; set nhr_anal to IAUFHRS * generalize calc_increment processing to be consistent with IAUFHRS commit 04f40f3ea639fc49b1ef48b5d7d729cf69cabd5d Author: russ.treadon Date: Tue Jul 2 17:01:05 2019 +0000 VLab Issue #65376 : define LEVS_ENKF in scripts/exglobal_analysis_fv3gfs.sh.ecf commit 1453274048fde8ebd59e3bb64daee82ae9cda0c3 Merge: 4fdcc9bd 352f85fc Author: Catherine Thomas Date: Thu Jun 27 16:20:17 2019 +0000 VLab Issue #65376: Merge branch 'kbathmann_gpsrofix' @ bf2fb362 into DA_GFSv16. commit 352f85fc11e78ffe397be5c53e0dddcdeb0cc8f8 Author: Kristen.Bathmann Date: Thu Jun 27 15:40:52 2019 +0000 Fixes to obsmod commit 4fdcc9bd4f6135457a153a5c893ddb806cc0d7aa Author: Catherine Thomas Date: Thu Jun 27 14:28:45 2019 +0000 Vlab Issue #65376: GPSRO fixes for L127. Merged kbathmann_gpsrofix @ 2955dd35 into DA_GFSv16. modified: src/gsi/constants.f90 modified: src/gsi/obsmod.F90 modified: src/gsi/setupbend.f90 commit b2c8fbb848635a293905bc35681f8076c685aa54 Author: Kristen.Bathmann Date: Fri Jun 21 18:41:21 2019 +0000 some fixes commit ae27f26d398410da8454a554069cd70a3a773ff5 Author: Kristen.Bathmann Date: Fri Jun 21 12:19:38 2019 +0000 fixed compile errors commit 3f77e4cdb41120d6ce9fc6b2dbfdb4075c95b6ac Author: Kristen.Bathmann Date: Thu Jun 20 19:29:28 2019 +0000 made the fixes --- .../Testing/Temporary/CTestCostData.txt | 1 + cmake/Modules/Testing/Temporary/LastTest.log | 3 + cmake/Modules/comp_src.pl | 15 + doc/Release_Notes.gfsda.v16.0.0.txt | 378 ++++ fix | 2 +- ...BAL_ANALDIAG => JGDAS_ATMOS_ANALYSIS_DIAG} | 24 +- jobs/JGDAS_ATMOS_CHGRES_FORENKF | 137 ++ ...{JGLOBAL_ENKF_ANALDIAG => JGDAS_ENKF_DIAG} | 32 +- jobs/{JGDAS_ENKF_RECENTER => JGDAS_ENKF_ECEN} | 22 +- jobs/JGDAS_ENKF_FCST | 12 +- jobs/JGDAS_ENKF_POST | 14 +- ..._ENKF_SELECT_OBS => JGDAS_ENKF_SELECT_OBS} | 22 +- jobs/{JGDAS_ENKF_SURFACE => JGDAS_ENKF_SFC} | 22 +- ...{JGLOBAL_ENKF_UPDATE => JGDAS_ENKF_UPDATE} | 14 +- ...GLOBAL_ANALYSIS => JGLOBAL_ATMOS_ANALYSIS} | 24 +- ...L_ANALCALC => JGLOBAL_ATMOS_ANALYSIS_CALC} | 24 +- jobs/JGLOBAL_ENKF_INNOVATE_OBS | 171 -- modulefiles/modulefile.ProdGSI.cheyenne | 2 +- modulefiles/modulefile.ProdGSI.discover | 6 +- modulefiles/modulefile.ProdGSI.gaea | 10 +- modulefiles/modulefile.ProdGSI.hera | 20 +- modulefiles/modulefile.ProdGSI.jet | 8 +- modulefiles/modulefile.ProdGSI.orion | 26 +- modulefiles/modulefile.ProdGSI.s4 | 5 +- modulefiles/modulefile.ProdGSI.wcoss | 10 +- modulefiles/modulefile.ProdGSI.wcoss_c | 40 +- modulefiles/modulefile.ProdGSI.wcoss_d | 47 +- scripts/exgdas_atmos_chgres_forenkf.sh | 217 +++ ...nter_fv3gfs.sh.ecf => exgdas_enkf_ecen.sh} | 64 +- ...fcst_fv3gfs.sh.ecf => exgdas_enkf_fcst.sh} | 29 +- ...post_fv3gfs.sh.ecf => exgdas_enkf_post.sh} | 30 +- ...v3gfs.sh.ecf => exgdas_enkf_select_obs.sh} | 10 +- ...rface_fv3gfs.sh.ecf => exgdas_enkf_sfc.sh} | 16 +- ...te_fv3gfs.sh.ecf => exgdas_enkf_update.sh} | 52 +- scripts/exglobal_analysis.sh.ecf | 1700 ----------------- ...3gfs.sh.ecf => exglobal_atmos_analysis.sh} | 128 +- ...sh.ecf => exglobal_atmos_analysis_calc.sh} | 34 +- ...naldiag_fv3gfs.sh.ecf => exglobal_diag.sh} | 88 +- scripts/exglobal_enkf_fcst.sh.ecf | 464 ----- scripts/exglobal_enkf_fcst_nems.sh.ecf | 468 ----- scripts/exglobal_enkf_inflate_recenter.sh.ecf | 555 ------ scripts/exglobal_enkf_innovate_obs.sh.ecf | 632 ------ .../exglobal_enkf_innovate_obs_fv3gfs.sh.ecf | 197 -- scripts/exglobal_enkf_post.sh.ecf | 599 ------ scripts/exglobal_enkf_update.sh.ecf | 607 ------ ...a2p5_gsianl.sh.ecf => exurma2p5_gsianl.sh} | 2 +- src/enkf/gridio_gfs.f90 | 1 + src/enkf/readconvobs.f90 | 8 +- src/gsi/correlated_obsmod.F90 | 2 +- src/gsi/dtast.f90 | 22 +- src/gsi/gesinfo.F90 | 4 +- src/gsi/gsimod.F90 | 12 +- src/gsi/m_gpsrhs.F90 | 11 +- src/gsi/mod_vtrans.f90 | 6 +- src/gsi/obsmod.F90 | 18 +- src/gsi/read_abi.f90 | 5 +- src/gsi/read_fl_hdob.f90 | 5 +- src/gsi/read_gps.f90 | 8 +- src/gsi/read_obs.F90 | 28 +- src/gsi/read_satwnd.f90 | 110 +- src/gsi/read_seviri.f90 | 53 +- src/gsi/setupbend.f90 | 101 +- src/gsi/setupspd.f90 | 10 +- src/gsi/setupt.f90 | 2 + src/gsi/tcv_mod.f90 | 4 +- src/ncdiag/CMakeLists.txt | 6 +- src/ncdiag/ncdw_chaninfo.F90 | 2 +- src/ncdiag/ncdw_data2d.F90 | 2 +- src/ncdiag/serial/CMakeLists.txt | 8 +- ush/EnKF/drive_gfs | 2 +- ush/EnKF/drive_gsi | 4 +- ush/build_all_cmake.sh | 2 +- ush/calcanl_gfs.py | 623 +++--- ush/gsi_utils.py | 221 ++- ush/refactor_4nco_global.sh | 6 +- .../{JGDAS_VMINMON => JGDAS_ATMOS_VMINMON} | 12 +- ...fminmon.sh.ecf => exgdas_atmos_vminmon.sh} | 8 +- .../jobs/{JGFS_VMINMON => JGFS_ATMOS_VMINMON} | 9 +- ...rfminmon.sh.ecf => exgfs_atmos_vminmon.sh} | 8 +- util/Ozone_Monitor/CMakeLists.txt | 39 +- .../fix/gdas_oznmon_base.tar | Bin 0 -> 30720 bytes .../{JGDAS_VERFOZN => JGDAS_ATMOS_VERFOZN} | 11 +- ...vrfyozn.sh.ecf => exgdas_atmos_verfozn.sh} | 9 +- .../sorc/oznmon_horiz.fd/horiz.f90 | 2 +- .../{read_diag.f90 => oznmon_read_diag.f90} | 122 +- .../{read_diag.f90 => oznmon_read_diag.f90} | 122 +- .../sorc/oznmon_time.fd/time.f90 | 2 +- .../oznmon_shared.v2.0.0/ush/ozn_xtrct.sh | 5 +- .../{JGDAS_VERFRAD => JGDAS_ATMOS_VERFRAD} | 11 +- ...vrfyrad.sh.ecf => exgdas_atmos_verfrad.sh} | 9 +- 90 files changed, 2043 insertions(+), 6595 deletions(-) create mode 100644 cmake/Modules/Testing/Temporary/CTestCostData.txt create mode 100644 cmake/Modules/Testing/Temporary/LastTest.log create mode 100755 cmake/Modules/comp_src.pl create mode 100644 doc/Release_Notes.gfsda.v16.0.0.txt rename jobs/{JGLOBAL_ANALDIAG => JGDAS_ATMOS_ANALYSIS_DIAG} (86%) create mode 100755 jobs/JGDAS_ATMOS_CHGRES_FORENKF rename jobs/{JGLOBAL_ENKF_ANALDIAG => JGDAS_ENKF_DIAG} (87%) rename jobs/{JGDAS_ENKF_RECENTER => JGDAS_ENKF_ECEN} (85%) rename jobs/{JGLOBAL_ENKF_SELECT_OBS => JGDAS_ENKF_SELECT_OBS} (90%) rename jobs/{JGDAS_ENKF_SURFACE => JGDAS_ENKF_SFC} (85%) rename jobs/{JGLOBAL_ENKF_UPDATE => JGDAS_ENKF_UPDATE} (88%) rename jobs/{JGLOBAL_ANALYSIS => JGLOBAL_ATMOS_ANALYSIS} (88%) rename jobs/{JGLOBAL_ANALCALC => JGLOBAL_ATMOS_ANALYSIS_CALC} (86%) delete mode 100755 jobs/JGLOBAL_ENKF_INNOVATE_OBS create mode 100755 scripts/exgdas_atmos_chgres_forenkf.sh rename scripts/{exglobal_enkf_recenter_fv3gfs.sh.ecf => exgdas_enkf_ecen.sh} (88%) rename scripts/{exglobal_enkf_fcst_fv3gfs.sh.ecf => exgdas_enkf_fcst.sh} (93%) rename scripts/{exglobal_enkf_post_fv3gfs.sh.ecf => exgdas_enkf_post.sh} (87%) rename scripts/{exglobal_innovate_obs_fv3gfs.sh.ecf => exgdas_enkf_select_obs.sh} (92%) rename scripts/{exglobal_enkf_surface_fv3gfs.sh.ecf => exgdas_enkf_sfc.sh} (93%) rename scripts/{exglobal_enkf_update_fv3gfs.sh.ecf => exgdas_enkf_update.sh} (94%) delete mode 100755 scripts/exglobal_analysis.sh.ecf rename scripts/{exglobal_analysis_fv3gfs.sh.ecf => exglobal_atmos_analysis.sh} (94%) rename scripts/{exglobal_analcalc_fv3gfs.sh.ecf => exglobal_atmos_analysis_calc.sh} (84%) rename scripts/{exglobal_analdiag_fv3gfs.sh.ecf => exglobal_diag.sh} (81%) delete mode 100755 scripts/exglobal_enkf_fcst.sh.ecf delete mode 100755 scripts/exglobal_enkf_fcst_nems.sh.ecf delete mode 100755 scripts/exglobal_enkf_inflate_recenter.sh.ecf delete mode 100755 scripts/exglobal_enkf_innovate_obs.sh.ecf delete mode 100755 scripts/exglobal_enkf_innovate_obs_fv3gfs.sh.ecf delete mode 100755 scripts/exglobal_enkf_post.sh.ecf delete mode 100755 scripts/exglobal_enkf_update.sh.ecf rename scripts/{exurma2p5_gsianl.sh.ecf => exurma2p5_gsianl.sh} (99%) rename util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/{JGDAS_VMINMON => JGDAS_ATMOS_VMINMON} (91%) rename util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/{exgdas_vrfminmon.sh.ecf => exgdas_atmos_vminmon.sh} (95%) rename util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/{JGFS_VMINMON => JGFS_ATMOS_VMINMON} (93%) rename util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/{exgfs_vrfminmon.sh.ecf => exgfs_atmos_vminmon.sh} (95%) create mode 100644 util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/fix/gdas_oznmon_base.tar rename util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/{JGDAS_VERFOZN => JGDAS_ATMOS_VERFOZN} (91%) rename util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/{exgdas_vrfyozn.sh.ecf => exgdas_atmos_verfozn.sh} (93%) rename util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/{read_diag.f90 => oznmon_read_diag.f90} (90%) rename util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/{read_diag.f90 => oznmon_read_diag.f90} (90%) rename util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/{JGDAS_VERFRAD => JGDAS_ATMOS_VERFRAD} (92%) rename util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/{exgdas_vrfyrad.sh.ecf => exgdas_atmos_verfrad.sh} (96%) diff --git a/cmake/Modules/Testing/Temporary/CTestCostData.txt b/cmake/Modules/Testing/Temporary/CTestCostData.txt new file mode 100644 index 0000000000..ed97d539c0 --- /dev/null +++ b/cmake/Modules/Testing/Temporary/CTestCostData.txt @@ -0,0 +1 @@ +--- diff --git a/cmake/Modules/Testing/Temporary/LastTest.log b/cmake/Modules/Testing/Temporary/LastTest.log new file mode 100644 index 0000000000..811fffbb04 --- /dev/null +++ b/cmake/Modules/Testing/Temporary/LastTest.log @@ -0,0 +1,3 @@ +Start testing: Apr 08 18:46 UTC +---------------------------------------------------------- +End testing: Apr 08 18:46 UTC diff --git a/cmake/Modules/comp_src.pl b/cmake/Modules/comp_src.pl new file mode 100755 index 0000000000..510be2504f --- /dev/null +++ b/cmake/Modules/comp_src.pl @@ -0,0 +1,15 @@ +#!/usr/bin/perl + + @list = @ARGV; + foreach(@list) { + $file = $_; + $compfile = "../../../P2/cmake/Modules/".$file; + $diffs = `diff $file $compfile`; + if($diffs != '') { + print "------------------------------------\n"; + print "$file\n"; + print "$diffs\n"; + print "------------------------------------\n"; + } + } + diff --git a/doc/Release_Notes.gfsda.v16.0.0.txt b/doc/Release_Notes.gfsda.v16.0.0.txt new file mode 100644 index 0000000000..3858f2b64d --- /dev/null +++ b/doc/Release_Notes.gfsda.v16.0.0.txt @@ -0,0 +1,378 @@ +GFSDA.v16.0.0 RELEASE NOTES + +GIT TAG + * GFS DA v16.0.0 is in github repository NOAA-EMC/GSI. GFS DA v16 is intended to be installed + as part of the entire GFS v16 package. Please see GFS v16 release notes for the name and + location of the GFS tag in github. The GFS tag contains a script which checks out the + appropriate GFS DA v16 tag. + + + + +DOC CHANGES + * Rename Release_Notes.fv3gfs_da.v15.0.0.txt as Release_Notes.gfsda.v16.0.0 and update contents to + relect GFS DA v16 development. + + + + +CODE CHANGES + * Data assimilation changes + * Use a Local Ensemble Kalman Filter (LETKF) with model space localization and + linearized observation operator to replace the Ensemble Square Root Filter (EnSRF). + * Apply a new 4-Dimensional Incremental Analysis Update (4D-IAU) technique. + * Turn on Stochastic Kinetic Energy Backscatter (SKEB) scheme in GDAS ensemble forecasts. + * Update variational Quality Control (QC). + * Apply Hilbert curve to aircraft data. + * Update aircraft bias correction with safeguards. + * Assimilate additional COSMIC-2 GNSS-RO data (COSMIC-2 E1 and E2) + * Apply correlated observation error for CrIS over sea surfaces and IASI over sea and land. + * Assimilate AMSU-A channel 14 and ATMS channel 15 without bias correction. + * Assimilate CSR data from ABI_G16, AHI_Himawari8, and SEVIRI_M08. + * Assimilate AVHRR from NOAA-19 and Metop-B for near sea-surface temperature (NSST). + * Assimilate high-density flight-level wind, temperature, and moisture observations in tropical storm environment + * Upgrade to Community Radiative Transfer Model (CRTM) v2.3.0. + * New GFS DA v16 codes + * calc_analysis.fd - compute analysis by combining guess and increment + * calc_increment_ens_ncio.fd - compute ensemble increment using netcdf io + * interp_inc.fd - horizontally interpolate analysis increment to specified output grid + * ncdiag_cat.fd - concatenate netcdf diagnostic files created by GSI + + + + +JOB CHANGES + * Update jobs to run within GFS workflow + * Rename the following jobs + * JGDAS_ENKF_RECENTER - rename as JGDAS_ENKF_ECEN + * JGDAS_VERFOZN - rename as JGDAS_ATMOS_VERFOZN + * JGDAS_VERFRAD - rename as JGDAS_ATMOS_VERFRAD + * JGDAS_VMINMON - rename as JGDAS_ATMOS_VMINMON + * JGFS_VMINMON - rename as JGFS_ATMOS_VMINMON + * JGLOBAL_ANALYSIS - rename as JGLOBAL_ATMOS_ANALYSIS + * JGLOBAL_ENKF_SELECT_OBS - rename as JGDAS_ENKF_SELECT_OBS + * JGLOBAL_ENKF_UPDATE - rename as JGDAS_ENKF_UPDATE + * Remove the following job + * JGDAS_ENKF_INNOVATE_OBS - this job is no longer used + * Add the following new jobs + * JGDAS_ATMOS_ANALYSIS_DIAG - create GSI diagnostic files for deterministic analysis + * JGDAS_ATMOS_CHGRES_FORENKF - chgres deterministic forecast to EnKF resolution + * JGDAS_ENKF_DIAG - create GSI diagnosic files for EnKF members + * JGDAS_ENKF_SFC - create surface analysis files for EnKF members + * JGLOBAL_ATMOS_ANALYSIS_CALC - create gaussian grid atmospheric and surface analysis files + + + + +SCRIPT CHANGES + * Update scripts to run within GFS workflow. + * Remove ".ecf" suffix from script names + * Rename the following scripts + * exgdas_vrfminmon.sh.ecf - rename as exgdas_atmos_vminmon.sh + * exgdas_vrfyozn.sh.ecf - rename as exgdas_atmos_verfozn.sh + * exgdas_vrfyrad.sh.ecf - rename as exgdas_atmos_verfrad.sh + * exgfs_vrfminmon.sh.ecf - rename as exgfs_atmos_vminmon.sh + * exglobal_analysis_fv3gfs.sh.ecf - rename as exglobal_atmos_analysis.sh + * exglobal_enkf_fcst_fv3gfs.sh.ecf - rename as exgdas_enkf_fcst.sh + * exglobal_enkf_post_fv3gfs.sh.ecf - rename as exgdas_enkf_post.sh + * exglobal_enkf_recenter_fv3gfs.sh.ecf - rename as exgdas_enkf_ecen.sh + * exglobal_enkf_update_fv3gfs.sh.ecf - rename as exgdas_enkf_update.sh + * Remove the following job + * exglobal_enkf_innovate_obs_fv3gfs.sh.ecf - this script is no longer used + * Add the following new scripts + * exgdas_atmos_chgres_forenkf.sh - chgres deterministic forecast to EnKF resolution + * exgdas_enkf_sfc.sh - create surface analysis files for EnKF members + * exglobal_atmos_analysis_calc.sh - create gaussian grid atmospheric and surface analysis files + * exglobal_diag.sh - create GSI diagnostic files + + + + +PARM CHANGES + * Update to run within GFS workflow. Parm or configuration files for GFS components reside in + parm/config. Below are the parm (config) files used by each GFS DA v16 job. Note: the + config file prefix "config." is omitted below for the sake of readability. + * JGDAS_ATMOS_ANALYSIS_DIAG - base, anal, analdiag + * JGDAS_ATMOS_CHGRES_FORENKF - base, anal, echgres + * JGDAS_ENKF_DIAG - base, anal, eobs, analdiag, ediag + * JGDAS_ENKF_ECEN - base, ecen + * JGDAS_ENKF_FCST - base, fcst, efcs + * JGDAS_ENKF_POST - base, epos + * JGDAS_ENKF_SELECT_OBS - base, anal, eobs + * JGDAS_ENKF_SFC - base, esfc + * JGDAS_ENKF_UPDATE - base, anal, eupd + * JGLOBAL_ATMOS_ANALYSIS - base, anal + * JGLOBAL_ATMOS_ANALYSIS_CALC - base, anal, analcalc + Parameters common to all jobs are in config.base. Analysis jobs share config.anal. + This avoids duplication of identical parameters across multiple parameter files. + + + + +FIX CHANGES + * Updates to run GFS DA v16 + * New files and directory + * Big_Endian + * global_berror.l127y*.f77 - L127 static background error files for various resolutions + * global_berror.l64y194.f77, global_berror.l64y98.f77 - L64 static background error files + for additional resolutions + * global_anavinfo.l127.txt - change vertical resolution to 127, add correlated error section + * global_hybens_info.l127.txt - GSI localization parameters for L127 + * global_hybens_smoothinfo.l127.txt - smoothing parameters for L127 + * global_lightinfo.txt - lightning data info file + * Rcov_* - correlated observation error for CrIS and IASI + * vlocal_eig_l*.dat - LETKF model space localization parameters for L127 + * vqctp001.dat - variational quality control parameters + * Big_Endian/global_berror.l127y770.f77 - L127 static background error file for C768 + * gfsv16_historical/ - contain historical fix files + * Modify existing files + * global_convinfo.txt - updates for new variational quality control; adjust gross checks + limits for ps and sst; adjust gps error limits; assimilate + additional gps data; assimilate t 136, q 136, and uv 236; + remove sst 200, 201 and 202; assmilate sst 198; add uv 255 + (monitor); assimilate uv 260_225 + * global_ozinfo.txt - add ompslp_npp (monitor mode) + * global_satinfo.txt - assimilate the following: amsua channel 14 and atms channel 15 + (without bias correction), avhrr3_n19 channels 3-5, seviri_m08 + channels 5-6, ahi_himawari8 channels 8-10, abi_g16 channel 8 + * prepobs_errtable.global - update observation errors for ps types 120, 180, 181, 187; + type 136 t, q, and ps; uv 236, 245, 246, 247, 260, 290 + + + + +RESOURCE INFORMATION + * Frequency of run + * 6 hourly cycle (00, 06, 12, 18Z) - no change from current operations + + + * All versions of libraries, compiler, and modules used by GFS DA v16 are specified in + modulefiles/modulefile.ProdGSI.wcoss_d + + + * Data retention for files in $COMROOTp3 are the same as those specified for + the overall GFS v16 package + + + * Disk space. Please see disk usage estimates for entire GFS v16 package + + + * Computational resources and run times + * JGLOBAL_ATMOS_ANALYSIS (GFS) + * 250 nodes, 1000 tasks, ptile=4, 7 threads/task + * Runtime: 28.1 - 29.4 minutes + + * JGLOBAL_ATMOS_ANALYSIS_CALC (GFS) + * 5 nodes, 140 tasks, ptile=28, 1 thread/task + * Runtime: 2.4 - 2.7 minutes + + * JGLOBAL_ATMOS_ANALYSIS (GDAS) + * 250 nodes, 1000 tasks, ptile=4, 7 threads/task + * Runtime: 38.2 - 39.3 minutes + + * JGLOBAL_ATMOS_ANALYSIS_CALC (GDAS) + * 5 nodes, 140 tasks, ptile=28, 1 thread/task + * Runtime: 3.5 - 4.5 minutes + + * JGDAS_ATMOS_ANALYSIS_DIAG (GDAS) + * 4 nodes, 112 tasks, ptile=28, 1 thread/task + * Runtime: 3.0 - 3.3 minutes + + * JGDAS_ENKF_SELECT_OBS + * 120 nodes, 480 tasks, ptile=4, 7 threads/task + * Runtime: 4.1 - 4.8 minutes + + * JGDAS_ENKF_DIAG + * 2 nodes, 56 tasks, ptile=28, 1 thread/task + * Runtime: 2.9 - 3.2 minutes + + * JGDAS_ENKF_UPDATE + * 240 nodes, 960 tasks, ptile=4, 7 threads/task + * Runtime: 25.6 - 26.7 minutes + + * JGDAS_ENKF_ECEN (3x) + * 60 nodes, 240 tasks, ptile=4, 7 threads/task + * Concurrently run 3 realizations of JGDAS_ENKF_RECENTER. Each job + processes an IAU analysis time. Each job uses 20 nodes, 80 tasks, + ptile=4, 7 threads/task. + * Runtime: 4.1 - 4.8 minutes + + * JGDAS_ENKF_SFC + * 3 nodes, 84 tasks, ptile=28, 1 thread/task + * Runtime: 2.2 - 2.6 minutes + + * JGDAS_ENKF_FCST (40x) + * 600 nodes, 16800 tasks, ptile=28, 1 thread/task + * Concurrently run 40 realizations of JGDAS_ENKF_FCST. Each job + sequentially processes 2 EnKF members. Each job uses 15 nodes, + 420 tasks, ptile=28, 1 thread/task. + * Runtime: 28.5 - 31.6 minutes + + * JGDAS_ENKF_POST (7x) + * 140 nodes, 560 tasks, ptile=4, 7 threads/task + * Concurrently run 7 realizations of JGDAS_ENKF_POST. Each job + prcoesses one forecast hour. Each job uses 20 nodes, 80 tasks, + ptile=4, 7 threads/task. + * Runtime: 10.6 - 11.3 minutes + + + + +PRE-IMPLEMENTATION TESTING REQUIREMENTS + * Which production jobs should be tested as part of this implementation? + * The GFS DA package needs to tested with the entire GFS v16 suite. + + + * Does this change require a 30-day evaluation? + * Yes, the entire GFS v16 package requires a 30-day evaluation + + + * Suggested evaluators + * Same as those for entire GFS v16 package + + + +DISSEMINATION INFORMATION + * Where should this output be sent? + * same as current operations + + + * Who are the users? + * same as current operations + + + * Which output files should be transferred from PROD WCOSS to DEV WCOSS? + * Please refer to release notes for GFS v16 package + + + * Directory changes + * Add atmos and wave to gfs, gdas, and enkfgdas paths. GFS v16 paths are + - $COMROOTp3/gfs/prod/gfs.$PDY/$cyc/{atmos, wave} + - $COMROOTp3/gfs/prod/gdas.$PDY/$cyc/{atmos, wave} + - $COMROOTp3/gfs/prod/enkfgdas.$PDY/$cyc/atmos EnKF does not run with waves + * Write GSI subdomain specific diagnostic files to new directory, gsidiags, in + gdas.$PDY/$cyc/atmos and enkfgdas.$PDY/$cyc/atmos + + + * File changes. Only GFS DA v16.0.0 file changes are listed below. + + * $COMROOTp3/gfs/prod/gfs.$PDY/$cyc/atmos + * Rename + * replace ".nemsio" suffix with ".nc" for atm* and sfc* files + * Add + * gfs.t${cyc}z.atmi003.nc and gfs.t${cyc}z.atmi009.nc - analysis increment files + valid at the start and end of the IAU analysis window + * gfs.t${cyc}z.loganl.txt - text file indicating creation of GFS atmanl and sfcanl files + * gfs.t${cyc}z.loginc.txt - text file indicating creation of GFS IAU increment files + + + * $COMROOTp3/gfs/prod/gdas.$PDY/$cyc/atmos + * Rename + * replace ".nemsio" suffix with ".nc" for atm* and sfc* files + * Add + * gdas.t${cyc}z.atma003.ensres.nc, gdas.t${cyc}z.atma009.ensres.nc - analyses valid + at the start and end of the IAU analysis window interpolated to EnKF resolution + * gdas.t${cyc}z.atmf003.ensres.nc, gdas.t${cyc}z.atmf006.ensres.nc, + gdas.t${cyc}z.atmf009.ensres.nc - 3, 6, and 9 hour forecasts interpolated to + EnKF resolution + * gdas.t${cyc}z.atmi003.nc, gdas.t${cyc}z.atmi009.nc - IAU analysis increment files + at the start and end of the IAU analysis window + * gdas.t${cyc}z.loganl.txt - text file indicating creation of GDAS atmanl and sfcanl files + * gdas.t${cyc}z.loginc.txt - text file indicating creation of GDAS IAU increment files + * gsidiags - directory containing sub-domain GDAS GSI diagnostic files + + * $COMROOTp3/gfs/prod/enkfgdas.$PDY/$cyc/atmos + * Rename + * replace ".nemsio" suffix with ".nc" for atm* and sfc* files + * replace ".nc4" suffix with ".nc" for ensmean and ensspread files + * Add + * efcs.grpXX for XX=21 to 40 - efcs txt files for EnKF forecast groups 21 to 40 + * gdas.t${cyc}z.atmi003.ensmean.nc - ensemble mean analysis increment valid at start of IAU window + * gdas.t${cyc}z.atminc.ensmean.nc - ensemble mean analysis increment valid at center of IAU window + * gdas.t${cyc}z.atmi009.ensmean.nc - ensemble mean analysis increment valid at end of IAU window + * gdas.t${cyc}z.loginc.txt - text file indicating creation of EnKF IAU increment files + * gsidiags - directory containing sub-domain EnKF GSI diagnostic files + * memXXX/gdas.t${cyc}z.ratmi003.nc - recentered analysis increment valid at start of IAU window + for EnKF member memXXX + * memXXX/gdas.t${cyc}z.ratminc.nc - recentered analysis increment valid at center of IAU window + for EnKF member memXXX + * memXXX/gdas.t${cyc}z.ratmi009.nc - recentered analysis increment valid at end of IAU window + for EnKF member memXXX + * Remove + * remove eomg.grpXX - job creating these files is not run in GFS v16 + * gdas.t00z.atmanl.ensmean.nemsio + * memXXX/gdas.t${cyc}z.abias, abias_air, abias_pc, atmanl, cnvstat, gsistat, oznstat, ratmanl, + radstat - these files are not created in GFS v16 + + + + +HPSS ARCHIVE + * Retention length? + * Please refer to release notes for GFS v16 package + + + * List which output files should be archived + * Please refer to release notes for GFS v16 package + + + + +IMPLEMENTATION INSTRUCTIONS + * Please note that the GFS DA v16 components must be installed in conjunction with the entire GFS v16 package. + Thus, the implementation instructions below extract the entire GFS v16 package. The GFS package is + tagged in github as tag gfs.v16.0.0. Implementation instructions for this tag follow: + + 1) cd $NWROOTp3 + + 2) mkdir $NWROOTp3/gfs.v16.0.0 + + 3) cd $NWROOTp3/gfs.v16.0.0 + + 4) git clone https://github.com/NOAA-EMC/global-workflow.git . + * Notes: + * The "." after global-workflow.git is important. It tells git to clone the repository + fv3gfs into the local working directory, $NWROOTp3/gfs.v16.0.0. + * The SPA(s) handling the GFS v16 implementation may encounter "permission denied" messages when + attempting to clone github repositories. Code managers need to grant access the SPA(s). Please + contact Kate.Friedman@noaa.gov for assistance. + + 5) git checkout gfs.v16.0.0 + + 6) cd sorc + + 7) ./checkout.sh + * This script extracts the GFS v16 components from github + + 8) ./build_all.sh + * Script build_all.sh compiles GFS v16 components. Runtime output from the build for each + package is written to log files in directory logs. Specifically, GFS DA v16 build information + is written to logs/build_gsi.log. Script build_gsi.sh invokes gsi.fd/ush/build_all_cmke.sh. + This script uses cmake to build GFS DA v16 executables. Script build_all_cmake.sh accepts two + command line options: build type and directory path to package. Two build types are + supported - PRODUCTION (default) and DEBUG. + + 9) ./link_fv3gfs.sh nco dell + + + +JOB DEPENDENCIES & FLOW DIAGRAM + * GFS DA v16 adds several DA jobs to the GFS. Below are dependencies for + new jobs + * JGDAS_ATMOS_ANALYSIS_DIAG - trigger upon completion of JGLOBAL_ATMOS_ANALYSIS + * JGDAS_ATMOS_CHGRES_FORENKF - trigger upon completion of GDAS JGLOBAL_FORECAST and all JGDAS_ENKF_FCST + * JGDAS_ENKF_DIAG - trigger upon completion of JGDAS_ENKF_SELECT_OBS + * JGDAS_ENKF_SFC - trigger upon completion of JGDAS_ENKF_UPDATE + * JGLOBAL_ATMOS_ANALYSIS_CALC - trigger upon completion of JGLOBAL_ATMOS_ANALYSIS + * Dependencenies also change due to the renaming of existing jobs. These + dependencies are given below + * JGDAS_ENKF_ECEN - trigger upon completion of JGDAS_ENKF_UPDATE and JGLOBAL_ATMOS_ANALYSIS + * JGDAS_ATMOS_VERFOZN - trigger upon completion of JGDAS_ATMOS_ANALYSIS_DIAG + * JGDAS_ATMOS_VERFRAD - trigger upon completion of JGDAS_ATMOS_ANALYSIS_DIAG + * JGDAS_ATMOS_VMINMON - trigger upon completion of JGLOBAL_ATMOS_ANALYSIS + * JGFS_ATMOS_VMINMON - trigger upon completion of JGLOBAL_ATMOS_ANALYSIS + * JGLOBAL_ATMOS_ANALYSIS - trigger upcon completion of JGLOBAL_PREP + * JGDAS_ENKF_SELECT_OBS - trigger upon completion of JGLOBAL_PREP + * JGDAS_ENKF_UPDATE - tigger upon completion of JGDAS_ENKF_DIAG + + diff --git a/fix b/fix index e47bcf18cc..82c9a46fab 160000 --- a/fix +++ b/fix @@ -1 +1 @@ -Subproject commit e47bcf18cc9cab37a1f3ccc198b8e6bab578c9b9 +Subproject commit 82c9a46fabd8d04686589241c36381ab17810cfd diff --git a/jobs/JGLOBAL_ANALDIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG similarity index 86% rename from jobs/JGLOBAL_ANALDIAG rename to jobs/JGDAS_ATMOS_ANALYSIS_DIAG index 0dc227616a..8ab157dc71 100755 --- a/jobs/JGLOBAL_ANALDIAG +++ b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG @@ -54,10 +54,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -81,20 +82,19 @@ export ASUFFIX=${ASUFFIX:-$SUFFIX} if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc} - export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc} + export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} else - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" + export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" fi mkdir -m 775 -p $COMOUT -# COMIN_GES and COMIN_GES_ENS are used in exglobal script -# TO DO: Map NCO's directory into these variables -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc" +# COMIN_GES and COMIN_GES_ENS are used in script +export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" export ATMGES="$COMIN_GES/${GPREFIX}atmf006${GSUFFIX}" @@ -134,14 +134,14 @@ export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ANALDIAGSH:-$HOMEgsi/scripts/exglobal_analdiag_fv3gfs.sh.ecf} +${ANALDIAGSH:-$SCRgfs/exglobal_diag.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/jobs/JGDAS_ATMOS_CHGRES_FORENKF new file mode 100755 index 0000000000..78a1d384bd --- /dev/null +++ b/jobs/JGDAS_ATMOS_CHGRES_FORENKF @@ -0,0 +1,137 @@ +#!/bin/ksh +set -x + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + + +############################# +# Source relevant config files +############################# +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +configs="base anal echgres" +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env anal +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# Obtain unique process id (pid) and make temp directory +############################################## +export pid=${pid:-$$} +export outid=${outid:-"LL$job"} + +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +. ./PDY + + +############################################## +# Determine Job Output Name on System +############################################## +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + + +############################################## +# Set variables used in the script +############################################## +export CDATE=${CDATE:-${PDY}${cyc}} +export CDUMP=${CDUMP:-${RUN:-"gfs"}} +export COMPONENT=${COMPONENT:-atmos} +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi +export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} + + +############################################## +# Begin JOB SPECIFIC work +############################################## + +GDATE=$($NDATE -$assim_freq $CDATE) +gPDY=$(echo $GDATE | cut -c1-8) +gcyc=$(echo $GDATE | cut -c9-10) +GDUMP=${GDUMP:-"gdas"} + +export OPREFIX="${CDUMP}.t${cyc}z." +export GPREFIX="${GDUMP}.t${gcyc}z." +export APREFIX="${CDUMP}.t${cyc}z." +export GSUFFIX=${GSUFFIX:-$SUFFIX} +export ASUFFIX=${ASUFFIX:-$SUFFIX} + + +if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then + export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMOUT_ENS=${COMOUT_ENS:-$ROTDIR/enkfgdas.$PDY/$cyc/$COMPONENT} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} +else + export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" + export COMOUT_ENS="$ROTDIR/enkfgdas.$PDY/$cyc/$COMPONENT" + export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" + export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" +fi +mkdir -m 775 -p $COMOUT +# COMIN_GES and COMIN_GES_ENS are used in script +export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" + +############################################################### +# Run relevant script +env +msg="HAS BEGUN on `hostname`" +postmsg "$jlogfile" "$msg" +$LOGSCRIPT + + +${CHGRESFCSTSH:-$SCRgfs/exgdas_atmos_chgres_forenkf.sh} +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# End JOB SPECIFIC work +############################################## + +############################################## +# Final processing +############################################## +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + + +msg="ENDED NORMALLY." +postmsg "$jlogfile" "$msg" + + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGLOBAL_ENKF_ANALDIAG b/jobs/JGDAS_ENKF_DIAG similarity index 87% rename from jobs/JGLOBAL_ENKF_ANALDIAG rename to jobs/JGDAS_ENKF_DIAG index 6e08ea2f47..ff227c5670 100755 --- a/jobs/JGLOBAL_ENKF_ANALDIAG +++ b/jobs/JGDAS_ENKF_DIAG @@ -10,7 +10,7 @@ date # Source relevant config files ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal eobs ediag" +configs="base anal eobs analdiag ediag" config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config @@ -53,10 +53,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -81,20 +82,19 @@ export GSUFFIX="${GSUFFIX:-".ensmean${SUFFIX}"}" export ASUFFIX="${ASUFFIX:-"${SUFFIX}"}" if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} else export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" fi -# COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in exglobal script -# TO DO: Map NCO's directory into these variables -COMIN_GES_CTL="$ROTDIR/gdas.$gPDY/$gcyc" -export COMIN_ANL="$ROTDIR/$CDUMP.$PDY/$cyc" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc" +# COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in script +COMIN_GES_CTL="$ROTDIR/gdas.$gPDY/$gcyc/$COMPONENT" +export COMIN_ANL="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" export COMIN_GES=$COMIN_GES_ENS -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc" +export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006$GSUFFIX" @@ -154,26 +154,18 @@ done ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ANALDIAGSH:-$SCRgsi/exglobal_analdiag_fv3gfs.sh.ecf} +${ANALDIAGSH:-$SCRgfs/exglobal_diag.sh} status=$? [[ $status -ne 0 ]] && exit $status -############################################## -# Send Alerts -############################################## -if [ $SENDDBN = YES ] ; then - $DBNROOT/bin/dbn_alert MODEL ENKF1_MSC_gsistat $job $GSISTAT -fi - - ############################################## # End JOB SPECIFIC work ############################################## diff --git a/jobs/JGDAS_ENKF_RECENTER b/jobs/JGDAS_ENKF_ECEN similarity index 85% rename from jobs/JGDAS_ENKF_RECENTER rename to jobs/JGDAS_ENKF_ECEN index 01c2b9cbdc..c185ed7c3b 100755 --- a/jobs/JGDAS_ENKF_RECENTER +++ b/jobs/JGDAS_ENKF_ECEN @@ -53,10 +53,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -89,30 +90,29 @@ export GSUFFIX=${GSUFFIX:-$SUFFIX} export ASUFFIX=${ASUFFIX:-$SUFFIX} if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} else export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" fi -# COMIN, COMIN_ENS and COMIN_GES_ENS are used in exglobal script -# TO DO: Map NCO's directory into these variables -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc" -export COMIN_ENS="$ROTDIR/enkf$CDUMP_ENKF.$PDY/$cyc" -export COMOUT_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc" -export COMIN_GES_ENS="$ROTDIR/enkf$CDUMP.$gPDY/$gcyc" +# COMIN, COMIN_ENS and COMIN_GES_ENS are used in script +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN_ENS="$ROTDIR/enkf$CDUMP_ENKF.$PDY/$cyc/$COMPONENT" +export COMOUT_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN_GES_ENS="$ROTDIR/enkf$CDUMP.$gPDY/$gcyc/$COMPONENT" ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ENKFRECENSH:-$SCRgsi/exglobal_enkf_recenter_fv3gfs.sh.ecf} +${ENKFRECENSH:-$SCRgfs/exgdas_enkf_ecen.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGDAS_ENKF_FCST b/jobs/JGDAS_ENKF_FCST index 67bc685d76..60da5e7063 100755 --- a/jobs/JGDAS_ENKF_FCST +++ b/jobs/JGDAS_ENKF_FCST @@ -53,10 +53,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -68,9 +69,8 @@ fi export CASE=$CASE_ENKF -# COMOUT is used in exglobal script -# TO DO: Map NCO's directory into these variables -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc" +# COMOUT is used in script +export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" # Forecast length for EnKF forecast @@ -85,14 +85,14 @@ export ENSBEG=$((ENSEND - NMEM_EFCSGRP + 1)) ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ENKFFCSTSH:-$SCRgsi/exglobal_enkf_fcst_fv3gfs.sh.ecf} +${ENKFFCSTSH:-$SCRgfs/exgdas_enkf_fcst.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGDAS_ENKF_POST b/jobs/JGDAS_ENKF_POST index 55bb97ee14..0aaac99afe 100755 --- a/jobs/JGDAS_ENKF_POST +++ b/jobs/JGDAS_ENKF_POST @@ -53,10 +53,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -69,24 +70,23 @@ export GFS_NCIO=${GFS_NCIO:-"YES"} export PREFIX="${CDUMP}.t${cyc}z." -# COMIN, COMOUT are used in exglobal script -# TO DO: Map NCO's directory into these variables -export COMIN="$ROTDIR/enkf$CDUMP.$PDY/$cyc" -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc" +# COMIN, COMOUT are used in script +export COMIN="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" +export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" export LEVS=$((LEVS-1)) ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ENKFPOSTSH:-$SCRgsi/exglobal_enkf_post_fv3gfs.sh.ecf} +${ENKFPOSTSH:-$SCRgfs/exgdas_enkf_post.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGLOBAL_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS similarity index 90% rename from jobs/JGLOBAL_ENKF_SELECT_OBS rename to jobs/JGDAS_ENKF_SELECT_OBS index de69dd94b0..4dc7948223 100755 --- a/jobs/JGLOBAL_ENKF_SELECT_OBS +++ b/jobs/JGDAS_ENKF_SELECT_OBS @@ -53,10 +53,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -81,20 +82,19 @@ export GSUFFIX="${GSUFFIX:-".ensmean${SUFFIX}"}" export ASUFFIX="${ASUFFIX:-"${SUFFIX}"}" if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} else export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" fi -# COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in exglobal script -# TO DO: Map NCO's directory into these variables -COMIN_GES_CTL="$ROTDIR/gdas.$gPDY/$gcyc" -export COMIN_ANL="$ROTDIR/$CDUMP.$PDY/$cyc" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc" +# COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in script +COMIN_GES_CTL="$ROTDIR/gdas.$gPDY/$gcyc/$COMPONENT" +export COMIN_ANL="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" export COMIN_GES=$COMIN_GES_ENS -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc" +export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006$GSUFFIX" @@ -153,14 +153,14 @@ done ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${INVOBSSH:-$SCRgsi/exglobal_innovate_obs_fv3gfs.sh.ecf} +${INVOBSSH:-$SCRgfs/exgdas_enkf_select_obs.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGDAS_ENKF_SURFACE b/jobs/JGDAS_ENKF_SFC similarity index 85% rename from jobs/JGDAS_ENKF_SURFACE rename to jobs/JGDAS_ENKF_SFC index 1fe82beada..a143b829dc 100755 --- a/jobs/JGDAS_ENKF_SURFACE +++ b/jobs/JGDAS_ENKF_SFC @@ -53,10 +53,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -89,30 +90,29 @@ export GSUFFIX=${GSUFFIX:-$SUFFIX} export ASUFFIX=${ASUFFIX:-$SUFFIX} if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} else export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" fi -# COMIN, COMIN_ENS and COMIN_GES_ENS are used in exglobal script -# TO DO: Map NCO's directory into these variables -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc" -export COMIN_ENS="$ROTDIR/enkf$CDUMP_ENKF.$PDY/$cyc" -export COMOUT_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc" -export COMIN_GES_ENS="$ROTDIR/enkf$CDUMP.$gPDY/$gcyc" +# COMIN, COMIN_ENS and COMIN_GES_ENS are used in script +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN_ENS="$ROTDIR/enkf$CDUMP_ENKF.$PDY/$cyc/$COMPONENT" +export COMOUT_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN_GES_ENS="$ROTDIR/enkf$CDUMP.$gPDY/$gcyc/$COMPONENT" ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ENKFRESFCSH:-$SCRgsi/exglobal_enkf_surface_fv3gfs.sh.ecf} +${ENKFRESFCSH:-$SCRgfs/exgdas_enkf_sfc.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGLOBAL_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE similarity index 88% rename from jobs/JGLOBAL_ENKF_UPDATE rename to jobs/JGDAS_ENKF_UPDATE index b66b7e2870..56c4c6027d 100755 --- a/jobs/JGLOBAL_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -53,10 +53,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -76,20 +77,19 @@ export ASUFFIX=${ASUFFIX:-$SUFFIX} export GSUFFIX=${GSUFFIX:-$SUFFIX} -# COMIN_GES_ENS and COMOUT_ANL_ENS are used in exglobal script -# TO DO: Map NCO's directory into these variables -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc" -export COMOUT_ANL_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc" +# COMIN_GES_ENS and COMOUT_ANL_ENS are used in script +export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" +export COMOUT_ANL_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ENKFUPDSH:-$SCRgsi/exglobal_enkf_update_fv3gfs.sh.ecf} +${ENKFUPDSH:-$SCRgfs/exgdas_enkf_update.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGLOBAL_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS similarity index 88% rename from jobs/JGLOBAL_ANALYSIS rename to jobs/JGLOBAL_ATMOS_ANALYSIS index 2933109c91..5644c75305 100755 --- a/jobs/JGLOBAL_ANALYSIS +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -54,10 +54,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -81,20 +82,19 @@ export ASUFFIX=${ASUFFIX:-$SUFFIX} if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc} - export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc} + export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} else - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" + export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" fi mkdir -m 775 -p $COMOUT -# COMIN_GES and COMIN_GES_ENS are used in exglobal script -# TO DO: Map NCO's directory into these variables -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc" +# COMIN_GES and COMIN_GES_ENS are used in script +export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" export ATMGES="$COMIN_GES/${GPREFIX}atmf006${GSUFFIX}" @@ -145,14 +145,14 @@ export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ANALYSISSH:-$SCRgsi/exglobal_analysis_fv3gfs.sh.ecf} +${ANALYSISSH:-$SCRgfs/exglobal_atmos_analysis.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGLOBAL_ANALCALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC similarity index 86% rename from jobs/JGLOBAL_ANALCALC rename to jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index 94e524a0e6..7233684cc2 100755 --- a/jobs/JGLOBAL_ANALCALC +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -54,10 +54,11 @@ export pgmerr=errfile ############################################## -# Set variables used in the exglobal script +# Set variables used in the script ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} +export COMPONENT=${COMPONENT:-atmos} if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir fi @@ -81,20 +82,19 @@ export ASUFFIX=${ASUFFIX:-$SUFFIX} if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc} - export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc} + export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT} else - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" + export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" fi mkdir -m 775 -p $COMOUT -# COMIN_GES and COMIN_GES_ENS are used in exglobal script -# TO DO: Map NCO's directory into these variables -export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc" +# COMIN_GES and COMIN_GES_ENS are used in script +export COMIN_GES="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" +export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" export ATMGES="$COMIN_GES/${GPREFIX}atmf006${GSUFFIX}" @@ -134,14 +134,14 @@ export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} ############################################################### -# Run relevant exglobal script +# Run relevant script env msg="HAS BEGUN on `hostname`" postmsg "$jlogfile" "$msg" $LOGSCRIPT -${ANALCALCSH:-$HOMEgsi/scripts/exglobal_analcalc_fv3gfs.sh.ecf} +${ANALCALCSH:-$SCRgfs/exglobal_atmos_analysis_calc.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGLOBAL_ENKF_INNOVATE_OBS b/jobs/JGLOBAL_ENKF_INNOVATE_OBS deleted file mode 100755 index 19ce533984..0000000000 --- a/jobs/JGLOBAL_ENKF_INNOVATE_OBS +++ /dev/null @@ -1,171 +0,0 @@ -#!/bin/ksh -set -x - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} -export PS4='$SECONDS + ' -date - - -############################# -# Source relevant config files -############################# -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -configs="base anal eobs" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config - status=$? - [[ $status -ne 0 ]] && exit $status -done - - -########################################## -# Source machine runtime environment -########################################## -. $HOMEgfs/env/${machine}.env eobs -status=$? -[[ $status -ne 0 ]] && exit $status - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################################## -# Set variables used in the exglobal script -############################################## -export CDATE=${CDATE:-${PDY}${cyc}} -export CDUMP=${CDUMP:-${RUN:-"gdas"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi - - -############################################## -# Begin JOB SPECIFIC work -############################################## - -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) - - -export CASE=$CASE_ENKF - -export OPREFIX="${CDUMP}.t${cyc}z." -export APREFIX="${CDUMP}.t${cyc}z." -export GPREFIX="gdas.t${gcyc}z." -export GSUFFIX="${GSUFFIX:-$SUFFIX}" -export ASUFFIX="${ASUFFIX:-$SUFFIX}" - - -# COMIN_GES, COMIN_GES_ENS and COMOUT are used in exglobal script -# TO DO: Map NCO's directory into these variables -COMIN_GES_CTL="$ROTDIR/gdas.$gPDY/$gcyc" -export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc" -export COMIN_GES=$COMIN_GES_ENS -export COMOUT="$ROTDIR/enkf$CDUMP.$PDY/$cyc" - - -export ATMGES_ENSMEAN="$COMIN_GES_ENS/${GPREFIX}atmf006.ensmean$GSUFFIX" -if [ ! -f $ATMGES_ENSMEAN ]; then - echo "FATAL ERROR: FILE MISSING: ATMGES_ENSMEAN = $ATMGES_ENSMEAN" - exit 1 -fi - - -export LEVS=$($NCDUMP -h $ATMGES_ENSMEAN | grep -i "pfull" | head -1 | awk -F" = " '{print $2}' | awk -F" " '{print $1}') # get LEVS -status=$? -[[ $status -ne 0 ]] && exit $status - - -# Guess Bias correction coefficients related to control -export GBIAS=${COMIN_GES_CTL}/${GPREFIX}abias -export GBIASPC=${COMIN_GES_CTL}/${GPREFIX}abias_pc -export GBIASAIR=${COMIN_GES_CTL}/${GPREFIX}abias_air -export GRADSTAT=${COMIN_GES_CTL}/${GPREFIX}radstat - - -# Use the selected observations from ensemble mean -export RUN_SELECT="NO" -export USE_SELECT="YES" -export SELECT_OBS="$COMOUT/${APREFIX}obsinput.ensmean" - - -# Get ENSBEG/ENSEND from ENSGRP and NMEM_EOMGGRP -export ENSEND=$((NMEM_EOMGGRP * ENSGRP)) -export ENSBEG=$((ENSEND - NMEM_EOMGGRP + 1)) - - -############################################################### -# Run relevant exglobal script -env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" -$LOGSCRIPT - - -${ENKFINVOBSSH:-$SCRgsi/exglobal_enkf_innovate_obs_fv3gfs.sh.ecf} -status=$? -[[ $status -ne 0 ]] && exit $status - - -# Double check the status of members in ENSGRP -EOMGGRP=$ROTDIR/enkf${CDUMP}.$PDY/$cyc/eomg.grp${ENSGRP} -npass=0 -if [ -f $EOMGGRP ]; then - npass=$(grep "PASS" $EOMGGRP | wc -l) -fi -echo "$npass/$NMEM_EOMGGRP members successfull in eomg.grp$ENSGRP" -if [ $npass -ne $NMEM_EOMGGRP ]; then - echo "FATAL ERROR: Failed members in $ENSGRP, ABORT!" - cat $EOMGGRP - exit 99 -fi - - -############################################## -# End JOB SPECIFIC work -############################################## - -############################################## -# Final processing -############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - - -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" - - -########################################## -# Remove the Temporary working directory -########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA - -date -exit 0 diff --git a/modulefiles/modulefile.ProdGSI.cheyenne b/modulefiles/modulefile.ProdGSI.cheyenne index 589ee214d2..211b681ad7 100644 --- a/modulefiles/modulefile.ProdGSI.cheyenne +++ b/modulefiles/modulefile.ProdGSI.cheyenne @@ -1,7 +1,7 @@ #%Module###################################################################### ## Mark.Potts@noaa.gov ## NOAA/NWS/NCEP/EMC -## ProdGSI +## NOAA-EMC/GSI ##_____________________________________________________ module purge diff --git a/modulefiles/modulefile.ProdGSI.discover b/modulefiles/modulefile.ProdGSI.discover index 1d843b8438..2c6d32b661 100644 --- a/modulefiles/modulefile.ProdGSI.discover +++ b/modulefiles/modulefile.ProdGSI.discover @@ -1,10 +1,10 @@ #%Module###################################################################### proc ModulesHelp { } { - puts stderr "Set environment veriables for GSI" + puts stderr "Set environment variables for NOAA-EMC/GSI" puts stderr "This module initializes the environment " - puts stderr "for building and testing GSI on NCCS Discover\n" + puts stderr "for building and testing NOAA-EMC/GSI on NCCS Discover\n" } -module-whatis "Initialize GSI build/test environment" +module-whatis "Initialize NOAA-EMC/GSI build/test environment" module load comp/intel-18.0.3.222 module load lib/mkl-18.0.3.222 diff --git a/modulefiles/modulefile.ProdGSI.gaea b/modulefiles/modulefile.ProdGSI.gaea index d71bafc749..15c823ab0d 100644 --- a/modulefiles/modulefile.ProdGSI.gaea +++ b/modulefiles/modulefile.ProdGSI.gaea @@ -1,17 +1,13 @@ #%Module1.0 ###################################################################### -## Russ.Treadon@noaa.gov -## NOAA/NWS/NCEP/EMC -## GDAS_ENKF v6.2.3 +## NOAA-EMC/GSI ##_____________________________________________________ proc ModulesHelp { } { -puts stderr "Set environment veriables for GDAS_ENKF" +puts stderr "Set environment variables for NOAA-EMC/GSI" puts stderr "This module initializes the environment " puts stderr "for the Intel Compiler Suite $version\n" } -module-whatis " GDAS_ENKF whatis description" - -set ver v6.2.3 +module-whatis " NOAA-EMC/GSI whatis description" setenv COMP ftn setenv COMP_MP ftn diff --git a/modulefiles/modulefile.ProdGSI.hera b/modulefiles/modulefile.ProdGSI.hera index b2ac092ced..449f6fc8db 100644 --- a/modulefiles/modulefile.ProdGSI.hera +++ b/modulefiles/modulefile.ProdGSI.hera @@ -1,9 +1,6 @@ #%Module###################################################################### -## Russ.Treadon@noaa.gov -## NOAA/NWS/NCEP/EMC -## GDAS_ENKF v6.2.3 +## NOAA-EMC/GSI ##_____________________________________________________ -#set ver v6.2.3 set COMP ifort set COMP_MP mpfort @@ -17,13 +14,14 @@ set C_COMP_MP mpcc # Load compiler, mpi, cmake, and hdf5/netcdf module load intel/18.0.5.274 + # python -module use -a /contrib/modulefiles +module use -a /contrib/anaconda/modulefiles module load anaconda/2.3.0 module load impi/2018.0.4 -module load contrib +module use -a /contrib/cmake/modulefiles module load cmake/3.9.0 # Load libraries @@ -37,10 +35,12 @@ module load prod_util/1.1.0 module load sfcio/1.1.1 module load sigio/2.1.1 module load sp/2.0.3 -module load w3emc/2.3.1 -module load w3nco/2.0.7 -module load hdf5_parallel/1.10.6 -module load netcdf_parallel/4.7.4 +module load w3emc/2.4.0 +module load w3nco/2.2.0 + +module use /scratch1/NCEPDEV/nems/emc.nemspara/soft/modulefiles +module load hdf5_parallel/1.10.6.release +module load netcdf_parallel/4.7.4.release # Set environmental variables to allow correlated error to reproduce on Hera export MKL_NUM_THREADS=4 diff --git a/modulefiles/modulefile.ProdGSI.jet b/modulefiles/modulefile.ProdGSI.jet index c5ec8fbef6..b6b3d647f9 100644 --- a/modulefiles/modulefile.ProdGSI.jet +++ b/modulefiles/modulefile.ProdGSI.jet @@ -1,14 +1,12 @@ #%Module###################################################################### -## Russ.Treadon@noaa.gov -## NOAA/NWS/NCEP/EMC -## GDAS_ENKF v6.2.3 +## NOAA-EMC/GSI ##_____________________________________________________ #proc ModulesHelp { } { -#puts stderr "Set environment veriables for GSI build with CMake" +#puts stderr "Set environment variables for NOAA-EMC/GSI" #puts stderr "This module initializes the environment " #puts stderr "for the Intel Compiler Suite $version\n" #} -#module-whatis " GDAS_ENKF whatis description" +#module-whatis " NOAA-EMC/GSI whatis description" # # diff --git a/modulefiles/modulefile.ProdGSI.orion b/modulefiles/modulefile.ProdGSI.orion index db8a9f4c7f..bd77412546 100644 --- a/modulefiles/modulefile.ProdGSI.orion +++ b/modulefiles/modulefile.ProdGSI.orion @@ -1,9 +1,6 @@ #%Module###################################################################### -## Russ.Treadon@noaa.gov -## NOAA/NWS/NCEP/EMC -## GDAS_ENKF v6.2.3 +## NOAA-EMC/GSI ##_____________________________________________________ -#set ver v6.2.3 set COMP ifort set COMP_MP mpfort @@ -27,18 +24,19 @@ module load python/3.7.5 # Load libraries module use /apps/contrib/NCEPLIBS/orion/modulefiles module load bacio/2.0.3 +module load bufr/11.3.0 module load crtm/2.3.0 -module load ip/3.1.0 -module load nemsio/2.3.0 +module load ip/3.0.2 +module load nemsio/2.2.4 module load prod_util/1.2.0 -module load sfcio/1.2.0 -module load sigio/2.2.0 -module load sp/2.1.0 -module load w3emc/2.5.0 -module load w3nco/2.1.0 -module load bufr/11.3.0 -module load netcdf_parallel/4.7.4 -module load hdf5_parallel/1.10.6 +module load sfcio/1.1.1 +module load sigio/2.1.1 +module load sp/2.0.3 +module load w3emc/2.4.0 +module load w3nco/2.0.7 + +module use /apps/contrib/NCEPLIBS/lib/modulefiles +module load netcdfp/4.7.4.release # Fix MKL threads for reproducible global_gsi.x with correlated obs error #export MKL_NUM_THREADS=4 diff --git a/modulefiles/modulefile.ProdGSI.s4 b/modulefiles/modulefile.ProdGSI.s4 index 3db2ec137d..8d79798e57 100644 --- a/modulefiles/modulefile.ProdGSI.s4 +++ b/modulefiles/modulefile.ProdGSI.s4 @@ -1,9 +1,6 @@ #%Module###################################################################### -## Russ.Treadon@noaa.gov -## NOAA/NWS/NCEP/EMC -## GDAS_ENKF v6.2.3 +## NOAA-EMC/GSI ##_____________________________________________________ -#set ver v6.2.3 set COMP ifort set COMP_MP mpfort diff --git a/modulefiles/modulefile.ProdGSI.wcoss b/modulefiles/modulefile.ProdGSI.wcoss index 88467187cc..951a91efea 100644 --- a/modulefiles/modulefile.ProdGSI.wcoss +++ b/modulefiles/modulefile.ProdGSI.wcoss @@ -1,16 +1,12 @@ #%Module###################################################################### -## Russ.Treadon@noaa.gov -## NOAA/NWS/NCEP/EMC -## GDAS_ENKF v6.2.3 +## NOAA-EMC/GSI ##_____________________________________________________ proc ModulesHelp { } { -puts stderr "Set environment veriables for GDAS_ENKF" +puts stderr "Set environment variables for NOAA-EMC/GSI" puts stderr "This module initializes the environment " puts stderr "for the Intel Compiler Suite $version\n" } -module-whatis " GDAS_ENKF whatis description" - -set ver v6.2.3 +module-whatis " NOAA-EMC/GSI whatis description" setenv COMP ifort setenv COMP_MP mpfort diff --git a/modulefiles/modulefile.ProdGSI.wcoss_c b/modulefiles/modulefile.ProdGSI.wcoss_c index 8f901f02bd..f175a7bc8a 100644 --- a/modulefiles/modulefile.ProdGSI.wcoss_c +++ b/modulefiles/modulefile.ProdGSI.wcoss_c @@ -1,16 +1,12 @@ #%Module###################################################################### -## Russ.Treadon@noaa.gov -## NOAA/NWS/NCEP/EMC -## GDAS_ENKF v6.2.3 +## NOAA-EMC/GSI ##_____________________________________________________ proc ModulesHelp { } { -puts stderr "Set environment veriables for GDAS_ENKF" +puts stderr "Set environment variables for NOAA-EMC/GSI" puts stderr "This module initializes the environment " puts stderr "for the Intel Compiler Suite $version\n" } -module-whatis " GDAS_ENKF whatis description" - -set ver v6.2.3 +module-whatis " NOAA-EMC/GSI whatis description" setenv COMP ftn setenv COMP_MP ftn @@ -32,10 +28,10 @@ setenv WRF_SHARED_PATH ${WRF_SHARED_ROOT}.${WRF_SHARED_VER}-${COMPILER} # Loading ncep environment module load ncep/1.0 -module load prod_util/1.0.29 +module load prod_util/1.1.2 # Loading Intel Compiler Suite -module load PrgEnv-intel/5.2.56 +module load PrgEnv-intel/5.2.82 module unload intel/15.0.3.187 module load intel/18.1.163 @@ -43,31 +39,23 @@ module load intel/18.1.163 module load craype-sandybridge module load cray-mpich/7.2.0 -module use /usrx/local/dev/modulefiles module load cmake/3.6.2 -module unuse /usrx/local/dev/modulefiles # Loading netcdf modules -module use /usrx/local/dev/modulefiles -module load NetCDF-intel-sandybridge/4.7.4 module load HDF5-parallel-intel-sandybridge/1.10.6 +module load NetCDF-intel-sandybridge/4.7.4 # Loading nceplibs modules -module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module load bufr-intel/11.0.1 -module load ip-intel/3.0.0 -module load nemsio-intel/2.2.2 +module load bufr-intel/11.3.0 +module load ip-intel/3.0.2 +module load nemsio-intel/2.2.4 module load sfcio-intel/1.0.0 module load sigio-intel/2.1.0 -module load sp-intel/2.0.2 -module load w3nco-intel/2.0.6 -module load w3emc-intel/2.2.0 - -module use /usrx/local/nceplibs/modulefiles -module load bacio-intel/2.0.2 - -module use -a /usrx/local/nceplibs/NCEPLIBS/modulefiles -module load crtm/2.3.0 +module load sp-intel/2.0.3 +module load w3nco-intel/2.2.0 +module load w3emc-intel/2.4.0 +module load bacio-intel/2.0.3 +module load crtm-intel/2.3.0 # Loading python module load python/3.6.3 diff --git a/modulefiles/modulefile.ProdGSI.wcoss_d b/modulefiles/modulefile.ProdGSI.wcoss_d index 69fe0a4108..bd2ce7009c 100644 --- a/modulefiles/modulefile.ProdGSI.wcoss_d +++ b/modulefiles/modulefile.ProdGSI.wcoss_d @@ -1,16 +1,12 @@ #%Module###################################################################### -# Russ.Treadon@noaa.gov -# NOAA/NWS/NCEP/EMC -# GDAS_ENKF v6.2.3 +# NOAA-EMC/GSI #_____________________________________________________ #proc ModulesHelp { } { -#puts stderr "Set environment veriables for GDAS_ENKF" +#puts stderr "Set environment variables for NOAA-EMC/GSI" #puts stderr "This module initializes the environment " #puts stderr "for the Intel Compiler Suite $version\n" ##} -#module-whatis " GDAS_ENKF whatis description" - -#set ver v6.2.3 +#module-whatis " NOAA-EMC/GSI whatis description" set COMP ifort set COMP_MPI mpiifort @@ -19,38 +15,37 @@ set C_COMP icc # Known conflicts -# Loading pe environment +# Load pe environment module load lsf/10.1 -# Loading Intel Compiler Suite +# Load Intel Compiler Suite module load ips/18.0.1.163 -# Loading intel mpi +# Load Intel mpi module load impi/18.0.1 -# Loading production utilities (ndate) -module load prod_util/1.1.0 +# Load production utilities +module load prod_util/1.1.5 -# Loading nceplibs modules +# Load nceplibs modules module load bufr/11.3.0 -module load ip/3.0.1 -module load nemsio/2.2.3 +module load ip/3.0.2 +module load nemsio/2.2.4 module load sfcio/1.0.0 module load sigio/2.1.0 -module load sp/2.0.2 -module load w3nco/2.0.6 -module load w3emc/2.3.0 -module load bacio/2.0.2 +module load sp/2.0.3 +module load w3nco/2.2.0 +module load w3emc/2.4.0 +module load bacio/2.0.3 +module load crtm/2.3.0 -# Loading cmake +# Load cmake module load cmake/3.10.0 -# Loading python +# Load python module load python/3.6.3 -# Load modules from nceplibs (until installed by NCO) -module use -a /usrx/local/nceplibs/dev/NCEPLIBS/modulefiles -module load crtm/2.3.0 -module load hdf5_parallel/1.10.6 -module load netcdf_parallel/4.7.4 +# Load netcdf and hdf +module load NetCDF-parallel/4.7.4 +module load HDF5-parallel/1.10.6 diff --git a/scripts/exgdas_atmos_chgres_forenkf.sh b/scripts/exgdas_atmos_chgres_forenkf.sh new file mode 100755 index 0000000000..bb131c4276 --- /dev/null +++ b/scripts/exgdas_atmos_chgres_forenkf.sh @@ -0,0 +1,217 @@ +#!/bin/ksh +################################################################################ +#### UNIX Script Documentation Block +# . . +# Script name: exgdas_atmos_chgres_forenkf.sh +# Script description: Runs chgres on full-resolution forecast for EnKF recentering +# +# Author: Cory Martin Org: NCEP/EMC Date: 2020-06-08 +# +# Abstract: This script runs chgres on full-resolution forecast for later +# use in the EnKF recentering step +# +# $Id$ +# +# Attributes: +# Language: POSIX shell +# Machine: WCOSS-Dell / Hera +# +################################################################################ + +# Set environment. +export VERBOSE=${VERBOSE:-"YES"} +if [ $VERBOSE = "YES" ]; then + echo $(date) EXECUTING $0 $* >&2 + set -x +fi + +# Directories. +pwd=$(pwd) +export FIXgsm=${FIXgsm:-$HOMEgfs/fix/fix_am} + +# Base variables +CDATE=${CDATE:-"2001010100"} +CDUMP=${CDUMP:-"gdas"} +GDUMP=${GDUMP:-"gdas"} + +# Derived base variables +GDATE=$($NDATE -$assim_freq $CDATE) +BDATE=$($NDATE -3 $CDATE) +PDY=$(echo $CDATE | cut -c1-8) +cyc=$(echo $CDATE | cut -c9-10) +bPDY=$(echo $BDATE | cut -c1-8) +bcyc=$(echo $BDATE | cut -c9-10) + +# Utilities +export NCP=${NCP:-"/bin/cp"} +export NMV=${NMV:-"/bin/mv"} +export NLN=${NLN:-"/bin/ln -sf"} +export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} +export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} + +# IAU +DOIAU=${DOIAU:-"NO"} +export IAUFHRS=${IAUFHRS:-"6"} + +# Dependent Scripts and Executables +export APRUN_CHGRES=${APRUN_CHGRES:-${APRUN:-""}} +export CHGRESNCEXEC=${CHGRESNCEXEC:-$HOMEgfs/exec/enkf_chgres_recenter_nc.x} +export NTHREADS_CHGRES=${NTHREADS_CHGRES:-1} +APRUNCFP=${APRUNCFP:-""} + +# OPS flags +RUN=${RUN:-""} +SENDECF=${SENDECF:-"NO"} +SENDDBN=${SENDDBN:-"NO"} + +# level info file +SIGLEVEL=${SIGLEVEL:-${FIXgsm}/global_hyblev.l${LEVS}.txt} + +# forecast files +APREFIX=${APREFIX:-""} +ASUFFIX=${ASUFFIX:-$SUFFIX} +# at full resolution +ATMF03=${ATMF03:-${COMOUT}/${APREFIX}atmf003${ASUFFIX}} +ATMF04=${ATMF04:-${COMOUT}/${APREFIX}atmf004${ASUFFIX}} +ATMF05=${ATMF05:-${COMOUT}/${APREFIX}atmf005${ASUFFIX}} +ATMF06=${ATMF06:-${COMOUT}/${APREFIX}atmf006${ASUFFIX}} +ATMF07=${ATMF07:-${COMOUT}/${APREFIX}atmf007${ASUFFIX}} +ATMF08=${ATMF08:-${COMOUT}/${APREFIX}atmf008${ASUFFIX}} +ATMF09=${ATMF09:-${COMOUT}/${APREFIX}atmf009${ASUFFIX}} +# at ensemble resolution +ATMF03ENS=${ATMF03ENS:-${COMOUT}/${APREFIX}atmf003.ensres${ASUFFIX}} +ATMF04ENS=${ATMF04ENS:-${COMOUT}/${APREFIX}atmf004.ensres${ASUFFIX}} +ATMF05ENS=${ATMF05ENS:-${COMOUT}/${APREFIX}atmf005.ensres${ASUFFIX}} +ATMF06ENS=${ATMF06ENS:-${COMOUT}/${APREFIX}atmf006.ensres${ASUFFIX}} +ATMF07ENS=${ATMF07ENS:-${COMOUT}/${APREFIX}atmf007.ensres${ASUFFIX}} +ATMF08ENS=${ATMF08ENS:-${COMOUT}/${APREFIX}atmf008.ensres${ASUFFIX}} +ATMF09ENS=${ATMF09ENS:-${COMOUT}/${APREFIX}atmf009.ensres${ASUFFIX}} +ATMFCST_ENSRES=${ATMFCST_ENSRES:-${COMOUT_ENS}/mem001/${APREFIX}atmf006${ASUFFIX}} + +# Set script / GSI control parameters +DOHYBVAR=${DOHYBVAR:-"NO"} +lrun_subdirs=${lrun_subdirs:-".true."} +USE_CFP=${USE_CFP:-"NO"} +CFP_MP=${CFP_MP:-"NO"} +nm="" +if [ $CFP_MP = "YES" ]; then + nm=0 +fi +if [ $DOHYBVAR = "YES" ]; then + l_hyb_ens=.true. + export l4densvar=${l4densvar:-".false."} + export lwrite4danl=${lwrite4danl:-".false."} +else + echo "DOHYBVAR != YES, this script will exit without regridding deterministic forecast" + exit 0 +fi + +################################################################################ +################################################################################ +# Preprocessing +mkdata=NO +if [ ! -d $DATA ]; then + mkdata=YES + mkdir -p $DATA +fi + +cd $DATA || exit 99 + +############################################################## +# get resolution information +LONB_ENKF=${LONB_ENKF:-$($NCLEN $ATMFCST_ENSRES grid_xt)} # get LONB_ENKF +LATB_ENKF=${LATB_ENKF:-$($NCLEN $ATMFCST_ENSRES grid_yt)} # get LATB_ENFK +LEVS_ENKF=${LEVS_ENKF:-$($NCLEN $ATMFCST_ENSRES pfull)} # get LATB_ENFK + +############################################################## +# If analysis increment is written by GSI, regrid forecasts to increment resolution +if [ $DO_CALC_ANALYSIS == "YES" ]; then + $NLN $ATMF06 fcst.06 + $NLN $ATMF06ENS fcst.ensres.06 + $NLN $ATMFCST_ENSRES atmens_fcst + if [ $DOHYBVAR = "YES" -a $l4densvar = ".true." -a $lwrite4danl = ".true." ]; then + $NLN $ATMF03 fcst.03 + $NLN $ATMF03ENS fcst.ensres.03 + $NLN $ATMF04 fcst.04 + $NLN $ATMF04ENS fcst.ensres.04 + $NLN $ATMF05 fcst.05 + $NLN $ATMF05ENS fcst.ensres.05 + $NLN $ATMF07 fcst.07 + $NLN $ATMF07ENS fcst.ensres.07 + $NLN $ATMF08 fcst.08 + $NLN $ATMF08ENS fcst.ensres.08 + $NLN $ATMF09 fcst.09 + $NLN $ATMF09ENS fcst.ensres.09 + fi + export OMP_NUM_THREADS=$NTHREADS_CHGRES + SIGLEVEL=${SIGLEVEL:-${FIXgsm}/global_hyblev.l${LEVS_ENKF}.txt} + + if [ $USE_CFP = "YES" ]; then + [[ -f $DATA/mp_chgres.sh ]] && rm $DATA/mp_chgres.sh + fi + + nfhrs=`echo $IAUFHRS_ENKF | sed 's/,/ /g'` + for FHR in $nfhrs; do + echo "Regridding deterministic forecast for forecast hour $FHR" + rm -f chgres_nc_gauss0$FHR.nml +cat > chgres_nc_gauss0$FHR.nml << EOF +&chgres_setup +i_output=$LONB_ENKF +j_output=$LATB_ENKF +input_file="fcst.0$FHR" +output_file="fcst.ensres.0$FHR" +terrain_file="atmens_fcst" +ref_file="atmens_fcst" +/ +EOF + if [ $USE_CFP = "YES" ]; then + echo "$nm $APRUN_CHGRES $CHGRESNCEXEC chgres_nc_gauss0$FHR.nml" | tee -a $DATA/mp_chgres.sh + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nm=$((nm+1)) + fi + else + + export pgm=$CHGRESNCEXEC + . prep_step + + $APRUN_CHGRES $CHGRESNCEXEC chgres_nc_gauss0$FHR.nml + rc=$? + export ERR=$rc + export err=$ERR + $ERRSCRIPT || exit 1 + fi + done + + if [ $USE_CFP = "YES" ]; then + chmod 755 $DATA/mp_chgres.sh + ncmd=$(cat $DATA/mp_chgres.sh | wc -l) + if [ $ncmd -gt 0 ]; then + ncmd_max=$((ncmd < npe_node_max ? ncmd : npe_node_max)) + APRUNCFP_CHGRES=$(eval echo $APRUNCFP) + + export pgm=$CHGRESNCEXEC + . prep_step + + $APRUNCFP_CHGRES $DATA/mp_chgres.sh + export ERR=$? + export err=$ERR + $ERRSCRIPT || exit 3 + fi + fi + +else + echo "DO_CALC_ANALYSIS != YES, doing nothing" +fi + + +################################################################################ +# Postprocessing +cd $pwd +[[ $mkdata = "YES" ]] && rm -rf $DATA + +set +x +if [ $VERBOSE = "YES" ]; then + echo $(date) EXITING $0 with return code $err >&2 +fi +exit $err diff --git a/scripts/exglobal_enkf_recenter_fv3gfs.sh.ecf b/scripts/exgdas_enkf_ecen.sh similarity index 88% rename from scripts/exglobal_enkf_recenter_fv3gfs.sh.ecf rename to scripts/exgdas_enkf_ecen.sh index 707fcc3141..645baa3f7c 100755 --- a/scripts/exglobal_enkf_recenter_fv3gfs.sh.ecf +++ b/scripts/exgdas_enkf_ecen.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_enkf_recenter_fv3gfs.sh.ecf +# Script name: exgdas_enkf_ecen.sh # Script description: recenter ensemble around hi-res deterministic analysis # # Author: Rahul Mahajan Org: NCEP/EMC Date: 2017-03-02 @@ -26,22 +26,10 @@ fi # Directories. pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD} -HOMEgsi=${HOMEgsi:-$NWPROD} -export DATA=${DATA:-$pwd} -COMIN=${COMIN:-$pwd} -COMIN_ENS=${COMIN_ENS:-$COMIN} -COMIN_OBS=${COMIN_OBS:-$COMIN} -COMIN_GES=${COMIN_GES:-$COMIN} -COMIN_GES_ENS=${COMIN_GES_ENS:-$COMIN_ENS} -COMIN_GES_OBS=${COMIN_GES_OBS:-$COMIN_GES} -COMOUT=${COMOUT:-$COMIN} -COMOUT_ENS=${COMOUT_ENS:-$COMIN_ENS} +# Base variables CDATE=${CDATE:-"2010010100"} DONST=${DONST:-"NO"} - export CASE=${CASE:-384} ntiles=${ntiles:-6} @@ -55,11 +43,11 @@ NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} # Scripts # Executables. -GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-$HOMEgsi/exec/getsigensmeanp_smooth.x} -GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-$HOMEgsi/exec/getsfcensmeanp.x} -RECENATMEXEC=${RECENATMEXEC:-$HOMEgsi/exec/recentersigp.x} -CALCINCNEMSEXEC=${CALCINCNEMSEXEC:-$HOMEgsi/exec/calc_increment_ens.x} -CALCINCNCEXEC=${CALCINCEXEC:-$HOMEgsi/exec/calc_increment_ens_ncio.x} +GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-$HOMEgfs/exec/getsigensmeanp_smooth.x} +GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-$HOMEgfs/exec/getsfcensmeanp.x} +RECENATMEXEC=${RECENATMEXEC:-$HOMEgfs/exec/recentersigp.x} +CALCINCNEMSEXEC=${CALCINCNEMSEXEC:-$HOMEgfs/exec/calc_increment_ens.x} +CALCINCNCEXEC=${CALCINCEXEC:-$HOMEgfs/exec/calc_increment_ens_ncio.x} # Files. OPREFIX=${OPREFIX:-""} @@ -83,8 +71,8 @@ DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"} # global_chgres stuff -CHGRESNEMS=${CHGRESNEMS:-$HOMEgfs/exec/chgres_recenter.exe} -CHGRESNC=${CHGRESNC:-$HOMEgfs/exec/chgres_recenter_ncio.exe} +CHGRESNEMS=${CHGRESNEMS:-$HOMEgfs/exec/enkf_chgres_recenter.x} +CHGRESNC=${CHGRESNC:-$HOMEgfs/exec/enkf_chgres_recenter_nc.x} NTHREADS_CHGRES=${NTHREADS_CHGRES:-24} APRUN_CHGRES=${APRUN_CHGRES:-""} @@ -171,6 +159,8 @@ if [ $DO_CALC_INCREMENT = "YES" ]; then ATMANLMEANNAME="atmanl_ensmean" export OMP_NUM_THREADS=$NTHREADS_ECEN + export pgm=$GETATMENSMEANEXEC + . prep_step $NCP $GETATMENSMEANEXEC $DATA $APRUN_ECEN ${DATA}/$(basename $GETATMENSMEANEXEC) $DATAPATH $ATMANLMEANNAME $ATMANLNAME $NMEM_ENKF @@ -193,6 +183,8 @@ else ATMINCMEANNAME="atminc_ensmean" export OMP_NUM_THREADS=$NTHREADS_ECEN + export pgm=$GETATMENSMEANEXEC + . prep_step $NCP $GETATMENSMEANEXEC $DATA $APRUN_ECEN ${DATA}/$(basename $GETATMENSMEANEXEC) $DATAPATH $ATMINCMEANNAME $ATMINCNAME $NMEM_ENKF @@ -211,6 +203,8 @@ else ATMGESMEANNAME="atmges_ensmean" export OMP_NUM_THREADS=$NTHREADS_ECEN + export pgm=$GETATMENSMEANEXEC + . prep_step $NCP $GETATMENSMEANEXEC $DATA $APRUN_ECEN ${DATA}/$(basename $GETATMENSMEANEXEC) $DATAPATH $ATMGESMEANNAME $ATMGESNAME $NMEM_ENKF @@ -277,7 +271,7 @@ if [ $RECENTER_ENKF = "YES" ]; then export OMP_NUM_THREADS=$NTHREADS_CHGRES - rm -f $chgresnml + [[ -f $chgresnml ]] && rm -f $chgresnml cat > $chgresnml << EOF &${nmltitle}_setup i_output=$LONB_ENKF @@ -308,6 +302,8 @@ EOF FILENAMEOUT="ratmanl" export OMP_NUM_THREADS=$NTHREADS_ECEN + export pgm=$RECENATMEXEC + . prep_step $NCP $RECENATMEXEC $DATA $APRUN_ECEN ${DATA}/$(basename $RECENATMEXEC) $FILENAMEIN $FILENAME_MEANIN $FILENAME_MEANOUT $FILENAMEOUT $NMEM_ENKF @@ -317,13 +313,6 @@ EOF export err=$ERR $ERRSCRIPT || exit 2 - # Optionally alert recentered files - if [ ${SENDDBN:-"NO"} = "YES" ]; then - for imem in $(seq 1 $NMEM_ENKF); do - memchar="mem"$(printf %03i $imem) - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT_ENS/$memchar/${APREFIX}ratmanl$ASUFFIX - done - fi else ################################################################################ # Recenter ensemble member atmospheric increments about hires analysis @@ -338,7 +327,7 @@ EOF # make the small namelist file for incvars_to_zero - rm recenter.nml + [[ -f recenter.nml ]] && rm recenter.nml cat > recenter.nml << EOF &recenter incvars_to_zero = $INCREMENTS_TO_ZERO @@ -346,6 +335,9 @@ EOF EOF cat recenter.nml + export pgm=$RECENATMEXEC + . prep_step + $NCP $RECENATMEXEC $DATA $APRUN_ECEN ${DATA}/$(basename $RECENATMEXEC) $FILENAMEIN $FILENAME_INCMEANIN $FILENAME_GSIDET $FILENAMEOUT $NMEM_ENKF $FILENAME_GESMEANIN rc=$? @@ -354,13 +346,6 @@ cat recenter.nml export err=$ERR $ERRSCRIPT || exit 2 - # Optionally alert recentered files - if [ ${SENDDBN:-"NO"} = "YES" ]; then - for imem in $(seq 1 $NMEM_ENKF); do - memchar="mem"$(printf %03i $imem) - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT_ENS/$memchar/${APREFIX}ratminc$ASUFFIX - done - fi fi fi @@ -375,11 +360,14 @@ if [ $DO_CALC_INCREMENT = "YES" ]; then export OMP_NUM_THREADS=$NTHREADS_CALCINC if [ ${SUFFIX} = ".nc" ]; then - CALCINCEXEC=$CALCINCNCEXEC else CALCINCEXEC=$CALCINCNEMSEXEC fi + + export pgm=$CALCINCEXEC + . prep_step + $NCP $CALCINCEXEC $DATA rm calc_increment.nml diff --git a/scripts/exglobal_enkf_fcst_fv3gfs.sh.ecf b/scripts/exgdas_enkf_fcst.sh similarity index 93% rename from scripts/exglobal_enkf_fcst_fv3gfs.sh.ecf rename to scripts/exgdas_enkf_fcst.sh index 11b7a0a5b0..45da2d4e78 100755 --- a/scripts/exglobal_enkf_fcst_fv3gfs.sh.ecf +++ b/scripts/exgdas_enkf_fcst.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_enkf_fcst_fv3gfs.sh.ecf +# Script name: exgdas_enkf_fcst.sh # Script description: Run ensemble forecasts # # Author: Rahul Mahajan Org: NCEP/EMC Date: 2017-03-02 @@ -27,15 +27,8 @@ fi # Directories. pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD} export FIX_DIR=${FIX_DIR:-$HOMEgfs/fix} export FIX_AM=${FIX_AM:-$FIX_DIR/fix_am} -export DATA=${DATA:-$pwd/enkf_fcst.$$} -export COMIN=${COMIN:-$pwd} -export COMOUT=${COMOUT:-$COMIN} - -GSUFFIX=${GSUFFIX:-$SUFFIX} # Utilities export NCP=${NCP:-"/bin/cp -p"} @@ -45,7 +38,7 @@ export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} export NDATE=${NDATE:-/$NWPROD/util/exec/ndate} # Scripts. -FORECASTSH=${FORECASTSH:-$HOMEgfs/scripts/exglobal_fcst_nemsfv3gfs.sh.ecf} +FORECASTSH=${FORECASTSH:-$HOMEgfs/scripts/exglobal_forecast.sh} # Enemble group, begin and end ENSGRP=${ENSGRP:-1} @@ -74,6 +67,7 @@ export PREFIX_ATMINC=${PREFIX_ATMINC:-""} # Ops related stuff SENDECF=${SENDECF:-"NO"} SENDDBN=${SENDDBN:-"NO"} +GSUFFIX=${GSUFFIX:-$SUFFIX} ################################################################################ # Preprocessing @@ -196,7 +190,7 @@ for imem in $(seq $ENSBEG $ENSEND); do while [ $fhr -le $FHMAX ]; do FH3=$(printf %03i $fhr) if [ $(expr $fhr % 3) -eq 0 ]; then - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT/$memchar/${CDUMP}.t${cyc}z.sfcf${FH3}.${GSUFFIX} + $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT/$memchar/${CDUMP}.t${cyc}z.sfcf${FH3}${GSUFFIX} fi fhr=$((fhr+FHOUT)) done @@ -204,14 +198,21 @@ for imem in $(seq $ENSBEG $ENSEND); do cd $DATATOP - $NCP $EFCSGRP log_old - rm log log_new + if [ -s $EFCSGRP ]; then + $NCP $EFCSGRP log_old + fi + [[ -f log ]] && rm log + [[ -f log_new ]] && rm log_new if [ $ra -ne 0 ]; then echo "MEMBER $cmem : FAIL" > log else echo "MEMBER $cmem : PASS" > log fi - cat log_old log > log_new + if [ -s log_old ] ; then + cat log_old log > log_new + else + cat log > log_new + fi $NCP log_new $EFCSGRP done @@ -221,7 +222,7 @@ done cd $DATATOP echo "Status of ensemble members in group $ENSGRP:" cat $EFCSGRP -rm ${EFCSGRP}.fail +[[ -f ${EFCSGRP}.fail ]] && rm ${EFCSGRP}.fail ################################################################################ # If any members failed, error out diff --git a/scripts/exglobal_enkf_post_fv3gfs.sh.ecf b/scripts/exgdas_enkf_post.sh similarity index 87% rename from scripts/exglobal_enkf_post_fv3gfs.sh.ecf rename to scripts/exgdas_enkf_post.sh index b46f46ff82..32e709dc2f 100755 --- a/scripts/exglobal_enkf_post_fv3gfs.sh.ecf +++ b/scripts/exgdas_enkf_post.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_enkf_post_fv3gfs.sh.ecf +# Script name: exgdas_enkf_post.sh # Script description: Global ensemble forecast post processing # # Author: Rahul Mahajan Org: NCEP/EMC Date: 2017-03-02 @@ -26,12 +26,6 @@ fi # Directories. pwd=$(pwd) -NWPROD=${NWPROD:-$pwd} -HOMEgsi=${HOMEgsi:-$NWPROD} -FIXgsi=${FIXgsi:-$HOMEgsi/fix} -DATA=${DATA:-$pwd} -COMIN=${COMIN:-$pwd} -COMOUT=${COMOUT:-$COMIN} # Utilities ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} @@ -49,8 +43,8 @@ LEVS=${LEVS:-64} HYBENSMOOTH=${HYBENSMOOTH:-$FIXgsi/global_hybens_smoothinfo.l${LEVS}.txt} # Executables. -GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-$HOMEgsi/exec/getsigensmeanp_smooth.x} -GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-$HOMEgsi/exec/getsfcensmeanp.x} +GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-$HOMEgfs/exec/getsigensmeanp_smooth.x} +GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-$HOMEgfs/exec/getsfcensmeanp.x} # Other variables. PREFIX=${PREFIX:-""} @@ -109,15 +103,22 @@ done ################################################################################ # Generate ensemble mean surface and atmospheric files -rm ./hybens_smoothinfo [[ $SMOOTH_ENKF = "YES" ]] && $NCP $HYBENSMOOTH ./hybens_smoothinfo rc=0 for fhr in $(seq $FHMIN $FHOUT $FHMAX); do fhrchar=$(printf %03i $fhr) + + export pgm=$GETSFCENSMEANEXEC + . prep_step + $APRUN_EPOS ${DATA}/$(basename $GETSFCENSMEANEXEC) ./ sfcf${fhrchar}.ensmean sfcf${fhrchar} $NMEM_ENKF ra=$? ((rc+=ra)) + + export_pgm=$GETATMENSMEANEXEC + . prep_step + if [ $ENKF_SPREAD = "YES" ]; then $APRUN_EPOS ${DATA}/$(basename $GETATMENSMEANEXEC) ./ atmf${fhrchar}.ensmean atmf${fhrchar} $NMEM_ENKF atmf${fhrchar}.ensspread else @@ -159,15 +160,6 @@ if [ $SENDDBN = "YES" ]; then fi done -# Maintain gfs.v14 dbn_alerts of 6 and 9 hour EnKF forecasts - if [ $FHMIN -eq 6 -o $FHMIN -eq 9 ]; then - fhrchar=$(printf %03i $FHMIN) - for imem in $(seq 1 $NMEM_ENKF); do - memchar="mem"$(printf %03i $imem) - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT/$memchar/${PREFIX}atmf${fhrchar}${ENKF_SUFFIX}${SUFFIX} - done - fi - fi ################################################################################ diff --git a/scripts/exglobal_innovate_obs_fv3gfs.sh.ecf b/scripts/exgdas_enkf_select_obs.sh similarity index 92% rename from scripts/exglobal_innovate_obs_fv3gfs.sh.ecf rename to scripts/exgdas_enkf_select_obs.sh index e7e888c38e..5298398e4f 100755 --- a/scripts/exglobal_innovate_obs_fv3gfs.sh.ecf +++ b/scripts/exgdas_enkf_select_obs.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_innovate_obs_fv3gfs.sh.ecf +# Script name: exgdas_enkf_select_obs.sh # Script description: Compute global_gsi innovations # # Author: Rahul Mahajan Org: NCEP/EMC Date: 2017-03-02 @@ -26,19 +26,13 @@ fi # Directories. pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgsi=${HOMEgsi:-$NWPROD} -export DATA=${DATA:-$pwd/innovate_obs.$$} -export COMIN=${COMIN:-$pwd} -export COMIN_GES=${COMIN_GES:-$COMIN} -export COMOUT=${COMOUT:-$COMIN} # Utilities export NLN=${NLN:-"/bin/ln -sf"} export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} # Scripts. -ANALYSISSH=${ANALYSISSH:-$HOMEgsi/scripts/exglobal_analysis_fv3gfs.sh.ecf} +ANALYSISSH=${ANALYSISSH:-$HOMEgfs/scripts/exglobal_atmos_analysis.sh} # Prefix and Suffix Variables. export APREFIX=${APREFIX:-""} diff --git a/scripts/exglobal_enkf_surface_fv3gfs.sh.ecf b/scripts/exgdas_enkf_sfc.sh similarity index 93% rename from scripts/exglobal_enkf_surface_fv3gfs.sh.ecf rename to scripts/exgdas_enkf_sfc.sh index f4dd0a1e19..f5ff74a824 100755 --- a/scripts/exglobal_enkf_surface_fv3gfs.sh.ecf +++ b/scripts/exgdas_enkf_sfc.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_enkf_surface_fv3gfs.sh.ecf +# Script name: exgdas_enkf_sfc.sh # Script description: generate ensemble surface analyses on tiles # # Author: Rahul Mahajan Org: NCEP/EMC Date: 2017-03-02 @@ -26,23 +26,11 @@ fi # Directories. pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD} -HOMEgsi=${HOMEgsi:-$NWPROD} -export DATA=${DATA:-$pwd} -COMIN=${COMIN:-$pwd} -COMIN_ENS=${COMIN_ENS:-$COMIN} -COMIN_OBS=${COMIN_OBS:-$COMIN} -COMIN_GES=${COMIN_GES:-$COMIN} -COMIN_GES_ENS=${COMIN_GES_ENS:-$COMIN_ENS} -COMIN_GES_OBS=${COMIN_GES_OBS:-$COMIN_GES} -COMOUT=${COMOUT:-$COMIN} -COMOUT_ENS=${COMOUT_ENS:-$COMIN_ENS} +# Base variables CDATE=${CDATE:-"2010010100"} DONST=${DONST:-"NO"} DOSFCANL_ENKF=${DOSFCANL_ENKF:-"YES"} - export CASE=${CASE:-384} ntiles=${ntiles:-6} diff --git a/scripts/exglobal_enkf_update_fv3gfs.sh.ecf b/scripts/exgdas_enkf_update.sh similarity index 94% rename from scripts/exglobal_enkf_update_fv3gfs.sh.ecf rename to scripts/exgdas_enkf_update.sh index 24d273813f..6e8186a55a 100755 --- a/scripts/exglobal_enkf_update_fv3gfs.sh.ecf +++ b/scripts/exgdas_enkf_update.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_enkf_update_fv3gfs.sh.ecf +# Script name: exgdas_enkf_update.sh # Script description: Make global_enkf update # # Author: Rahul Mahajan Org: NCEP/EMC Date: 2017-03-02 @@ -26,14 +26,6 @@ fi # Directories. pwd=$(pwd) -NWPROD=${NWPROD:-$pwd} -HOMEgsi=${HOMEgsi:-$NWPROD} -FIXgsi=${FIXgsi:-$HOMEgsi/fix} -DATA=${DATA:-$pwd/enkf_update.$$} -COMIN=${COMIN:-$pwd} -COMIN_GES_ENS=${COMIN_GES_ENS:-$COMIN} -COMOUT=${COMOUT:-$COMIN} -COMOUT_ANL_ENS=${COMOUT_ANL_ENS:-$COMOUT} # Utilities NCP=${NCP:-"/bin/cp -p"} @@ -42,12 +34,17 @@ ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} NEMSIOGET=${NEMSIOGET:-$NWPROD/utils/exec/nemsio_get} NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} USE_CFP=${USE_CFP:-"NO"} +CFP_MP=${CFP_MP:-"NO"} +nm="" +if [ $CFP_MP = "YES" ]; then + nm=0 +fi APRUNCFP=${APRUNCFP:-""} APRUN_ENKF=${APRUN_ENKF:-${APRUN:-""}} NTHREADS_ENKF=${NTHREADS_ENKF:-${NTHREADS:-1}} # Executables -ENKFEXEC=${ENKFEXEC:-$HOMEgsi/exec/global_enkf.x} +ENKFEXEC=${ENKFEXEC:-$HOMEgfs/exec/global_enkf.x} # Cycling and forecast hour specific parameters CDATE=${CDATE:-"2001010100"} @@ -143,13 +140,6 @@ if [ ! -d $DATA ]; then fi cd $DATA || exit 99 -################################################################################ -# Clean up the run directory -rm convinfo satinfo ozinfo hybens_info anavinfo -rm satbias_angle satbias_in -rm enkf.nml -rm sanl* - ################################################################################ # Fixed files $NLN $SATANGL satbias_angle @@ -167,7 +157,8 @@ $NLN $COMOUT_ANL_ENS/$GBIASe satbias_in ################################################################################ if [ $USE_CFP = "YES" ]; then - rm $DATA/untar.sh $DATA/mp_untar.sh + [[ -f $DATA/untar.sh ]] && rm $DATA/untar.sh + [[ -f $DATA/mp_untar.sh ]] && rm $DATA/mp_untar.sh set +x cat > $DATA/untar.sh << EOFuntar #!/bin/sh @@ -191,7 +182,10 @@ fi flist="$CNVSTAT $OZNSTAT $RADSTAT" if [ $USE_CFP = "YES" ]; then - echo "$DATA/untar.sh ensmean" | tee -a $DATA/mp_untar.sh + echo "$nm $DATA/untar.sh ensmean" | tee -a $DATA/mp_untar.sh + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nm=$((nm+1)) + fi else for ftype in $flist; do fname=$COMOUT_ANL_ENS/${ftype}.ensmean @@ -203,7 +197,10 @@ for imem in $(seq 1 $NMEM_ENKF); do memchar="mem"$(printf %03i $imem) if [ $lobsdiag_forenkf = ".false." ]; then if [ $USE_CFP = "YES" ]; then - echo "$DATA/untar.sh $memchar" | tee -a $DATA/mp_untar.sh + echo "$nm $DATA/untar.sh $memchar" | tee -a $DATA/mp_untar.sh + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nm=$((nm+1)) + fi else for ftype in $flist; do fname=$COMOUT_ANL_ENS/$memchar/$ftype @@ -248,10 +245,9 @@ if [ $USE_CFP = "YES" ]; then ncmd_max=$((ncmd < npe_node_max ? ncmd : npe_node_max)) APRUNCFP=$(eval echo $APRUNCFP) $APRUNCFP $DATA/mp_untar.sh - rc=$? - export ERR=$rc + export ERR=$? export err=$ERR - $ERRSCRIPT || exit 2 + $ERRSCRIPT || exit 3 fi fi @@ -375,13 +371,13 @@ EOFnml ################################################################################ # Run enkf update -export OMP_NUM_THREADS=$NTHREADS_ENKF -PGM=$DATA/enkf.x -$NCP $ENKFEXEC $PGM +export OMP_NUM_THREADS=$NTHREADS_ENKF +export pgm=$ENKFEXEC +. prep_step -# Execute EnKF using same number of mpi tasks on all nodes -$APRUN_ENKF $PGM 1>stdout 2>stderr +$NCP $ENKFEXEC $DATA +$APRUN_ENKF ${DATA}/$(basename $ENKFEXEC) 1>stdout 2>stderr rc=$? export ERR=$rc diff --git a/scripts/exglobal_analysis.sh.ecf b/scripts/exglobal_analysis.sh.ecf deleted file mode 100755 index 97566ebbce..0000000000 --- a/scripts/exglobal_analysis.sh.ecf +++ /dev/null @@ -1,1700 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: global_analysis.sh -# Script description: Makes a global spectral model analysis -# -# Author: Mark Iredell Org: NP23 Date: 1999-07-15 -# -# Abstract: This script makes a global spectral model analysis. -# Both the surface analysis and the upper-air analysis are performed. -# -# Script history log: -# 1999-05-01 Mark Iredell -# 2002-04-26 Russ Treadon add global_angupdate processing -# 2003-08-05 Russ Treadon add processing of hourly sigma and surface guess -# 2004-03-26 Russ Treadon remove reference to IEEE TOVS-1b files, fix sfcg bug -# 2005-01-03 Cheng-Hsuan Lu :set FSMCL(2:4) = FSMCL2 -# add FNVMNC,FNVMXC,FNSLPC,FNABSC -# 2005-07-22 Russ Treadon add processing of NOAA-18 hirs4, amsua, and mhs data -# 2006-11-29 Russ Treadon update for global_gsi -# 2007-10-18 Russ Treadon add new options (not activated) to GSI namelist; -# update CRTM related pieces for use with CRTM_GFS -# (revision 799); modify SBUVBF variable and -# sbuvbufr OBS_INPUT "dsis" variable to process -# version 8 (sbuv8_*) sbuv/2 ozone data. -# 2007-10-18 Diane Stokes clean up processing of diagnostic files -# 2008-04-04 Russ Treadon remove global_chgres -# 2008-09-29 Russ Treadon add IASI, update to crtm_gfsgsi (rev1855), -# turn on varqc and bkgv_flowdep, tsfc_sdv=3 -# 2009-02-05 Russ Treadon add unique thread / stack variables for GSIEXEC -# and ANGUPDATEXEC; add OMIBF, TCVITL; add dsfcalc -# 2009-03-19 Russ Treadon add JCAP_A,NLAT_A,NLON_A,JCAP_B -# 2010-04-28 Russ Treadon remove global_angupdate -# 2010-05-05 George Gayno add ANAVINFO file -# 2011-05-10 EMC/SPA update RTMFIX defaults to ${FIXGLOBAL}/crtm_2.0.2, instead of crtm_gfsgsi -# 2012-01-16 Treadon add hooks for hybrid ensemble -# 2012-02-14 S. Moorthi Edited for Zeus and Gaea -# 2013-10-31 R. Todling Revisit OBS_INPUT (add table) -# 2014-03-13 X. Li Add NSST -# 2016-05-01 Yanqiu Zhu Add RADCLOUDINFO and use satinfo with icloud & iaerosol -# 2016-05-10 J. Jung Added RARS and direct broadcast data -# 2016-08-28 X. Li Introduce USE_READIN_ANL_SFCMASK for surface mask consistency between analysis and ensemble grids -# 2018-10-24 Karina Apodaca add processing of GOES-GLM light -# -# Usage: global_analysis.sh SFCGES SIGGES NSTGES GBIAS GBIASPC GRADSTAT GBIASAIR -# SFCANL SIGANL NSTANL ABIAS ABIASPC ABIASAIR IGEN -# -# Input script positional parameters: -# 1 Input surface guess -# defaults to $SFCGES; required -# 2 Input sigma guess -# defaults to $SIGGES; required -# 3 Input NSST guess -# defaults to $NSTGES; required -# 4 Input guess time dependent bias correction coefficients -# defaults to $GBIAS; required -# 5 Input guess radiance bias correction pre-conditioning -# defaults to $GBIASPC; required -# 6 Input guess radiance diagnostic file -# defaults to $GRADSTAT; required -# 7 Input guess aircraft bias correction coefficients -# defaults to $GBIASAIR; required -# 8 Output surface analysis -# defaults to $SFCANL, then to ${COMOUT}/sfcanl -# 9 Output sigma analysis -# defaults to $SIGANL, then to ${COMOUT}/siganl -# 10 Output NSST analysis -# defaults to $NSTANL, then to ${COMOUT}/nstanl -# 11 Output bias correction -# defaults to $ABIAS, then to ${COMOUT}/abias -# 12 Output bias correction pre-conditioning -# defaults to $ABIASPC, then to ${COMOUT}/abias_pc -# 13 Output aircraft bias correction coefficients -# defaults to $ABIASAIR, then to ${COMOUT}/abias_air -# 14 Output generating code -# defaults to $IGEN, then to 0 -# -# Imported Shell Variables: -# SFCGES Input surface guess -# overridden by $1; required -# SIGGES Input sigma guess -# overridden by $2; required -# GBIAS Input guess bias correction -# overridden by $3; required -# GBIASPC Input guess radiance bias correction pre-conditioning -# overridden by $4; required -# GRADSTAT Input guess angle dependent bias correction -# overridden by $5; required -# GBIASAIR Input guess aircraft bias correction -# overridden by $6; required -# SFCANL Output surface analysis -# overridden by $7; defaults to ${COMOUT}/sfcanl -# SIGANL Output sigma analysis -# overridden by $8; defaults to ${COMOUT}/siganl -# ABIAS Output bias correction -# overridden by $9; defaults to ${COMOUT}/abias -# ABIASPC Output bias correction pre-conditioning -# overridden by $10; defaults to ${COMOUT}/abias_pc -# ABIASAIR Output aircraft bias correction -# overridden by $11; defaults to ${COMOUT}/abias_air -# NSTGES Input NSST guess -# overridden by $10; required -# NSTANL Output NSST analysis -# overridden by $11; defaults to ${COMOUT}/nstanl -# IGEN Output generating code -# overridden by $12; defaults to 0 -# SFCG03 Surface guess valid at -03 hour -# defaults to ${COMOUT}/sfcf03; optional input -# SFCG04 Surface guess valid at -04 hour -# defaults to ${COMOUT}/sfcf04; optional input -# SFCG05 Surface guess valid at -05 hour -# defaults to ${COMOUT}/sfcf05; optional input -# SFCG07 Surface guess valid at -07 hour -# defaults to ${COMOUT}/sfcf07; optional input -# SFCG08 Surface guess valid at -08 hour -# defaults to ${COMOUT}/sfcf08; optional input -# SFCG09 Surface guess valid at -09 hour -# defaults to ${COMOUT}/sfcf09; optional input -# NSTG03 NSST guess valid at -03 hour -# defaults to ${COMOUT}/nstf03; optional input -# NSTG04 NSST guess valid at -04 hour -# defaults to ${COMOUT}/nstf04; optional input -# NSTG05 NSST guess valid at -05 hour -# defaults to ${COMOUT}/nstf05; optional input -# NSTG07 NSST guess valid at -07 hour -# defaults to ${COMOUT}/nstf07; optional input -# NSTG08 NSST guess valid at -08 hour -# defaults to ${COMOUT}/nstf08; optional input -# NSTG09 NSST guess valid at -09 hour -# defaults to ${COMOUT}/nstf09; optional input -# SIGG03 Sigma guess valid at -03 hour -# defaults to ${COMOUT}/sigf03; optional input -# SIGG04 Sigma guess valid at -04 hour -# defaults to ${COMOUT}/sigf04; optional input -# SIGG05 Sigma guess valid at -05 hour -# defaults to ${COMOUT}/sigf05; optional input -# SIGG07 Sigma guess valid at -07 hour -# defaults to ${COMOUT}/sigf07; optional input -# SIGG08 Sigma guess valid at -08 hour -# defaults to ${COMOUT}/sigf08; optional input -# SIGG09 Sigma guess valid at -09 hour -# defaults to ${COMOUT}/sigf09; optional input -# SIGGESENS template for ensemble member sigma guess -# defaults to ${COMOUT}/sigf06_ens; optional input -# DOHYBVAR flag (YES or NO) for hybrid ensemble variational option -# defaults to NO -# NMEM_ENS number of ensemble members included in analysis -# defauls to 0 -# GINCIN Input increment to guess -# defaults to ${COMOUT}/gesfile_in; optional -# BIASIN Input bias correction to guess -# defaults to ${COMOUT}/biascor_in; optional -# USE_NEWRADBC Flag to use new radiance bias correction scheme (YES or NO) -# defaults to NO -# USE_RADSTAT Flag to use guess radstat file for bias correction -# initialization (YES or NO). defaults to NO -# RADSTAT Output radiance assimilation statistics -# defaults to ${COMIN}/${PREINP}radstat -# GSISTAT Output gsi (obs-ges), qc, and iteration statistics -# defaults to ${COMIN}/${PREINP}gsistat -# PCPSTAT Output precipitation assimilation statistics -# defaults to ${COMIN}/${PREINP}pcpstat -# CNVSTAT Output conventional observation assimilation statistics -# defaults to ${COMIN}/${PREINP}cnvstat -# OZNSTAT Output ozone observation assimilation statistics -# defaults to ${COMIN}/${PREINP}oznstat -# LIGSTAT Output lightning observation assimilation statistics -# defaults to ${COMIN}/${PREINP}ligstat -# GINCOUT Output increment to guess -# defaults to ${COMIN}/${PREINP}gesfile_out -# BIASOUT Output bias correction to guess -# defaults to ${COMIN}/${PREINP}biascor_out -# RUN_SELECT Flag to only select data (YES or NO) -# defaults to NO -# USE_SELECT Flag to use selected data (YES or NO) -# defaults to NO -# SELECT_OBS Tarball containing selected data -# defaults to ${COMIN}/${PREINP}obsinput -# DIAG_SUFFIX optional suffix for diagnostics files -# defaults to empty string -# DIAG_COMPRESS flag to compress (YES) diagnostics files -# defaults to YES -# DIAG_TARBALL flag to collect (YES) diagnostic files in tarballs -# defaults to YES -# FIXgsm Directory for global fixed files -# defaults to /nwprod/fix -# EXECgsm Directory for global executables -# defaults to /nwprod/exec -# USHgsm Directory for global ush scripts -# defaults to /nwprod/ush -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# COMIN input directory -# defaults to current working directory -# COMOUT output directory -# (if nonexistent will be made) -# defaults to current working directory -# XC Suffix to add to executables -# defaults to none -# PREINP Prefix to add to input observation files -# defaults to none -# SUFINP Suffix to add to input observation files -# defaults to none -# NCP Copy command -# defaults to cp -# SIGHDR Command to read sigma header -# defaults to ${EXECgsm}/global_sighdr$XC -# SFCHDR Command to read surface header -# defaults to ${EXECgsm}/global_sfchdr$XC -# CYCLEXEC Surface cycle executable -# defaults to ${EXECgsm}/global_cycle$XC -# GSIEXEC Spectral analysis executable -# defaults to ${EXECgsm}/global_gsi$XC -# CYCLESH Surface cycle script -# defaults to ${USHgsm}/global_cycle.sh -# BERROR Input background error file -# defaults to ${FIXgsm}/global_berror.l${LEVS}y${NLAT_A}.sig.f77 -# SATANGL Input satellite angle bias file -# defaults to ${FIXgsm}/global_satangbias.txt -# SATINFO Input satellite information file -# defaults to ${FIXgsm}/global_satinfo.txt -# RADCLOUDINFO Input cloud-related usage for satellite intrument -# defaults to ${FIXgsm}/cloudy_radiance_info.txt -# ATMSFILTER Path to file describing how ATMS is spatially filtered -# defaults to ${FIXgsm}/atms_beamwidth.txt -# RTMFIX Input directory containing CRTM coefficients -# defaults to ${FIXgsm}/crtm_v2.2.3 -# ANAVINFO Input analysis variable file -# defaults to ${FIXgsm}/global_anavinfo.l${LEVS}.txt -# CONVINFO Input conventional observation information file -# defaults to ${FIXgsm}/global_convinfo.txt -# INSITUINFO Input nsst insitu information file -# defaults to ${FIXgsm}/global_insituinfo.txt -# OZINFO Input ozone information file -# defaults to ${FIXgsm}/global_ozone.txt -# PCPINFO Input precipitation information file -# defaults to ${FIXgsm}/global_pcpinfo.txt -# AEROINFO Input aerosol information file -# defaults to ${FIXgsm}/global_aeroinfo.txt -# SCANINFO Input satellite scan information file -# defaults to ${FIXgsm}/global_scaninfo.txt -# HYBENSINFO Input hybrid ensemble localization information file -# defaults to ${FIXgsm}/global_hybens_locinfo.l${LEVS}.txt -# LIGHTINFO Input lightning information file -# defaults to ${FIXgsm}/global_lightinfo.txt -# PREPQC Input QC-ed observation BUFR file -# defaults to ${COMIN}/${PREINP}prepbufr${SUFINP} -# PREPQCPF Input QC-ed observation profile BUFR file -# defaults to ${COMIN}/${PREINP}prepbufr.acft_profiles${SUFINP} -# SATWND Input satellite wind file (bufr format) -# defaults to ${COMIN}/${PREINP}satwnd.tm00.bufr_d${SUFINP} -# OSCATBF Input OSCAT wind file (bufr format) -# defaults to ${COMIN}/${PREINP}oscatw.tm00.bufr_d${SUFINP} -# RAPIDSCATBF Input RAPIDSCAT wind file (bufr format) -# defaults to ${COMIN}/${PREINP}rapidscatw.tm00.bufr_d${SUFINP} -# GSNDBF Input GOES sounder radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}goesnd.tm00.bufr_d${SUFINP} -# GSNDBF1 Input GOES 1x1 sounder radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}goesfv.tm00.bufr_d${SUFINP} -# GLMBF Input GOES-16/GLM lightning flash rate file -# defaults to ${COMIN}/${PREINP}glm.tm00.bufr_d${SUFINP} -# B1HRS2 Input HIRS/2 radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}1bhrs2.tm00.bufr_d${SUFINP} -# B1MSU Input MSU radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}1bmsu.tm00.bufr_d${SUFINP} -# B1HRS3 Input HIRS/3 radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}1bhrs3.tm00.bufr_d${SUFINP} -# B1HRS4 Input HIRS/4 radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}1bhrs4.tm00.bufr_d${SUFINP} -# B1AMUA Input AMSU/A radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}1bamua.tm00.bufr_d${SUFINP} -# B1AMUB Input AMSU/B radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}1bamub.tm00.bufr_d${SUFINP} -# B1MHS Input MHS radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}1bmhs.tm00.bufr_d${SUFINP} -# ESHRS3 Input EARS HIRS/3 radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}eshrs3.tm00.bufr_d${SUFINP} -# ESAMUA Input EARS AMSU/A radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}esamua.tm00.bufr_d${SUFINP} -# ESAMUB Input EARS AMSU/B radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}esamub.tm00.bufr_d${SUFINP} -# HRS3DB Input direct broadcast HIRS/3 radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}hrs3db.tm00.bufr_d${SUFINP} -# AMUADB Input direct broadcast AMSU/A radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}amuadb.tm00.bufr_d${SUFINP} -# AMUBDB Input direct broadcast AMSU/B radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}amubdb.tm00.bufr_d${SUFINP} -# AIRSBF Input AIRS radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}airs.tm00.bufr_d${SUFINP} -# IASIBF Input IASI radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}mtiasi.tm00.bufr_d${SUFINP} -# ESIASI Input EARS/RARS IASI radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}esiasi.tm00.bufr_d${SUFINP} -# IASIDB Input direct broadcast IASI radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}iasidb.tm00.bufr_d${SUFINP} -# AMSREBF Input AMSRE radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}amsre.tm00.bufr_d${SUFINP} -# SEVIRIBF Input SEVIRI radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}sevcsr.tm00.bufr_d${SUFINP} -# AHIBF Input AHI radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}ahi.tm00.bufr_d${SUFINP} -# CRISBF Input CRIS radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}cris.tm00.bufr_d${SUFINP} -# ESCRIS Input EARS/RARS CRIS radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}escris.tm00.bufr_d${SUFINP} -# CRISDB Input direct broadcast CRIS radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}crisdb.tm00.bufr_d${SUFINP} -# CRISFSBF Input CRIS radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}crisf4.tm00.bufr_d${SUFINP} -# ESCRISFS Input EARS/RARS CRIS-FSR radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}escrisf4.tm00.bufr_d${SUFINP} -# CRISFSDB Input direct broadcast CRIS-FSR radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}crisf4db.tm00.bufr_d${SUFINP} -# ATMSBF Input ATMS radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}atms.tm00.bufr_d${SUFINP} -# ESATMS Input EARS/RARS ATMS radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}esatms.tm00.bufr_d${SUFINP} -# ATMSDB Input direct broadcast ATMS radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}atmsdb.tm00.bufr_d${SUFINP} -# SAPHIRBF Input SAPHIR radiance file (bufr format) -# defaults to ${COMIN}/${PREINP}saphir.tm00.bufr_d${SUFINP} -# AMSR2BF Input AMSR2 L1B brightness temperature files -# defaults to ${COMIN}/${PREINP}amsr2.tm00.bufr_d${SUFINP} -# GMI1CRBF Input GMI L1CR brightness temperature files -# defaults to ${COMIN}/${PREINP}gmi1cr.tm00.bufr_d${SUFINP} -# SSMITBF Input SSMI radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}ssmit.tm00.bufr_d${SUFINP} -# SSMISBF Input SSMIS radiace file (bufr format) -# defaults to ${COMIN}/${PREINP}ssmisu.tm00.bufr_d${SUFINP} -# SBUVBF Input NOAA POES SBUV ozone retrieval file -# defaults to ${COMIN}/${PREINP}osbuv8.tm00.bufr_d${SUFINP} -# GOMEBF Input GOME ozone retrieval file -# defaults to ${COMIN}/${PREINP}gome.tm00.bufr_d${SUFINP} -# OMIBF Input OMI ozone retrieval file -# defaults to ${COMIN}/${PREINP}omi.tm00.bufr_d${SUFINP} -# MLSBF Input MLS ozone retrieval file -# defaults to ${COMIN}/${PREINP}mls.tm00.bufr_d${SUFINP} -# SMIPCP Input SSM/I precipitation rate file -# defaults to ${COMIN}/${PREINP}spssmip.tm00.bufr_d${SUFINP} -# TMIPCP Input TMI precipitation rate file -# defaults to ${COMIN}/${PREINP}sptrmm.tm00.bufr_d${SUFINP} -# GPSROBF Input GPS radio occultation data -# defaults to ${COMIN}/${PREINP}gpsro.tm00.bufr_d${SUFINP} -# TCVITL Input tcvitals file -# defaults to ${COMIN}/${PREINP}syndata.tcvitals.tm00 -# NSSTBF Input in situ sea temperature file -# defaults to ${COMIN}/${PREINP}nsstbufr.tm00.bufr_d${SUFINP} -# B1AVHAM Input AVHRR GAC (AM) file -# defaults to ${COMIN}/${PREINP}avcsam.tm00.bufr_d${SUFINP} -# B1AVHPM Input AVHRR GAC (PM) file -# defaults to ${COMIN}/${PREINP}avcspm.tm00.bufr_d${SUFINP} -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# JCAP_A Spectral truncation for analysis -# defaults to the value in the input sigma file header -# JCAP Spectral truncation for background -# defaults to the value in the input sigma file header -# LEVS Number of levels -# DELTIM Timestep in seconds -# defaults to 3600/($JCAP_A/20) -# CDATE Current analysis date in yyyymmddhh format -# defaults to the value in the input surface file header -# LATB Number of latitudes in surface cycling -# defaults to the value in the input surface file header -# LONB Number of longitudes in surface cycling -# defaults to the value in the input surface file header -# LSOIL Number of soil layers -# defaults to 2 -# FSMCL2 Scale in days to relax to soil moisture climatology -# defaults to 60 -# DELTSFC Cycling frequency in hours -# defaults to forecast hour of $SFCGES -# LATA Number of latitudes in spectral analysis -# defaults to $LATB -# LONA Number of longitudes in spectral analysis -# defaults to $LONB -# NSIG1 Number of levels per MPI task -# (Important: number of MPI tasks must be 5*$LEVS/$NSIG1+2) -# defaults to 1 -# CYCLVARS Other namelist inputs to the cycle executable -# defaults to none set -# GSIVARS Other namelist inputs to the analysis executable -# defaults to none set -# SATVARS Other namelist input to analysis data usage namelist -# defaults to none set -# NTHREADS Number of threads -# defaults to 1 -# NTHSTACK Size of stack per thread -# defaults to 1024000000 -# NTHREADS_GSI Number of threads for GSIEXEC -# defaults to 1 -# NTHSTACK_GSI Size of stack per thread for GSIEXEC -# defaults to 1024000000 -# FILESTYLE File management style flag -# ('C' to copy to/from $DATA, 'L' for symbolic links in $DATA, -# 'X' to use XLFUNIT or symbolic links where appropriate) -# defaults to 'X' -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to NO -# lrun_subdirs logical to toggle use of subdirectories at runtime for -# pe-specific files -# defaults to .true. -# l4densvar logical to toggle 4D-EnsVar option -# defaults to .false. -# lwrite4danl logical to toggle write 4D analysis files -# defaults to .false. -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $CYCLEXEC -# $GSIEXEC -# -# fixed data : $BERROR -# $SATANGL -# $SATINFO -# $RADCLOUDINFO -# $ATMSFILTER -# $RTMFIX -# $ANAVINFO -# $CONVINFO -# $INSITUINFO -# $OZINFO -# $PCPINFO -# $AEROINFO -# $SCANINFO -# $HYBENSINFO -# -# input data : $SFCGES -# $SIGGES -# $GBIAS -# $GBIASPC -# $GRADSTAT -# $GBIASAIR -# $SFCG03 -# $SFCG04 -# $SFCG05 -# $SFCG07 -# $SFCG08 -# $SFCG09 -# $NSTG03 -# $NSTG04 -# $NSTG05 -# $NSTG07 -# $NSTG08 -# $NSTG09 -# $SIGG03 -# $SIGG04 -# $SIGG05 -# $SIGG07 -# $SIGG08 -# $SIGG09 -# $GINCIN -# $BIASIN -# $FNTSFA -# $FNACNA -# $FNSNOA -# $PREPQC -# $PREPQCPF -# $SATWND -# $OSCATBF -# $GSNDBF -# $GSNDBF1 -# $B1HRS2 -# $B1MSU -# $B1HRS3 -# $B1HRS4 -# $B1AMUA -# $B1AMUB -# $B1MHS -# $ESHRS3 -# $ESAMUA -# $ESAMUB -# $AIRSBF -# $IASIBF -# $AMSREBF -# $SEVIRIBF -# $CRISBF -# $ATMSBF -# $SSMITBF -# $SSMISBF -# $SBUVBF -# $GOMEBF -# $OMIBF -# $MLSBF -# $SMIPCP -# $TMIPCP -# $GPSROBF -# $G16GLMBF -# $TCVITL -# $NSSTBF -# $B1AVHAM -# $B1AVHPM -# -# output data: $SFCANL -# $NSTANL -# $SIGANL -# $ABIAS -# $ABIASPC -# $ABIASAIR -# $RADSTAT -# $GSISTAT -# $PCPSTAT -# $CNVSTAT -# $OZNSTAT -# $LIGSTAT -# $GINCOUT -# $BIASOUT -# $PGMOUT -# $PGMERR -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP / Zeus / Gaea -# -################################################################################ -# Set environment. -export VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -export machine=${machine:-IBMP6} -export machine=$(echo $machine|tr '[a-z]' '[A-Z]') - -# Command line arguments. -export SFCGES=${1:-${SFCGES:?}} -export SIGGES=${2:-${SIGGES:?}} -export NSTGES=${3:-${NSTGES:?}} -export GBIAS=${4:-${GBIAS:?}} -export GBIASPC=${5:-${GBIASPC:?}} -export GRADSTAT=${6:-${GRADSTAT:?}} -export GBIASAIR=${7:-${GBIASAIR:?}} -export SFCANL=${8:-${SFCANL}} -export SIGANL=${9:-${SIGANL}} -export NSTANL=${10:-${NSTANL:?}} -export ABIAS=${11:-${ABIAS}} -export ABIASPC=${12:-${ABIASPC}} -export ABIASAIR=${13:-${ABIASAIR}} -export IGEN=${14:-${IGEN:-0}} -export ABIASe=${15:-${ABIASe:-satbias_int.out}} -# Directories. -export HOMEDIR=${HOMEDIR:-$NWROOT} -export NWPROD=${NWPROD:-$HOMEDIR} -export FIXSUBDA=${FIXSUBDA:-fix/fix_am} -export FIXgsm=${FIXgsm:-$NWPROD/global_shared.${global_shared_ver}/fix/fix_am} -export EXECgsm=${EXECgsm:-$NWPROD/global_shared.${global_shared_ver}/exec} -export USHgsm=${USHgsm:-$NWPROD/global_shared.${global_shared_ver}/ush} -export FIXgsi=${FIXgsi:-$NWPROD/global_shared.${global_shared_ver}/fix} -export EXECgsi=${EXECgsi:-$NWPROD/global_shared.${global_shared_ver}/exec} -export DATA=${DATA:-$(pwd)} -export COMIN=${COMIN:-$(pwd)} -export COMOUT=${COMOUT:-$(pwd)} -# Set script / GSI control parameters -NST_GSI=${NST_GSI:-0} -NSTINFO=${NSTINFO:-0} -ZSEA1=${ZSEA1:-0} -ZSEA2=${ZSEA2:-0} -FAC_DTL=${FAC_DTL:-0} -FAC_TSL=${FAC_TSL:-0} -TZR_QC=${TZR_QC:-0} - -export use_gfs_nemsio=${use_gfs_nemsio:-".false."} # run GSI with NEMSIO input/output -export l4densvar=${l4densvar:-".false."} # run GSI in hybrid 4D ensemble-variational mode -export lwrite4danl=${lwrite4danl:-".false."} # .false. = write single analysis at center time -export DOIAU=${DOIAU:-"NO"} # run global_cycle for IAU -export lrun_subdirs=${lrun_subdirs:-".true."} # run GSI with scratch files in sub-directories -# Filenames. -export XC=${XC} -export PREINP=${PREINP} -export SUFINP=${SUFINP} -export SIGHDR=${SIGHDR:-${EXECgsm}/global_sighdr$XC} -export SFCHDR=${SFCHDR:-${EXECgsm}/global_sfchdr$XC} -if [ $use_gfs_nemsio = .true. ]; then - export JCAP=${JCAP:-$($SIGHDR $SIGGES jcap |grep -i "jcap" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export JCAP_A=${JCAP_A:-$($SIGHDR $SIGGES jcap |grep -i "jcap" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export LATB=${LATB:-$($SFCHDR $SFCGES latr |grep -i "latr" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export LONB=${LONB:-$($SFCHDR $SFCGES lonr |grep -i "lonr" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export LEVS=${LEVS:-$($SIGHDR $SIGGES levs |grep -i "levs" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} -else - export JCAP=${JCAP:-$($SIGHDR $SIGGES JCAP||echo 0)} - export JCAP_A=${JCAP_A:-$($SIGHDR $SIGGES JCAP||echo 0)} - export LATB=${LATB:-$($SFCHDR $SFCGES LATB||echo 0)} - export LONB=${LONB:-$($SFCHDR $SFCGES LONB||echo 0)} - export LEVS=${LEVS:-$($SIGHDR $SIGGES LEVS||echo 0)} -fi -export LATA=${LATA:-$LATB} -export LONA=${LONA:-$LONB} -export NLAT_A=${NLAT_A:-$(($LATA+2))} -export NLON_A=${NLON_A:-$LONA} -export DELTIM=${DELTIM:-$((3600/($JCAP_A/20)))} -export CYCLEXEC=${CYCLEXEC:-${EXECgsm}/global_cycle$XC} -export GSIEXEC=${GSIEXEC:-${EXECgsi}/global_gsi$XC} -export CYCLESH=${CYCLESH:-${USHgsm}/global_cycle.sh} -export BERROR=${BERROR:-${FIXgsi}/global_berror.l${LEVS}y${NLAT_A}.f77} -export SATANGL=${SATANGL:-${FIXgsi}/global_satangbias.txt} -export SATINFO=${SATINFO:-${FIXgsi}/global_satinfo.txt} -export RADCLOUDINFO=${RADCLOUDINFO:-${FIXgsi}/cloudy_radiance_info.txt} -export ATMSFILTER=${ATMSFILTER:-${FIXgsi}/atms_beamwidth.txt} -export RTMFIX=${RTMFIX:-$NWROOT/lib/crtm/${crtm_ver}/fix} -export ANAVINFO=${ANAVINFO:-${FIXgsi}/global_anavinfo.l${LEVS}.txt} -export CONVINFO=${CONVINFO:-${FIXgsi}/global_convinfo.txt} -export INSITUINFO=${INSITUINFO:-${FIXgsi}/global_insituinfo.txt} -export OZINFO=${OZINFO:-${FIXgsi}/global_ozinfo.txt} -export PCPINFO=${PCPINFO:-${FIXgsi}/global_pcpinfo.txt} -export AEROINFO=${AEROINFO:-${FIXgsi}/global_aeroinfo.txt} -export SCANINFO=${SCANINFO:-${FIXgsi}/global_scaninfo.txt} -export HYBENSINFO=${HYBENSINFO:-${FIXgsi}/global_hybens_locinfo.l${LEVS}.txt} -export LIGHTINFO=${LIGHTINFO:-${FIXgsi}/global_lightinfo.txt} -export OBERROR=${OBERROR:-${FIXgsi}/prepobs_errtable.global} -export PREPQC=${PREPQC:-${COMIN}/${PREINP}prepbufr${SUFINP}} -export PREPQCPF=${PREPQCPF:-${COMIN}/${PREINP}prepbufr.acft_profiles${SUFINP}} -export SATWND=${SATWND:-${COMIN}/${PREINP}satwnd.tm00.bufr_d${SUFINP}} -export OSCATBF=${OSCATBF:-${COMIN}/${PREINP}oscatw.tm00.bufr_d${SUFINP}} -export RAPIDSCATBF=${RAPIDSCATBF:-${COMIN}/${PREINP}rapidscatw.tm00.bufr_d${SUFINP}} -export GSNDBF=${GSNDBF:-${COMIN}/${PREINP}goesnd.tm00.bufr_d${SUFINP}} -export GSNDBF1=${GSNDBF1:-${COMIN}/${PREINP}goesfv.tm00.bufr_d${SUFINP}} -export B1HRS2=${B1HRS2:-${COMIN}/${PREINP}1bhrs2.tm00.bufr_d${SUFINP}} -export B1MSU=${B1MSU:-${COMIN}/${PREINP}1bmsu.tm00.bufr_d${SUFINP}} -export B1HRS3=${B1HRS3:-${COMIN}/${PREINP}1bhrs3.tm00.bufr_d${SUFINP}} -export B1HRS4=${B1HRS4:-${COMIN}/${PREINP}1bhrs4.tm00.bufr_d${SUFINP}} -export B1AMUA=${B1AMUA:-${COMIN}/${PREINP}1bamua.tm00.bufr_d${SUFINP}} -export B1AMUB=${B1AMUB:-${COMIN}/${PREINP}1bamub.tm00.bufr_d${SUFINP}} -export B1MHS=${B1MHS:-${COMIN}/${PREINP}1bmhs.tm00.bufr_d${SUFINP}} -export ESHRS3=${ESHRS3:-${COMIN}/${PREINP}eshrs3.tm00.bufr_d${SUFINP}} -export ESAMUA=${ESAMUA:-${COMIN}/${PREINP}esamua.tm00.bufr_d${SUFINP}} -export ESAMUB=${ESAMUB:-${COMIN}/${PREINP}esamub.tm00.bufr_d${SUFINP}} -export ESMHS=${ESMHS:-${COMIN}/${PREINP}esmhs.tm00.bufr_d${SUFINP}} -export HRS3DB=${HRS3DB:-${COMIN}/${PREINP}hrs3db.tm00.bufr_d${SUFINP}} -export AMUADB=${AMUADB:-${COMIN}/${PREINP}amuadb.tm00.bufr_d${SUFINP}} -export AMUBDB=${AMUBDB:-${COMIN}/${PREINP}amubdb.tm00.bufr_d${SUFINP}} -export MHSDB=${MHSDB:-${COMIN}/${PREINP}mhsdb.tm00.bufr_d${SUFINP}} -export AIRSBF=${AIRSBF:-${COMIN}/${PREINP}airsev.tm00.bufr_d${SUFINP}} -export IASIBF=${IASIBF:-${COMIN}/${PREINP}mtiasi.tm00.bufr_d${SUFINP}} -export ESIASI=${ESIASI:-${COMIN}/${PREINP}esiasi.tm00.bufr_d${SUFINP}} -export IASIDB=${IASIDB:-${COMIN}/${PREINP}iasidb.tm00.bufr_d${SUFINP}} -export AMSREBF=${AMSREBF:-${COMIN}/${PREINP}amsre.tm00.bufr_d${SUFINP}} -export AMSR2BF=${AMSR2BF:-${COMIN}/${PREINP}amsr2.tm00.bufr_d${SUFINP}} -export GMI1CRBF=${GMI1CRBF:-${COMIN}/${PREINP}gmi1cr.tm00.bufr_d${SUFINP}} -export SAPHIRBF=${SAPHIRBF:-${COMIN}/${PREINP}saphir.tm00.bufr_d${SUFINP}} -export SEVIRIBF=${SEVIRIBF:-${COMIN}/${PREINP}sevcsr.tm00.bufr_d${SUFINP}} -export AHIBF=${AHIBF:-${COMIN}/${PREINP}ahi.tm00.bufr_d${SUFINP}} -export CRISBF=${CRISBF:-${COMIN}/${PREINP}cris.tm00.bufr_d${SUFINP}} -export ESCRIS=${ESCRIS:-${COMIN}/${PREINP}escris.tm00.bufr_d${SUFINP}} -export CRISDB=${CRISDB:-${COMIN}/${PREINP}crisdb.tm00.bufr_d${SUFINP}} -export CRISFSBF=${CRISFSBF:-${COMIN}/${PREINP}crisf4.tm00.bufr_d${SUFINP}} -export ESCRISFS=${ESCRISFS:-${COMIN}/${PREINP}escrisf4.tm00.bufr_d${SUFINP}} -export CRISFSDB=${CRISFSDB:-${COMIN}/${PREINP}crisf4db.tm00.bufr_d${SUFINP}} -export ATMSBF=${ATMSBF:-${COMIN}/${PREINP}atms.tm00.bufr_d${SUFINP}} -export ESATMS=${ESATMS:-${COMIN}/${PREINP}esatms.tm00.bufr_d${SUFINP}} -export ATMSDB=${ATMSDB:-${COMIN}/${PREINP}atmsdb.tm00.bufr_d${SUFINP}} -export SSMITBF=${SSMITBF:-${COMIN}/${PREINP}ssmit.tm00.bufr_d${SUFINP}} -export SSMISBF=${SSMISBF:-${COMIN}/${PREINP}ssmisu.tm00.bufr_d${SUFINP}} -export SBUVBF=${SBUVBF:-${COMIN}/${PREINP}osbuv8.tm00.bufr_d${SUFINP}} -export GOMEBF=${GOMEBF:-${COMIN}/${PREINP}gome.tm00.bufr_d${SUFINP}} -export OMIBF=${OMIBF:-${COMIN}/${PREINP}omi.tm00.bufr_d${SUFINP}} -export MLSBF=${MLSBF:-${COMIN}/${PREINP}mls.tm00.bufr_d${SUFINP}} -export SMIPCP=${SMIPCP:-${COMIN}/${PREINP}spssmi.tm00.bufr_d${SUFINP}} -export TMIPCP=${TMIPCP:-${COMIN}/${PREINP}sptrmm.tm00.bufr_d${SUFINP}} -export GPSROBF=${GPSROBF:-${COMIN}/${PREINP}gpsro.tm00.bufr_d${SUFINP}} -export TCVITL=${TCVITL:-${COMIN}/${PREINP}syndata.tcvitals.tm00} -export NSSTBF=${NSSTBF:-${COMIN}/${PREINP}nsstbufr.tm00.bufr_d${SUFINP}} -export B1AVHAM=${B1AVHAM:-${COMIN}/${PREINP}avcsam.tm00.bufr_d${SUFINP}} -export B1AVHPM=${B1AVHPM:-${COMIN}/${PREINP}avcspm.tm00.bufr_d${SUFINP}} -export GINCIN=${GINCIN:-${COMOUT}/gesfile_in} -export BIASIN=${BIASIN:-${COMOUT}/biascor_in} -export SFCG03=${SFCG03:-${COMOUT}/sfcf03} -export SFCG04=${SFCG04:-${COMOUT}/sfcf04} -export SFCG05=${SFCG05:-${COMOUT}/sfcf05} -export SFCG07=${SFCG07:-${COMOUT}/sfcf07} -export SFCG08=${SFCG08:-${COMOUT}/sfcf08} -export SFCG09=${SFCG09:-${COMOUT}/sfcf09} -export NSTG03=${NSTG03:-${COMOUT}/nstf03} -export NSTG04=${NSTG04:-${COMOUT}/nstf04} -export NSTG05=${NSTG05:-${COMOUT}/nstf05} -export NSTG07=${NSTG07:-${COMOUT}/nstf07} -export NSTG08=${NSTG08:-${COMOUT}/nstf08} -export NSTG09=${NSTG09:-${COMOUT}/nstf09} -export USE_NEWRADBC=${USE_NEWRADBC:-"NO"} -export USE_RADSTAT=${USE_RADSTAT:-"NO"} -export SIGG03=${SIGG03:-${COMOUT}/sigf03} -export SIGG04=${SIGG04:-${COMOUT}/sigf04} -export SIGG05=${SIGG05:-${COMOUT}/sigf05} -export SIGG07=${SIGG07:-${COMOUT}/sigf07} -export SIGG08=${SIGG08:-${COMOUT}/sigf08} -export SIGG09=${SIGG09:-${COMOUT}/sigf09} -export SIGGESENS=${SIGGESENS:-${COMOUT}/sigf06_ens} -export NSTGESENS=${NSTGESENS:-${COMOUT}/nstf06_ens} -export SFCGESENS=${SFCGESENS:-${COMOUT}/sfcf06_ens} -export SFCGCYENS=${SFCGCYENS:-${COMOUT}/sfcgcy_ens} -export NSTGESENS_MEAN=${NSTGESENS_MEAN:-${COMOUT}/nstf06_ensmean} -export SFCGESENS_MEAN=${SFCGESENS_MEAN:-${COMOUT}/sfcf06_ensmean} -export SFCGCYENS_MEAN=${SFCGCYENS_MEAN:-${COMOUT}/sfcgcy_ensmean} -export SFCANLENS_MEAN=${SFCANLENS_MEAN:-${COMOUT}/sfcanl_ensmean} -export DOHYBVAR=${DOHYBVAR:-"NO"} -export USE_READIN_ANL_SFCMASK=${USE_READIN_ANL_SFCMASK:-.false.} -export NMEM_ENS=${NMEM_ENS:-0} -export SFCANL=${SFCANL:-${COMOUT}/${PREINP}sfcanl} -export DTFANL=${DTFANL:-${COMOUT}/${PREINP}dtfanl} -export SFCGCY=${SFCGCY:-${COMOUT}/${PREINP}sfcgcy} -export SFCTSK=${SFCTSK:-${COMOUT}/${PREINP}sfctsk} -export NSTANL=${NSTANL:-${COMOUT}/${PREINP}nstanl} -export SIGANL=${SIGANL:-${COMOUT}/${PREINP}sanl} -export ABIAS=${ABIAS:-${COMOUT}/${PREINP}abias} -export ABIASPC=${ABIASPC:-${COMOUT}/${PREINP}abias_pc} -export ABIASAIR=${ABIASAIR:-${COMOUT}/${PREINP}abias_air} -export GINCOUT=${GINCOUT:-${COMOUT}/${PREINP}gesfile_out} -export BIASOUT=${BIASOUT:-${COMOUT}/${PREINP}biascor_out} -export RADSTAT=${RADSTAT:-${COMOUT}/${PREINP}radstat} -export GSISTAT=${GSISTAT:-${COMOUT}/${PREINP}gsistat} -export PCPSTAT=${PCPSTAT:-${COMOUT}/${PREINP}pcpstat} -export CNVSTAT=${CNVSTAT:-${COMOUT}/${PREINP}cnvstat} -export OZNSTAT=${OZNSTAT:-${COMOUT}/${PREINP}oznstat} -export LIGSTAT=${LIGSTAT:-${COMOUT}/${PREINP}ligstat} -export RUN_SELECT=${RUN_SELECT:-"NO"} -export USE_SELECT=${USE_SELECT:-"NO"} -export SELECT_OBS=${SELECT_OBS:-${COMOUT}/${PREINP}obsinput} -export DIAG_SUFFIX=${DIAG_SUFFIX:-""} -export DIAG_COMPRESS=${DIAG_COMPRESS:-"YES"} -export DIAG_TARBALL=${DIAG_TARBALL:-"YES"} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} -# Other variables. -export LSOIL=${LSOIL:-2} -export FSMCL2=${FSMCL2:-60} -if [ $use_gfs_nemsio = .true. ]; then - export CDATE=${CDATE:-$($SFCHDR $SFCGES fcstdate | grep -i "fcstdate_ymdh" |awk -F= '{print $2}')} - export DELTSFC=${DELTSFC:-`$SFCHDR $SFCGES nfhour |awk -F" " '{print $2}'`} -else - export CDATE=${CDATE:-$($SFCHDR $SFCGES VDATE||echo 0)} - export DELTSFC=${DELTSFC:-$($SFCHDR $SFCGES FHOUR||echo 0)} -fi -export CYCLVARS=${CYCLVARS} -export SETUP=${SETUP:-""} -export GRIDOPTS=${GRIDOPTS:-""} -export BKGVERR=${BKGVERR:-""} -export ANBKGERR=${ANBKGERR:-""} -export JCOPTS=${JCOPTS:-""} -export STRONGOPTS=${STRONGOPTS:-""} -export OBSQC=${OBSQC:-""} -export OBSINPUT=${OBSINPUT:-""} -export SUPERRAD=${SUPERRAD:-""} -export SINGLEOB=${SINGLEOB:-""} -export LAGDATA=${LAGDATA:-""} -export HYBRID_ENSEMBLE=${HYBRID_ENSEMBLE:-""} -export RAPIDREFRESH_CLDSURF=${RAPIDREFRESH_CLDSURF:-""} -export CHEM=${CHEM:-""} -export NST=${NST:-""} -export FILESTYLE=${FILESTYLE:-'X'} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export OBERRFLAG=${OBERRFLAG:-.false.} -export NCP=${NCP:-cp} -export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} -export NTHREADS=${NTHREADS:-1} -export NTHREADS_GSI=${NTHREADS_GSI:-1} -if [ $machine = IBMP6 ] ; then - export NTHSTACK=${NTHSTACK:-1024000000} - export NTHSTACK_GSI=${NTHSTACK_GSI:-1024000000} - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} - COMPRESS=compress - UNCOMPRESS=uncompress -else - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} - COMPRESS=${COMPRESS:-gzip} - UNCOMPRESS=${UNCOMPRESS:-gunzip} -fi -export wc=${wc:-/usr/bin/wc} -export APRUN=${APRUN:-""} -export APRUNCFP=${APRUNCFP:-""} -export USE_CFP=${USE_CFP:-"NO"} - -# Set 4D-EnVar specific variables -if [ $l4densvar = .true. ]; then - export SIGA03=${SIGA03:-${COMOUT}/siga03} - export SIGA04=${SIGA04:-${COMOUT}/siga04} - export SIGA05=${SIGA05:-${COMOUT}/siga05} - export SIGA07=${SIGA07:-${COMOUT}/siga07} - export SIGA08=${SIGA08:-${COMOUT}/siga08} - export SIGA09=${SIGA09:-${COMOUT}/siga09} - export SIGF03ENS=${SIGF03ENS:-${COMROT}/sigf03_ens} - export SIGF04ENS=${SIGF04ENS:-${COMROT}/sigf04_ens} - export SIGF05ENS=${SIGF05ENS:-${COMROT}/sigf05_ens} - export SIGF06ENS=${SIGF06ENS:-${COMROT}/sigf06_ens} - export SIGF07ENS=${SIGF07ENS:-${COMROT}/sigf07_ens} - export SIGF08ENS=${SIGF08ENS:-${COMROT}/sigf08_ens} - export SIGF09ENS=${SIGF09ENS:-${COMROT}/sigf09_ens} -fi - -################################################################################ -# Preprocessing -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] -then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 - -################################################################################ -# Update surface guess file to produce surface analysis -rc=0 -if [ $NST_GSI -eq 3 ] ; then - $CYCLESH $SFCGES $SFCGCY - ra=$? - ((rc+=ra)) -else - $CYCLESH $SFCGES $SFCANL - ra=$? - ((rc+=ra)) - if [ $DOIAU = YES ]; then - export CDATE_SAVE=$CDATE - export CDATE=$($NDATE -3 $CDATE_SAVE) - $CYCLESH $SFCG03 $SFCA03 - ra=$? - ((rc+=ra)) - export CDATE=$CDATE_SAVE - fi -fi - -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 11 - - -################################################################################ -# Make atmospheric analysis -if [ $machine = IBMP6 ] ; then - export XLSMPOPTS="parthds=$NTHREADS_GSI:stack=$NTHSTACK_GSI" -fi -export OMP_NUM_THREADS=$NTHREADS_GSI -export PGM='$APRUN $DATA/$(basename $GSIEXEC)' -export pgm=$PGM -$LOGSCRIPT - -rm berror_stats satbias_angle satinfo *SpcCoeff.bin *TauCoeff.bin EmisCoeff.bin -rm AerosolCoeff.bin CloudCoeff.bin anavinfo convinfo ozinfo pcpinfo aeroinfo scaninfo -rm errtable prepbufr prepbufr_profl gsndrbufr gsnd1bufr hirs2bufr msubufr hirs3bufr hirs4bufr -rm amsuabufr amsubbufr mhsbufr sbuvbufr gomebufr omibufr mlsbufr ssmirrbufr tmirrbufr ahibufr -rm airsbufr iasibufr iasibufrears iasibufr_db amsrebufr amsr2bufr gmibufr saphirbufr ssmitbufr -rm ssmisbufr gpsrobufr tcvitl hybens_locinfo atms_beamwidth.txt -rm hirs3bufr_db hirs3bufrears amsuabufr_db amsuabufrears -rm amsubbufr_db amsubbufrears mhsbufr_db mhsbufrears seviribufr -rm crisbufr crisbufr_db crisbufrears crisfsbufr crisfsbufrears crisfsbufr_db -rm atmsbufr atmsbufr_db atmsbufrears -rm satbias_in satbias_ang.in satbias_out gsiparm.anl satbias_pc satbias_pc.out satbias_out.int -rm aircftbias_in aircftbias_out -rm sfcf03 sfcf04 sfcf05 sfcf06 sfcf07 sfcf08 sfcf09 -rm sigf03 sigf04 sigf05 sigf06 sigf07 sigf08 sigf09 -rm siga03 siga04 siga05 siganl siga07 siga08 siga09 -rm nstf03 nstf04 nstf05 nstf06 nstf07 nstf08 nstf09 -rm nstanl -rm gesfile_in gesfiles_out -rm -rf dir* - -$NCP $GSIEXEC $DATA - -if [[ $FILESTYLE = 'C' ]]; then - export FCPLN=$NCP -else - export FCPLN="ln -fs" -fi - -# Fixed fields -$FCPLN $BERROR berror_stats -$FCPLN $SATANGL satbias_angle -$FCPLN $SATINFO satinfo -$FCPLN $RADCLOUDINFO cloudy_radiance_info.txt -$FCPLN $ATMSFILTER atms_beamwidth.txt -$FCPLN $ANAVINFO anavinfo -$FCPLN $CONVINFO convinfo -$FCPLN $INSITUINFO insituinfo -$FCPLN $OZINFO ozinfo -$FCPLN $PCPINFO pcpinfo -$FCPLN $AEROINFO aeroinfo -$FCPLN $SCANINFO scaninfo -$FCPLN $HYBENSINFO hybens_info -$FCPLN $LIGHTINFO lightinfo -$FCPLN $OBERROR errtable - -#If using correlated error, link to the covariance files -if grep -q "Rcov" $ANAVINFO ; -then - if ls ${FIXgsi}/Rcov* 1> /dev/null 2>&1; - then - $NLN ${FIXgsi}/Rcov* $DATA - else - echo "Warning: Satellite error covariance files are missing." - echo "Check for the required files in " $ANAVINFO - exit 1 - fi -fi - - -# CRTM Spectral and Transmittance coefficients -mkdir -p crtm_coeffs -for file in `awk '{if($1!~"!"){print $1}}' satinfo | sort | uniq` ;do - $FCPLN $RTMFIX/${file}.SpcCoeff.bin ./crtm_coeffs/ - $FCPLN $RTMFIX/${file}.TauCoeff.bin ./crtm_coeffs/ -done - -$FCPLN $RTMFIX/Nalli.IRwater.EmisCoeff.bin ./crtm_coeffs/Nalli.IRwater.EmisCoeff.bin -$FCPLN $RTMFIX/NPOESS.IRice.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRice.EmisCoeff.bin -$FCPLN $RTMFIX/NPOESS.IRland.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRland.EmisCoeff.bin -$FCPLN $RTMFIX/NPOESS.IRsnow.EmisCoeff.bin ./crtm_coeffs/NPOESS.IRsnow.EmisCoeff.bin -$FCPLN $RTMFIX/NPOESS.VISice.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISice.EmisCoeff.bin -$FCPLN $RTMFIX/NPOESS.VISland.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISland.EmisCoeff.bin -$FCPLN $RTMFIX/NPOESS.VISsnow.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISsnow.EmisCoeff.bin -$FCPLN $RTMFIX/NPOESS.VISwater.EmisCoeff.bin ./crtm_coeffs/NPOESS.VISwater.EmisCoeff.bin -$FCPLN $RTMFIX/FASTEM6.MWwater.EmisCoeff.bin ./crtm_coeffs/FASTEM6.MWwater.EmisCoeff.bin -$FCPLN $RTMFIX/AerosolCoeff.bin ./crtm_coeffs/AerosolCoeff.bin -$FCPLN $RTMFIX/CloudCoeff.bin ./crtm_coeffs/CloudCoeff.bin - -# Observational data -$FCPLN $PREPQC prepbufr -$FCPLN $PREPQCPF prepbufr_profl -$FCPLN $SATWND satwndbufr -$FCPLN $OSCATBF oscatbufr -$FCPLN $RAPIDSCATBF rapidscatbufr -$FCPLN $GSNDBF gsndrbufr -$FCPLN $GSNDBF1 gsnd1bufr -$FCPLN $B1HRS2 hirs2bufr -$FCPLN $B1MSU msubufr -$FCPLN $B1HRS3 hirs3bufr -$FCPLN $B1HRS4 hirs4bufr -$FCPLN $B1AMUA amsuabufr -$FCPLN $B1AMUB amsubbufr -$FCPLN $B1MHS mhsbufr -$FCPLN $ESHRS3 hirs3bufrears -$FCPLN $ESAMUA amsuabufrears -$FCPLN $ESAMUB amsubbufrears -#$FCPLN $ESMHS mhsbufrears -$FCPLN $HRS3DB hirs3bufr_db -$FCPLN $AMUADB amsuabufr_db -$FCPLN $AMUBDB amsubbufr_db -#$FCPLN $MHSDB mhsbufr_db -$FCPLN $SBUVBF sbuvbufr -$FCPLN $GOMEBF gomebufr -$FCPLN $OMIBF omibufr -$FCPLN $MLSBF mlsbufr -$FCPLN $SMIPCP ssmirrbufr -$FCPLN $TMIPCP tmirrbufr -$FCPLN $AIRSBF airsbufr -$FCPLN $IASIBF iasibufr -$FCPLN $ESIASI iasibufrears -$FCPLN $IASIDB iasibufr_db -$FCPLN $AMSREBF amsrebufr -$FCPLN $AMSR2BF amsr2bufr -$FCPLN $GMI1CRBF gmibufr -$FCPLN $SAPHIRBF saphirbufr -$FCPLN $SEVIRIBF seviribufr -$FCPLN $CRISBF crisbufr -$FCPLN $ESCRIS crisbufrears -$FCPLN $CRISDB crisbufr_db -$FCPLN $CRISFSBF crisfsbufr -#$FCPLN $ESCRISFS crisfsbufrears -#$FCPLN $CRISFSDB crisfsbufr_db -$FCPLN $ATMSBF atmsbufr -$FCPLN $ESATMS atmsbufrears -$FCPLN $ATMSDB atmsbufr_db -$FCPLN $SSMITBF ssmitbufr -$FCPLN $SSMISBF ssmisbufr -$FCPLN $GPSROBF gpsrobufr -$FCPLN $GLMBF glmbufr -$FCPLN $TCVITL tcvitl -$FCPLN $NSSTBF nsstbufr -$FCPLN $B1AVHAM avhambufr -$FCPLN $B1AVHPM avhpmbufr -$FCPLN $AHIBF ahibufr - -# Required guess fields -$FCPLN $GBIAS satbias_in -$FCPLN $GBIASPC satbias_pc -$FCPLN $GRADSTAT radstat.gdas -$FCPLN $GBIASAIR aircftbias_in - -$FCPLN $SIGG03 sigf03 -$FCPLN $SIGGES sigf06 -$FCPLN $SIGG09 sigf09 -$FCPLN $SFCG03 sfcf03 -$FCPLN $SFCGES sfcf06 -$FCPLN $SFCG09 sfcf09 -$FCPLN $NSTG03 nstf03 -$FCPLN $NSTGES nstf06 -$FCPLN $NSTG09 nstf09 - -if [[ "$DOHYBVAR" = "YES" && $JCAP != JCAP_A && $JCAP_A = $JCAP_ENKF ]]; then - if [[ -e $SFCGESENS_MEAN ]]; then - USE_READIN_ANL_SFCMASK=.true. - $FCPLN $SFCGESENS_MEAN sfcf06_anlgrid - else - echo "Warning: Inconsistent sfc mask between analysis and ensemble grids used in hybrid EnKF" - fi -fi - -if [[ $NST_GSI -gt 0 ]]; then - if [[ $NST_GSI -eq 3 ]]; then - $FCPLN $SFCGCY sfcgcy - else - $FCPLN $SFCANL sfcgcy - fi -fi - -if [[ "$DOHYBVAR" = "YES" ]]; then - mkdir -p ensemble_data - imem=1 - while [[ $imem -le $NMEM_ENS ]]; do - member="_mem"`printf %03i $imem` - if [ $l4densvar = .true. ]; then - sigens3=${SIGF03ENS}${member} - sigens4=${SIGF04ENS}${member} - sigens5=${SIGF05ENS}${member} - sigens6=${SIGF06ENS}${member} - sigens7=${SIGF07ENS}${member} - sigens8=${SIGF08ENS}${member} - sigens9=${SIGF09ENS}${member} - $FCPLN $sigens3 ./ensemble_data/sigf03_ens${member} - $FCPLN $sigens4 ./ensemble_data/sigf04_ens${member} - $FCPLN $sigens5 ./ensemble_data/sigf05_ens${member} - $FCPLN $sigens6 ./ensemble_data/sigf06_ens${member} - $FCPLN $sigens7 ./ensemble_data/sigf07_ens${member} - $FCPLN $sigens8 ./ensemble_data/sigf08_ens${member} - $FCPLN $sigens9 ./ensemble_data/sigf09_ens${member} - else - sigens=${SIGGESENS}${member} - $FCPLN $sigens ./ensemble_data/sigf06_ens${member} - fi - (( imem = $imem + 1 )) - done -fi - - -## NOTE: 10/01/2003, r.treadon -## (1) While the global_gsi can handle hourly forecast -## files, we do not currently utilize hourly input. -## To prevent misleading error messages in operations, -## test for file existence before cp -## -## (2) File gesfile_in is not currently used in the global_gsi -## To prevent misleading error messages in operations, -## test for file existence before cp -## -## (3) File biascor_in is not currently used in the global_gsi -## To prevent misleading error messages in operations, -## test for file existence before cp - - -if [[ -s $SIGG04 ]]; then - $FCPLN $SIGG04 sigf04 -fi -if [[ -s $SIGG05 ]]; then - $FCPLN $SIGG05 sigf05 -fi -if [[ -s $SIGG07 ]]; then - $FCPLN $SIGG07 sigf07 -fi -if [[ -s $SIGG08 ]]; then - $FCPLN $SIGG08 sigf08 -fi - -if [[ -s $SFCG04 ]]; then - $FCPLN $SFCG04 sfcf04 -fi -if [[ -s $SFCG05 ]]; then - $FCPLN $SFCG05 sfcf05 -fi -if [[ -s $SFCG07 ]]; then - $FCPLN $SFCG07 sfcf07 -fi -if [[ -s $SFCG08 ]]; then - $FCPLN $SFCG08 sfcf08 -fi - -if [[ -s $NSTG04 ]]; then - $FCPLN $NSTG04 nstf04 -fi -if [[ -s $NSTG05 ]]; then - $FCPLN $NSTG05 nstf05 -fi -if [[ -s $NSTG07 ]]; then - $FCPLN $NSTG07 nstf07 -fi -if [[ -s $NSTG08 ]]; then - $FCPLN $NSTG08 nstf08 -fi - -if [[ -s $GINCIN ]]; then - $FCPLN $GINCIN gesfile_in -fi -if [[ -s $BIASIN ]]; then - $FCPLN $BIASIN biascor_in -fi - -## NOTE: 10/01/2003, r.treadon -## Do not add above file existence tests since -## we do not link to files in operations - -if [ $FILESTYLE != 'C' ]; then - - # Output files - ln -fs $SIGANL siganl - if [ $l4densvar = .true. -a $lwrite4danl = .true. ]; then - ln -fs $SIGA03 siga03 - ln -fs $SIGA04 siga04 - ln -fs $SIGA05 siga05 - ln -fs $SIGA07 siga07 - ln -fs $SIGA08 siga08 - ln -fs $SIGA09 siga09 - fi - ln -fs $ABIAS satbias_out - ln -fs $ABIASPC satbias_pc.out - ln -fs $GINCOUT gesfile_out - ln -fs $BIASOUT biascor_out - ln -fs $ABIASAIR aircftbias_out - - if [ $NST_GSI -gt 0 ] ; then - ln -fs $NSTANL nstanl - ln -fs $SFCTSK sfctsk - if [[ "$DOHYBVAR" = "YES" ]]; then - ln -fs $DTFANL dtfanl - fi - if [ $NST_GSI -eq 3 ] ; then - ln -fs $SFCANL sfcanl - fi - fi -# If requested, create obs_input tarball - if [[ "$RUN_SELECT" = "YES" ]]; then - ln -fs $SELECT_OBS obs_input.tar - fi - -fi - -# If requested, copy and de-tar obs_input -if [[ "$USE_SELECT" = "YES" ]]; then - rm obs_input* - $FCPLN $SELECT_OBS ./obs_input.tar - tar -xvf obs_input.tar -fi - - -# If requested, copy and de-tar guess radstat file -if [ $USE_NEWRADBC = YES -a $USE_RADSTAT = YES ]; then - - if [[ $USE_CFP = YES ]]; then - rm $DATA/unzip.sh - rm $DATA/mp_unzip.sh - set +x -cat <<\EOFunzip > unzip.sh -#!/bin/ksh -{ echo - set -aux - diag_file=$1 - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameges=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameges -} -EOFunzip - set -x - chmod 755 $DATA/unzip.sh - fi - - listdiag=`tar xvf radstat.gdas | cut -d' ' -f2 | grep _ges` - for type in $listdiag; do - diag_file=`echo $type | cut -d',' -f1` - if [[ $USE_CFP = YES ]] ; then - echo "$DATA/unzip.sh $diag_file" | tee -a $DATA/mp_unzip.sh - else - fname=`echo $diag_file | cut -d'.' -f1` - date=`echo $diag_file | cut -d'.' -f2` - $UNCOMPRESS $diag_file - fnameges=$(echo $fname|sed 's/_ges//g') - mv $fname.$date $fnameges - fi - done -fi -if [ $USE_CFP = YES -a $USE_RADSTAT = YES ] ; then - chmod 755 $DATA/mp_unzip.sh - ncmd=`cat $DATA/mp_unzip.sh | wc -l` - if [ $ncmd -gt 0 ]; then - export APRUNCFP_UNZIP=$(eval echo $APRUNCFP) - $APRUNCFP_UNZIP $DATA/mp_unzip.sh - fi -fi - - -# Create global_gsi namelist -cat < gsiparm.anl - &SETUP - miter=2,niter(1)=50,niter(2)=150, - niter_no_qc(1)=25,niter_no_qc(2)=0, - write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., - qoption=2, - gencode=$IGEN,factqmin=5.0,factqmax=0.005,deltim=$DELTIM, - iguess=-1, - tzr_qc=$TZR_QC, - oneobtest=.false.,retrieval=.false.,l_foto=.false., - use_pbl=.false.,use_compress=.true.,nsig_ext=12,gpstop=50., - use_gfs_nemsio=${use_gfs_nemsio},use_readin_anl_sfcmask=${USE_READIN_ANL_SFCMASK},lrun_subdirs=${lrun_subdirs}, - crtm_coeffs_path='./crtm_coeffs/', - newpc4pred=.true.,adp_anglebc=.true.,angord=4,passive_bc=.true.,use_edges=.false., - diag_precon=.true.,step_start=1.e-3,emiss_bc=.true.,thin4d=.true.,cwoption=3, - $SETUP - / - &GRIDOPTS - JCAP_B=$JCAP,JCAP=$JCAP_A,NLAT=$NLAT_A,NLON=$NLON_A,nsig=$LEVS, - regional=.false.,nlayers(63)=3,nlayers(64)=6, - $GRIDOPTS - / - &BKGERR - vs=0.7, - hzscl=1.7,0.8,0.5, - hswgt=0.45,0.3,0.25, - bw=0.0,norsp=4, - bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, - bkgv_write=.false., - cwcoveqqcov=.false., - $BKGVERR - / - &ANBKGERR - anisotropic=.false., - $ANBKGERR - / - &JCOPTS - ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=5.0e7, - $JCOPTS - / - &STRONGOPTS - tlnmc_option=2,nstrong=1,nvmodes_keep=8,period_max=6.,period_width=1.5, - $STRONGOPTS - / - &OBSQC - dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.04, - use_poq7=.true.,qc_noirjaco3_pole=.true.,vqc=.true., - aircraft_t_bc=.true.,biaspredt=1000.0,upd_aircraft=.true.,cleanup_tail=.true., - $OBSQC - / - &OBS_INPUT - dmesh(1)=145.0,dmesh(2)=150.0,dmesh(3)=100.0,time_window_max=3.0, - $OBSINPUT - / -OBS_INPUT:: -! dfile dtype dplat dsis dval dthin dsfcalc - prepbufr ps null ps 0.0 0 0 - prepbufr t null t 0.0 0 0 - prepbufr_profl t null t 0.0 0 0 - prepbufr q null q 0.0 0 0 - prepbufr_profl q null q 0.0 0 0 - prepbufr pw null pw 0.0 0 0 - prepbufr uv null uv 0.0 0 0 - prepbufr_profl uv null uv 0.0 0 0 - satwndbufr uv null uv 0.0 0 0 - prepbufr spd null spd 0.0 0 0 - prepbufr dw null dw 0.0 0 0 - radarbufr rw null rw 0.0 0 0 - nsstbufr sst nsst sst 0.0 0 0 - gpsrobufr gps_bnd null gps 0.0 0 0 - ssmirrbufr pcp_ssmi dmsp pcp_ssmi 0.0 -1 0 - tmirrbufr pcp_tmi trmm pcp_tmi 0.0 -1 0 - sbuvbufr sbuv2 n16 sbuv8_n16 0.0 0 0 - sbuvbufr sbuv2 n17 sbuv8_n17 0.0 0 0 - sbuvbufr sbuv2 n18 sbuv8_n18 0.0 0 0 - hirs3bufr hirs3 n17 hirs3_n17 0.0 1 0 - hirs4bufr hirs4 metop-a hirs4_metop-a 0.0 1 1 - gimgrbufr goes_img g11 imgr_g11 0.0 1 0 - gimgrbufr goes_img g12 imgr_g12 0.0 1 0 - airsbufr airs aqua airs_aqua 0.0 1 1 - amsuabufr amsua n15 amsua_n15 0.0 1 1 - amsuabufr amsua n18 amsua_n18 0.0 1 1 - amsuabufr amsua metop-a amsua_metop-a 0.0 1 1 - airsbufr amsua aqua amsua_aqua 0.0 1 1 - amsubbufr amsub n17 amsub_n17 0.0 1 1 - mhsbufr mhs n18 mhs_n18 0.0 1 1 - mhsbufr mhs metop-a mhs_metop-a 0.0 1 1 - ssmitbufr ssmi f15 ssmi_f15 0.0 1 0 - amsrebufr amsre_low aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_mid aqua amsre_aqua 0.0 1 0 - amsrebufr amsre_hig aqua amsre_aqua 0.0 1 0 - ssmisbufr ssmis f16 ssmis_f16 0.0 1 0 - ssmisbufr ssmis f17 ssmis_f17 0.0 1 0 - ssmisbufr ssmis f18 ssmis_f18 0.0 1 0 - ssmisbufr ssmis f19 ssmis_f19 0.0 1 0 - gsnd1bufr sndrd1 g12 sndrD1_g12 0.0 1 0 - gsnd1bufr sndrd2 g12 sndrD2_g12 0.0 1 0 - gsnd1bufr sndrd3 g12 sndrD3_g12 0.0 1 0 - gsnd1bufr sndrd4 g12 sndrD4_g12 0.0 1 0 - gsnd1bufr sndrd1 g11 sndrD1_g11 0.0 1 0 - gsnd1bufr sndrd2 g11 sndrD2_g11 0.0 1 0 - gsnd1bufr sndrd3 g11 sndrD3_g11 0.0 1 0 - gsnd1bufr sndrd4 g11 sndrD4_g11 0.0 1 0 - gsnd1bufr sndrd1 g13 sndrD1_g13 0.0 1 0 - gsnd1bufr sndrd2 g13 sndrD2_g13 0.0 1 0 - gsnd1bufr sndrd3 g13 sndrD3_g13 0.0 1 0 - gsnd1bufr sndrd4 g13 sndrD4_g13 0.0 1 0 - iasibufr iasi metop-a iasi_metop-a 0.0 1 1 - gomebufr gome metop-a gome_metop-a 0.0 2 0 - omibufr omi aura omi_aura 0.0 2 0 - sbuvbufr sbuv2 n19 sbuv8_n19 0.0 0 0 - hirs4bufr hirs4 n19 hirs4_n19 0.0 1 1 - amsuabufr amsua n19 amsua_n19 0.0 1 1 - mhsbufr mhs n19 mhs_n19 0.0 1 1 - tcvitl tcp null tcp 0.0 0 0 - seviribufr seviri m08 seviri_m08 0.0 1 0 - seviribufr seviri m09 seviri_m09 0.0 1 0 - seviribufr seviri m10 seviri_m10 0.0 1 0 - hirs4bufr hirs4 metop-b hirs4_metop-b 0.0 1 1 - amsuabufr amsua metop-b amsua_metop-b 0.0 1 1 - mhsbufr mhs metop-b mhs_metop-b 0.0 1 1 - iasibufr iasi metop-b iasi_metop-b 0.0 1 1 - gomebufr gome metop-b gome_metop-b 0.0 2 0 - atmsbufr atms npp atms_npp 0.0 1 1 - atmsbufr atms n20 atms_n20 0.0 1 1 - crisbufr cris npp cris_npp 0.0 1 0 - crisfsbufr cris-fsr npp cris-fsr_npp 0.0 1 0 - crisfsbufr cris-fsr n20 cris-fsr_n20 0.0 1 0 - gsnd1bufr sndrd1 g14 sndrD1_g14 0.0 1 0 - gsnd1bufr sndrd2 g14 sndrD2_g14 0.0 1 0 - gsnd1bufr sndrd3 g14 sndrD3_g14 0.0 1 0 - gsnd1bufr sndrd4 g14 sndrD4_g14 0.0 1 0 - gsnd1bufr sndrd1 g15 sndrD1_g15 0.0 1 0 - gsnd1bufr sndrd2 g15 sndrD2_g15 0.0 1 0 - gsnd1bufr sndrd3 g15 sndrD3_g15 0.0 1 0 - gsnd1bufr sndrd4 g15 sndrD4_g15 0.0 1 0 - oscatbufr uv null uv 0.0 0 0 - mlsbufr mls30 aura mls30_aura 0.0 0 0 - avhambufr avhrr metop-a avhrr3_metop-a 0.0 1 0 - avhpmbufr avhrr n18 avhrr3_n18 0.0 1 0 - amsr2bufr amsr2 gcom-w1 amsr2_gcom-w1 0.0 3 0 - gmibufr gmi gpm gmi_gpm 0.0 3 0 - saphirbufr saphir meghat saphir_meghat 0.0 3 0 - ahibufr ahi himawari8 ahi_himawari8 0.0 3 0 - rapidscatbufr uv null uv 0.0 0 0 - glmbufr light g16 light 0.0 0 0 -:: - &SUPEROB_RADAR - $SUPERRAD - / - &LAG_DATA - $LAGDATA - / - &HYBRID_ENSEMBLE - ensemble_path='./ensemble_data/', - $HYBRID_ENSEMBLE - / - &RAPIDREFRESH_CLDSURF - dfi_radar_latent_heat_time_period=30.0, - $RAPIDREFRESH_CLDSURF - / - &CHEM - $CHEM - / - &SINGLEOB_TEST - maginnov=0.1,magoberr=0.1,oneob_type='t', - oblat=45.,oblon=180.,obpres=1000.,obdattim=${CDATE}, - obhourset=0., - $SINGLEOB - / - &NST - nst_gsi=$NST_GSI,nstinfo=$NSTINFO,fac_dtl=$FAC_DTL,fac_tsl=$FAC_TSL, - zsea1=$ZSEA1,zsea2=$ZSEA2, - $NST -/ -EOF - - -# Run global_gsi -eval $PGM < gsiparm.anl $REDOUT$PGMOUT $REDERR$PGMERR -rc=$? - -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 2 - - -if [[ $FILESTYLE = 'C' ]]; then - # Output files - $NCP siganl $SIGANL - if [ $l4densvar = .true. -a $lwrite4danl = .true. ]; then - $NCP siga03 $SIGA03 - $NCP siga04 $SIGA04 - $NCP siga05 $SIGA05 - $NCP siga07 $SIGA07 - $NCP siga08 $SIGA08 - $NCP siga09 $SIGA09 - fi - $NCP satbias_out $ABIAS - $NCP satbias_pc.out $ABIASPC - $NCP aircftbias_out $ABIASAIR - if [[ -s gesfile_out ]]; then - $NCP gesfile_out $GINCOUT - fi - if [[ -s biascor_out ]]; then - $NCP biascor_out $BIASOUT - fi - if [ $NST_GSI -gt 0 ] ; then - $NCP nstanl $NSTANL - if [[ "$DOHYBVAR" = "YES" ]]; then - $NCP dtfanl $DTFANL - fi - if [ $NST_GSI -eq 3 ] ; then - $NCP sfcanl $SFCANL - fi - fi -fi - -# For eobs, eomn and eupd -if [[ -s satbias_out.int ]]; then - $NCP satbias_out.int $ABIASe -else - $NCP satbias_in $ABIASe -fi - -if test "$SAVEGES" = "YES" -then - cp $SFCANL $GESOUT/${PREINP}sfcanl - if [ $NST_GSI -gt 0 ] ; then - cp $NSTANL $GESOUT/${PREINP}nstanl - fi - cp $SIGANL $GESOUT/${PREINP}sanl - cp $ABIAS $GESOUT/${PREINP}abias - cp $ABIASPC $GESOUT/${PREINP}abias_pc - cp $ABIASAIR $GESOUT/${PREINP}abias_air -fi -if test "$SENDCOM" = "YES" -then - cp $SFCANL $COMOUT/${PREINP}sfcanl - cp $SIGANL $COMOUT/${PREINP}sanl - cp $ABIAS $COMOUT/${PREINP}abias - cp $ABIASPC $COMOUT/${PREINP}abias_pc - cp $ABIASAIR $COMOUT/${PREINP}abias_air - if [ $NST_GSI -gt 0 ] ; then - cp $NSTANL $COMOUT/${PREINP}nstanl - fi -fi - -############################################################## -# Add this statement to release the forecast job once the GSI -# step is completed. Do not release forecast when RUN=enkf -############################################################## -if [ "$SENDECF" = YES -a "$RUN" != enkf ] -then - ecflow_client --event release_fcst -fi - -# Cat runtime output files. -cat fort.2* > $GSISTAT -cat fort.2* - -# If requested, create obs_input tarball -if [[ "$RUN_SELECT" = "YES" ]]; then - echo $(date) START tar obs_input >&2 - rm obs_input.tar - if [[ $FILESTYLE = 'L' ]]; then - ln -fs $SELECT_OBS ./obs_input.tar - fi - tar -cvf obs_input.tar obs_input* - if [[ $FILESTYLE = 'C' ]]; then - $NCP obs_input.tar $SELECT_OBS - fi - chmod 750 $SELECT_OBS - ${CHGRP_CMD} $SELECT_OBS - echo $(date) END tar obs_input >&2 -fi - -# 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. -# - -cd $DATA # we should already be in $DATA, but extra cd to be sure. - -# Set up lists and variables for various types of diagnostic files. -ntype=3 - -diagtype[0]="conv" -diagtype[1]="pcp_ssmi_dmsp pcp_tmi_trmm" -diagtype[2]="sbuv2_n16 sbuv2_n17 sbuv2_n18 sbuv2_n19 gome_metop-a gome_metop-b omi_aura mls30_aura" -diagtype[3]="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 sndrd1_g14 sndrd2_g14 sndrd3_g14 sndrd4_g14 sndrd1_g15 sndrd2_g15 sndrd3_g15 sndrd4_g15 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g11 imgr_g12 imgr_g14 imgr_g15 ssmi_f13 ssmi_f15 hirs4_n18 hirs4_metop-a amsua_n18 amsua_metop-a mhs_n18 mhs_metop-a amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_f16 ssmis_f17 ssmis_f18 ssmis_f19 ssmis_f20 iasi_metop-a hirs4_n19 amsua_n19 mhs_n19 seviri_m08 seviri_m09 seviri_m10 seviri_m11 cris_npp cris-fsr_npp cris-fsr_n20 atms_npp atms_n20 hirs4_metop-b amsua_metop-b mhs_metop-b iasi_metop-b avhrr_n18 avhrr_metop-a amsr2_gcom-w1 gmi_gpm saphir_meghat ahi_himawari8" -diagtype[4]="light" - -diaglist[0]=listcnv -diaglist[1]=listpcp -diaglist[2]=listozn -diaglist[3]=listrad -diaglist[4]=listlig - -diagfile[0]=$CNVSTAT -diagfile[1]=$PCPSTAT -diagfile[2]=$OZNSTAT -diagfile[3]=$RADSTAT -diagfile[4]=$LIGSTAT - -numfile[0]=0 -numfile[1]=0 -numfile[2]=0 -numfile[3]=0 - - -# Set diagnostic file prefix based on lrun_subdirs variable -if [ $lrun_subdirs = ".true." ]; then - prefix=" dir.*/" -else - prefix="pe*" -fi - -if [[ $USE_CFP = YES ]]; then - rm $DATA/diag.sh - rm $DATA/mp_diag.sh - set +x -cat <<\EOFdiag > $DATA/diag.sh -#!/bin/ksh -{ echo - set -aux - lrun_subdirs=$1 - type=$2 - loop=$3 - string=$4 - CDATE=$5 - DIAG_COMPRESS=$6 - DIAG_SUFFIX=$7 - if [ $lrun_subdirs = ".true." ]; then - prefix=" dir.*/" - else - prefix="pe*" - fi - file=diag_${type}_${string}.${CDATE}${DIAG_SUFFIX} - cat ${prefix}${type}_${loop}* > $file - if [[ $DIAG_COMPRESS = YES ]]; then - $COMPRESS $file - fi -} -EOFdiag - set -x - chmod 755 $DATA/diag.sh -fi - -# Collect diagnostic files as a function of loop and type. -loops="01 03" -for loop in $loops; do - case $loop in - 01) string=ges;; - 03) string=anl;; - *) string=$loop;; - esac - echo $(date) START loop $string >&2 - n=-1 - while [ $((n+=1)) -le $ntype ] ;do - for type in `echo ${diagtype[n]}`; do - count=`ls ${prefix}${type}_${loop}* | $wc -l` - if [ $count -gt 0 ]; then - if [[ $USE_CFP = YES ]]; then - echo "$DATA/diag.sh $lrun_subdirs $type $loop $string $CDATE $DIAG_COMPRESS $DIAG_SUFFIX" | tee -a $DATA/mp_diag.sh - else - cat ${prefix}${type}_${loop}* > diag_${type}_${string}.${CDATE}${DIAG_SUFFIX} - fi - echo "diag_${type}_${string}.${CDATE}*" >> ${diaglist[n]} - numfile[n]=`expr ${numfile[n]} + 1` - fi - done - done - echo $(date) END loop $string >&2 -done - -cd $DATA # we should already be in $DATA, but extra cd to be sure. - -# If requested, compress diagnostic files -if [ $DIAG_COMPRESS = YES -a $USE_CFP = NO ]; then - echo $(date) START $COMPRESS diagnostic files >&2 - for file in `ls diag_*${CDATE}${DIAG_SUFFIX}`; do - $COMPRESS $file - done - echo $(date) END $COMPRESS diagnostic files >&2 -fi - -if [[ $USE_CFP = YES ]] ; then - chmod 755 $DATA/mp_diag.sh - ncmd=`cat $DATA/mp_diag.sh | wc -l` - if [ $ncmd -gt 0 ]; then - export APRUNCFP_DIAG=$(eval echo $APRUNCFP) - $APRUNCFP_DIAG $DATA/mp_diag.sh - fi -fi - -# If requested, create diagnostic file tarballs -if [[ $DIAG_TARBALL = YES ]]; then - echo $(date) START tar diagnostic files >&2 - n=-1 - while [ $((n+=1)) -le $ntype ] ;do - TAROPTS="-uvf" - if [ ! -s ${diagfile[n]} ]; then - TAROPTS="-cvf" - fi - if [ ${numfile[n]} -gt 0 ]; then - tar $TAROPTS ${diagfile[n]} `cat ${diaglist[n]}` - fi - done - -# Restrict CNVSTAT - chmod 750 $CNVSTAT - ${CHGRP_CMD} $CNVSTAT - -# Restrict RADSTAT - chmod 750 $RADSTAT - ${CHGRP_CMD} $RADSTAT - - echo $(date) END tar diagnostic files >&2 -fi - - -################################################################################ - -if test "$RUN" = 'gdas' -then - if test "$SENDDBN" = 'YES' - then - $DBNROOT/bin/dbn_alert MODEL GDAS1RADSTAT $job $RADSTAT - fi -fi - -if test "$RUN" = 'gfs' -then - if test "$SENDDBN" = 'YES' - then - $DBNROOT/bin/dbn_alert MODEL GFS_abias $job $COMOUT/${PREINP}abias - fi -fi - -################################################################################ -# Postprocessing -cd $pwd -[[ $mkdata = YES ]]&&rmdir $DATA -$ENDSCRIPT - -set +x -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/scripts/exglobal_analysis_fv3gfs.sh.ecf b/scripts/exglobal_atmos_analysis.sh similarity index 94% rename from scripts/exglobal_analysis_fv3gfs.sh.ecf rename to scripts/exglobal_atmos_analysis.sh index ac1805febc..ebca996f30 100755 --- a/scripts/exglobal_analysis_fv3gfs.sh.ecf +++ b/scripts/exglobal_atmos_analysis.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_analysis_fv3gfs.sh.ecf.sh +# Script name: exglobal_atmos_analysis.sh # Script description: Makes a global model upper air analysis with GSI # # Author: Rahul Mahajan Org: NCEP/EMC Date: 2017-03-02 @@ -26,18 +26,6 @@ fi # Directories. pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD} -export HOMEgsi=${HOMEgsi:-$NWPROD} -FIXgsi=${FIXgsi:-$HOMEgsi/fix} -GSIEXEC=${GSIEXEC:-$HOMEgsi/exec/global_gsi.x} -export DATA=${DATA:-$pwd/analysis.$$} -export COMIN=${COMIN:-$pwd} -export COMIN_OBS=${COMIN_OBS:-$COMIN} -export COMIN_GES=${COMIN_GES:-$COMIN} -export COMIN_GES_ENS=${COMIN_GES_ENS:-$COMIN_GES} -export COMIN_GES_OBS=${COMIN_GES_OBS:-$COMIN_GES} -export COMOUT=${COMOUT:-$COMIN} # Base variables CDATE=${CDATE:-"2001010100"} @@ -59,7 +47,6 @@ export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} export NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get} export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} -export CATEXEC=${CATEXEC:-$HOMEgsi/exec/nc_diag_cat_serial.x} export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} @@ -105,19 +92,20 @@ DOIAU=${DOIAU:-"NO"} export IAUFHRS=${IAUFHRS:-"6"} # Dependent Scripts and Executables +GSIEXEC=${GSIEXEC:-$HOMEgfs/exec/global_gsi.x} export NTHREADS_CALCINC=${NTHREADS_CALCINC:-1} export APRUN_CALCINC=${APRUN_CALCINC:-${APRUN:-""}} export APRUN_CALCANL=${APRUN_CALCANL:-${APRUN:-""}} export APRUN_CHGRES=${APRUN_CALCANL:-${APRUN:-""}} -export CALCINCEXEC=${CALCINCEXEC:-$HOMEgsi/exec/calc_increment_ens.x} -export CALCINCNCEXEC=${CALCINCNCEXEC:-$HOMEgsi/exec/calc_increment_ens_ncio.x} -export CALCANLEXEC=${CALCANLEXEC:-$HOMEgsi/exec/calc_analysis.x} -export CHGRESNCEXEC=${CHGRESNCEXEC:-$HOMEgfs/exec/chgres_recenter_ncio.exe} -export CHGRESINCEXEC=${CHGRESINCEXEC:-$HOMEgsi/exec/interp_inc.x} -CHGRESEXEC=${CHGRESEXEC:-$HOMEgfs/exec/chgres_recenter.exe} +export CALCINCEXEC=${CALCINCEXEC:-$HOMEgfs/exec/calc_increment_ens.x} +export CALCINCNCEXEC=${CALCINCNCEXEC:-$HOMEgfs/exec/calc_increment_ens_ncio.x} +export CALCANLEXEC=${CALCANLEXEC:-$HOMEgfs/exec/calc_analysis.x} +export CHGRESNCEXEC=${CHGRESNCEXEC:-$HOMEgfs/exec/enkf_chgres_recenter_nc.x} +export CHGRESINCEXEC=${CHGRESINCEXEC:-$HOMEgfs/exec/interp_inc.x} +CHGRESEXEC=${CHGRESEXEC:-$HOMEgfs/exec/enkf_chgres_recenter.x} export NTHREADS_CHGRES=${NTHREADS_CHGRES:-24} -CALCINCPY=${CALCINCPY:-$HOMEgsi/ush/calcinc_gfs.py} -CALCANLPY=${CALCANLPY:-$HOMEgsi/ush/calcanl_gfs.py} +CALCINCPY=${CALCINCPY:-$HOMEgfs/ush/calcinc_gfs.py} +CALCANLPY=${CALCANLPY:-$HOMEgfs/ush/calcanl_gfs.py} # OPS flags RUN=${RUN:-""} @@ -188,6 +176,7 @@ GPSROBF=${GPSROBF:-${COMIN_OBS}/${OPREFIX}gpsro.tm00.bufr_d${OSUFFIX}} TCVITL=${TCVITL:-${COMIN_OBS}/${OPREFIX}syndata.tcvitals.tm00} B1AVHAM=${B1AVHAM:-${COMIN_OBS}/${OPREFIX}avcsam.tm00.bufr_d${OSUFFIX}} B1AVHPM=${B1AVHPM:-${COMIN_OBS}/${OPREFIX}avcspm.tm00.bufr_d${OSUFFIX}} +HDOB=${HDOB:-${COMIN_OBS}/${OPREFIX}hdob.tm00.bufr_d${OSUFFIX}} # Guess files GPREFIX=${GPREFIX:-""} @@ -243,7 +232,12 @@ fi DIAG_COMPRESS=${DIAG_COMPRESS:-"YES"} DIAG_TARBALL=${DIAG_TARBALL:-"YES"} USE_CFP=${USE_CFP:-"NO"} -DIAG_DIR=${COMOUT}/${APREFIX}gsidiags +CFP_MP=${CFP_MP:-"NO"} +nm="" +if [ $CFP_MP = "YES" ]; then + nm=0 +fi +DIAG_DIR=${DIAG_DIR:-${COMOUT}/gsidiags} # Set script / GSI control parameters DOHYBVAR=${DOHYBVAR:-"NO"} @@ -417,45 +411,6 @@ fi cd $DATA || exit 99 -################################################################################ -# Clean the run-directory -rm berror_stats hybens_info -rm scaninfo satbias_angle satinfo -rm anavinfo convinfo ozinfo pcpinfo aeroinfo vqctp001.dat -rm errtable atms_beamwidth.txt -rm cloudy_radiance_info.txt - -rm prepbufr prepbufr_profl -rm gpsrobufr -rm tcvitl -rm gsndrbufr gsnd1bufr -rm ssmisbufr ssmitbufr ssmirrbufr tmirrbufr -rm sbuvbufr gomebufr omibufr mlsbufr msubufr ompsnpbufr ompstcbufr -rm airsbufr -rm iasibufr iasibufrears iasibufr_db -rm amsrebufr amsr2bufr -rm gmibufr saphirbufr -rm hirs2bufr hirs3bufr hirs4bufr hirs3bufr_db hirs3bufrears -rm amsuabufr amsuabufr_db amsuabufrears -rm amsubbufr amsubbufr_db amsubbufrears -rm mhsbufr mhsbufr_db mhsbufrears -rm seviribufr ahibufr abibufr -rm crisbufr crisbufrears crisbufr_db crisfsbufr crisfsbufrears crisfsbufr_db -rm atmsbufr atmsbufr_db atmsbufrears - -rm satbias_in satbias_ang.in satbias_out satbias_pc satbias_pc.out satbias_out.int -rm aircftbias_in aircftbias_out - -rm sfcf* sigf* nstf* -rm sfca* siga* nsta* -rm sigi* - -rm gsiparm.anl - -rm -rf dir* -rm -rf crtm_coeffs -rm -rf ensemble_data - ############################################################## # Fixed files $NLN $BERROR berror_stats @@ -481,12 +436,12 @@ if [ $USE_CORRELATED_OBERRS == "YES" ]; then $NLN ${FIXgsi}/Rcov* $DATA echo "using correlated obs error" else - echo "Error: Satellite error covariance files are missing." + echo "FATAL ERROR: Satellite error covariance files (Rcov) are missing." echo "Check for the required Rcov files in " $ANAVINFO exit 1 fi else - echo "Error: Satellite error covariance info missing in " $ANAVINFO + echo "FATAL ERROR: Satellite error covariance info missing in " $ANAVINFO exit 1 fi @@ -577,6 +532,7 @@ $NLN $B1AVHAM avhambufr $NLN $B1AVHPM avhpmbufr $NLN $AHIBF ahibufr $NLN $ABIBF abibufr +$NLN $HDOB hdobbufr [[ $DONST = "YES" ]] && $NLN $NSSTBF nsstbufr @@ -668,7 +624,7 @@ if [ $GENDIAG = "YES" ] ; then $NLN $DIAG_DIR/$pedir $pedir done else - echo "lrun_subdirs must be true; exit with error" + echo "FATAL ERROR: lrun_subdirs must be true. lrun_subdirs=$lrun_subdirs" $ERRSCRIPT || exit 2 fi fi @@ -721,7 +677,8 @@ fi # If requested, copy and de-tar guess radstat file if [ $USE_RADSTAT = "YES" ]; then if [ $USE_CFP = "YES" ]; then - rm $DATA/unzip.sh $DATA/mp_unzip.sh + [[ -f $DATA/unzip.sh ]] && rm $DATA/unzip.sh + [[ -f $DATA/mp_unzip.sh ]] && rm $DATA/mp_unzip.sh cat > $DATA/unzip.sh << EOFunzip #!/bin/sh diag_file=\$1 @@ -739,7 +696,10 @@ EOFunzip for type in $listdiag; do diag_file=$(echo $type | cut -d',' -f1) if [ $USE_CFP = "YES" ] ; then - echo "$DATA/unzip.sh $diag_file $DIAG_SUFFIX" | tee -a $DATA/mp_unzip.sh + echo "$nm $DATA/unzip.sh $diag_file $DIAG_SUFFIX" | tee -a $DATA/mp_unzip.sh + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nm=$((nm+1)) + fi else fname=$(echo $diag_file | cut -d'.' -f1) date=$(echo $diag_file | cut -d'.' -f2) @@ -756,6 +716,9 @@ EOFunzip ncmd_max=$((ncmd < npe_node_max ? ncmd : npe_node_max)) APRUNCFP_UNZIP=$(eval echo $APRUNCFP) $APRUNCFP_UNZIP $DATA/mp_unzip.sh + export ERR=$? + export err=$ERR + $ERRSCRIPT || exit 3 fi fi fi # if [ $USE_RADSTAT = "YES" ] @@ -850,13 +813,17 @@ OBS_INPUT:: prepbufr ps null ps 0.0 0 0 prepbufr t null t 0.0 0 0 prepbufr_profl t null t 0.0 0 0 + hdobbufr t null t 0.0 0 0 prepbufr q null q 0.0 0 0 prepbufr_profl q null q 0.0 0 0 + hdobbufr q null q 0.0 0 0 prepbufr pw null pw 0.0 0 0 prepbufr uv null uv 0.0 0 0 prepbufr_profl uv null uv 0.0 0 0 satwndbufr uv null uv 0.0 0 0 + hdobbufr uv null uv 0.0 0 0 prepbufr spd null spd 0.0 0 0 + hdobbufr spd null spd 0.0 0 0 prepbufr dw null dw 0.0 0 0 radarbufr rw null rw 0.0 0 0 nsstbufr sst nsst sst 0.0 0 0 @@ -983,14 +950,19 @@ EOF cat gsiparm.anl ############################################################## -# Make atmospheric analysis -$NCP $GSIEXEC $DATA/gsi.x +# Run gsi analysis + export OMP_NUM_THREADS=$NTHREADS_GSI -$APRUN_GSI ${DATA}/gsi.x 1>&1 2>&2 +export pgm=$GSIEXEC +. prep_step + +$NCP $GSIEXEC $DATA +$APRUN_GSI ${DATA}/$(basename $GSIEXEC) 1>&1 2>&2 +rc=$? -export ERR=$? +export ERR=$rc export err=$ERR -$ERRSCRIPT || exit 2 +$ERRSCRIPT || exit 4 ############################################################## @@ -1002,7 +974,7 @@ if [ $DO_CALC_INCREMENT = "YES" ]; then export ERR=$rc export err=$ERR - $ERRSCRIPT || exit 3 + $ERRSCRIPT || exit 5 fi ############################################################## @@ -1098,7 +1070,7 @@ cat fort.2* > $GSISTAT # If requested, create obsinput tarball from obs_input.* files if [ $RUN_SELECT = "YES" ]; then echo $(date) START tar obs_input >&2 - rm obsinput.tar + [[ -s obsinput.tar ]] && rm obsinput.tar $NLN $SELECT_OBS obsinput.tar tar -cvf obsinput.tar obs_input.* chmod 750 $SELECT_OBS @@ -1107,6 +1079,14 @@ if [ $RUN_SELECT = "YES" ]; then echo $(date) END tar obs_input >&2 fi +################################################################################ +# Send alerts +if [ $SENDDBN = "YES" ]; then + if [ $RUN = "gfs" ]; then + $DBNROOT/bin/dbn_alert MODEL GFS_abias $job $ABIAS + fi +fi + ################################################################################ # Postprocessing cd $pwd diff --git a/scripts/exglobal_analcalc_fv3gfs.sh.ecf b/scripts/exglobal_atmos_analysis_calc.sh similarity index 84% rename from scripts/exglobal_analcalc_fv3gfs.sh.ecf rename to scripts/exglobal_atmos_analysis_calc.sh index c40b7c9783..7204af81f0 100755 --- a/scripts/exglobal_analcalc_fv3gfs.sh.ecf +++ b/scripts/exglobal_atmos_analysis_calc.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_anlcalc_fv3gfs.sh.ecf.sh +# Script name: exglobal_atmos_analysis_calc.sh # Script description: Runs non-diagnostic file tasks after GSI analysis is performed # # Author: Cory Martin Org: NCEP/EMC Date: 2020-03-03 @@ -26,17 +26,7 @@ fi # Directories. pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD} -export HOMEgsi=${HOMEgsi:-$NWPROD} export FIXgsm=${FIXgsm:-$HOMEgfs/fix/fix_am} -export DATA=${DATA:-$pwd/anlcalc.$$} -export COMIN=${COMIN:-$pwd} -export COMIN_OBS=${COMIN_OBS:-$COMIN} -export COMIN_GES=${COMIN_GES:-$COMIN} -export COMIN_GES_ENS=${COMIN_GES_ENS:-$COMIN_GES} -export COMIN_GES_OBS=${COMIN_GES_OBS:-$COMIN_GES} -export COMOUT=${COMOUT:-$COMIN} # Base variables CDATE=${CDATE:-"2001010100"} @@ -58,7 +48,6 @@ export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} export NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get} export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} -export CATEXEC=${CATEXEC:-$HOMEgsi/exec/nc_diag_cat_serial.x} export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} @@ -78,12 +67,12 @@ export APRUN_CALCINC=${APRUN_CALCINC:-${APRUN:-""}} export APRUN_CALCANL=${APRUN_CALCANL:-${APRUN:-""}} export APRUN_CHGRES=${APRUN_CALCANL:-${APRUN:-""}} -export CALCANLEXEC=${CALCANLEXEC:-$HOMEgsi/exec/calc_analysis.x} -export CHGRESNCEXEC=${CHGRESNCEXEC:-$HOMEgfs/exec/chgres_recenter_ncio.exe} -export CHGRESINCEXEC=${CHGRESINCEXEC:-$HOMEgsi/exec/interp_inc.x} +export CALCANLEXEC=${CALCANLEXEC:-$HOMEgfs/exec/calc_analysis.x} +export CHGRESNCEXEC=${CHGRESNCEXEC:-$HOMEgfs/exec/enkf_chgres_recenter_nc.x} +export CHGRESINCEXEC=${CHGRESINCEXEC:-$HOMEgfs/exec/interp_inc.x} export NTHREADS_CHGRES=${NTHREADS_CHGRES:-1} -CALCINCPY=${CALCINCPY:-$HOMEgsi/ush/calcinc_gfs.py} -CALCANLPY=${CALCANLPY:-$HOMEgsi/ush/calcanl_gfs.py} +CALCINCPY=${CALCINCPY:-$HOMEgfs/ush/calcinc_gfs.py} +CALCANLPY=${CALCANLPY:-$HOMEgfs/ush/calcanl_gfs.py} DOGAUSFCANL=${DOGAUSFCANL-"NO"} GAUSFCANLSH=${GAUSFCANLSH:-$HOMEgfs/ush/gaussian_sfcanl.sh} @@ -106,9 +95,6 @@ ATMGES=${ATMGES:-${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}} ATMG07=${ATMG07:-${COMIN_GES}/${GPREFIX}atmf007${GSUFFIX}} ATMG08=${ATMG08:-${COMIN_GES}/${GPREFIX}atmf008${GSUFFIX}} ATMG09=${ATMG09:-${COMIN_GES}/${GPREFIX}atmf009${GSUFFIX}} -GBIAS=${GBIAS:-${COMIN_GES}/${GPREFIX}abias} -GBIASPC=${GBIASPC:-${COMIN_GES}/${GPREFIX}abias_pc} -GBIASAIR=${GBIASAIR:-${COMIN_GES}/${GPREFIX}abias_air} # Analysis files export APREFIX=${APREFIX:-""} @@ -224,14 +210,6 @@ fi echo "$CDUMP $CDATE atmanl and sfcanl done at `date`" > $COMOUT/${APREFIX}loganl.txt -################################################################################ -# Send alerts -if [ $SENDDBN = "YES" ]; then - if [ $RUN = "gfs" ]; then - $DBNROOT/bin/dbn_alert MODEL GFS_abias $job $ABIAS - fi -fi - ################################################################################ # Postprocessing cd $pwd diff --git a/scripts/exglobal_analdiag_fv3gfs.sh.ecf b/scripts/exglobal_diag.sh similarity index 81% rename from scripts/exglobal_analdiag_fv3gfs.sh.ecf rename to scripts/exglobal_diag.sh index ad07327f25..1afc49f246 100755 --- a/scripts/exglobal_analdiag_fv3gfs.sh.ecf +++ b/scripts/exglobal_diag.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exglobal_analdiag_fv3gfs.sh.ecf.sh +# Script name: exglobal_diag.sh # Script description: Creates diagnostic files after GSI analysis is performed # # Author: Cory Martin Org: NCEP/EMC Date: 2020-03-03 @@ -19,24 +19,13 @@ # Set environment. export VERBOSE=${VERBOSE:-"YES"} -if [ $VERBOSE = "YES" ]; then +if [[ "$VERBOSE" = "YES" ]]; then echo $(date) EXECUTING $0 $* >&2 set -x fi # Directories. pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD} -export HOMEgsi=${HOMEgsi:-$NWPROD} -export FIXgsm=${FIXgsm:-$HOMEgfs/fix/fix_am} -export DATA=${DATA:-$pwd/analdiag.$$} -export COMIN=${COMIN:-$pwd} -export COMIN_OBS=${COMIN_OBS:-$COMIN} -export COMIN_GES=${COMIN_GES:-$COMIN} -export COMIN_GES_ENS=${COMIN_GES_ENS:-$COMIN_GES} -export COMIN_GES_OBS=${COMIN_GES_OBS:-$COMIN_GES} -export COMOUT=${COMOUT:-$COMIN} # Base variables CDATE=${CDATE:-"2001010100"} @@ -58,7 +47,7 @@ export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} export NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get} export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} -export CATEXEC=${CATEXEC:-$HOMEgsi/exec/nc_diag_cat_serial.x} +export CATEXEC=${CATEXEC:-$HOMEgfs/exec/ncdiag_cat.x} export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} @@ -84,10 +73,10 @@ CNVSTAT=${CNVSTAT:-${COMOUT}/${APREFIX}cnvstat} OZNSTAT=${OZNSTAT:-${COMOUT}/${APREFIX}oznstat} # Remove stat file if file already exists -if [ -s $RADSTAT ]; then rm -f $RADSTAT; fi -if [ -s $PCPSTAT ]; then rm -f $PCPSTAT; fi -if [ -s $CNVSTAT ]; then rm -f $CNVSTAT; fi -if [ -s $OZNSTAT ]; then rm -f $OZNSTAT; fi +[[ -s $RADSTAT ]] && rm -f $RADSTAT +[[ -s $PCPSTAT ]] && rm -f $PCPSTAT +[[ -s $CNVSTAT ]] && rm -f $CNVSTAT +[[ -s $OZNSTAT ]] && rm -f $OZNSTAT # Obs diag GENDIAG=${GENDIAG:-"YES"} @@ -98,7 +87,13 @@ fi DIAG_COMPRESS=${DIAG_COMPRESS:-"YES"} DIAG_TARBALL=${DIAG_TARBALL:-"YES"} USE_CFP=${USE_CFP:-"NO"} -DIAG_DIR=${COMOUT}/${APREFIX}gsidiags/ +CFP_MP=${CFP_MP:-"NO"} +nm="" +if [ $CFP_MP = "YES" ]; then + nm=0 +fi +DIAG_DIR=${DIAG_DIR:-${COMOUT}/gsidiags} +REMOVE_DIAG_DIR=${REMOVE_DIAG_DIR:-"NO"} # Set script / GSI control parameters lrun_subdirs=${lrun_subdirs:-".true."} @@ -114,13 +109,15 @@ if [ $GENDIAG = "YES" ] ; then done else echo "lrun_subdirs must be true; exit with error" + export ERR=$? + export err=$ERR $ERRSCRIPT || exit 2 fi # Set up lists and variables for various types of diagnostic files. ntype=3 - diagtype[0]="conv conv_gps conv_ps conv_pw conv_q conv_sst conv_t conv_tcp conv_uv" + diagtype[0]="conv conv_gps conv_ps conv_pw conv_q conv_sst conv_t conv_tcp conv_uv conv_spd" diagtype[1]="pcp_ssmi_dmsp pcp_tmi_trmm" diagtype[2]="sbuv2_n16 sbuv2_n17 sbuv2_n18 sbuv2_n19 gome_metop-a gome_metop-b omi_aura mls30_aura ompsnp_npp ompstc8_npp gome_metop-c" diagtype[3]="hirs2_n14 msu_n14 sndr_g08 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 sndrd1_g14 sndrd2_g14 sndrd3_g14 sndrd4_g14 sndrd1_g15 sndrd2_g15 sndrd3_g15 sndrd4_g15 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g11 imgr_g12 imgr_g14 imgr_g15 ssmi_f13 ssmi_f15 hirs4_n18 hirs4_metop-a amsua_n18 amsua_metop-a mhs_n18 mhs_metop-a amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_f16 ssmis_f17 ssmis_f18 ssmis_f19 ssmis_f20 iasi_metop-a hirs4_n19 amsua_n19 mhs_n19 seviri_m08 seviri_m09 seviri_m10 seviri_m11 cris_npp cris-fsr_npp cris-fsr_n20 atms_npp atms_n20 hirs4_metop-b amsua_metop-b mhs_metop-b iasi_metop-b avhrr_metop-b avhrr_n18 avhrr_n19 avhrr_metop-a amsr2_gcom-w1 gmi_gpm saphir_meghat ahi_himawari8 abi_g16 abi_g17 amsua_metop-c mhs_metop-c iasi_metop-c avhrr_metop-c" @@ -148,7 +145,8 @@ if [ $GENDIAG = "YES" ] ; then fi if [ $USE_CFP = "YES" ]; then - rm $DATA/diag.sh $DATA/mp_diag.sh + [[ -f $DATA/diag.sh ]] && rm $DATA/diag.sh + [[ -f $DATA/mp_diag.sh ]] && rm $DATA/mp_diag.sh cat > $DATA/diag.sh << EOFdiag #!/bin/sh lrun_subdirs=\$1 @@ -199,10 +197,13 @@ EOFdiag n=-1 while [ $((n+=1)) -le $ntype ] ;do for type in $(echo ${diagtype[n]}); do - count=$(ls ${prefix}${type}_${loop}* | wc -l) - if [ $count -gt 0 ]; then + count=$(ls ${prefix}${type}_${loop}* 2>/dev/null | wc -l) + if [ $count -gt 1 ]; then if [ $USE_CFP = "YES" ]; then - echo "$DATA/diag.sh $lrun_subdirs $binary_diag $type $loop $string $CDATE $DIAG_COMPRESS $DIAG_SUFFIX" | tee -a $DATA/mp_diag.sh + echo "$nm $DATA/diag.sh $lrun_subdirs $binary_diag $type $loop $string $CDATE $DIAG_COMPRESS $DIAG_SUFFIX" | tee -a $DATA/mp_diag.sh + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nm=$((nm+1)) + fi else if [ $binary_diag = ".true." ]; then cat ${prefix}${type}_${loop}* > diag_${type}_${string}.${CDATE}${DIAG_SUFFIX} @@ -212,6 +213,13 @@ EOFdiag fi echo "diag_${type}_${string}.${CDATE}*" >> ${diaglist[n]} numfile[n]=$(expr ${numfile[n]} + 1) + elif [ $count -eq 1 ]; then + cat ${prefix}${type}_${loop}* > diag_${type}_${string}.${CDATE}${DIAG_SUFFIX} + if [ $DIAG_COMPRESS = "YES" ]; then + $COMPRESS diag_${type}_${string}.${CDATE}${DIAG_SUFFIX} + fi + echo "diag_${type}_${string}.${CDATE}*" >> ${diaglist[n]} + numfile[n]=$(expr ${numfile[n]} + 1) fi done done @@ -236,18 +244,10 @@ EOFdiag if [ $ncmd -gt 0 ]; then ncmd_max=$((ncmd < npe_node_max ? ncmd : npe_node_max)) APRUNCFP_DIAG=$(eval echo $APRUNCFP) - if [ ${CFP_MP:-"NO"} = "YES" ]; then - if [ -s $DATA/mp_diag_srun.sh ]; then rm -f $DATA/mp_diag_srun.sh; fi - touch $DATA/mp_diag_srun.sh - nm=0 - cat $DATA/mp_diag.sh | while read line; do - echo "$nm $line" >> $DATA/mp_diag_srun.sh - nm=$((nm+1)) - done - $APRUNCFP_DIAG -n $nm --multi-prog $DATA/mp_diag_srun.sh - else - $APRUNCFP_DIAG $DATA/mp_diag.sh - fi + $APRUNCFP_DIAG $DATA/mp_diag.sh + export ERR=$? + export err=$ERR + $ERRSCRIPT || exit 3 fi fi @@ -262,6 +262,9 @@ EOFdiag fi if [ ${numfile[n]} -gt 0 ]; then tar $TAROPTS ${diagfile[n]} $(cat ${diaglist[n]}) + export ERR=$? + export err=$ERR + $ERRSCRIPT || exit 4 fi done @@ -278,20 +281,17 @@ EOFdiag fi # End diagnostic file generation block - if [ $GENDIAG = "YES" ] ################################################################################ -# Send alerts -if [ $SENDDBN = "YES" ]; then - if [ $RUN = "gdas" ]; then - $DBNROOT/bin/dbn_alert MODEL GDASRADSTAT $job $RADSTAT - fi +# Postprocessing +# If no processing error, remove $DIAG_DIR +if [[ "$REMOVE_DIAG_DIR" = "YES" && "$err" = "0" ]]; then + rm -rf $DIAG_DIR fi -################################################################################ -# Postprocessing cd $pwd [[ $mkdata = "YES" ]] && rm -rf $DATA set +x -if [ $VERBOSE = "YES" ]; then +if [[ "$VERBOSE" = "YES" ]]; then echo $(date) EXITING $0 with return code $err >&2 fi exit $err diff --git a/scripts/exglobal_enkf_fcst.sh.ecf b/scripts/exglobal_enkf_fcst.sh.ecf deleted file mode 100755 index 2de38101a0..0000000000 --- a/scripts/exglobal_enkf_fcst.sh.ecf +++ /dev/null @@ -1,464 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: exglobal_enkffcs.sh.sms -# Script description: Run global_enkf ensemble forecasts -# -# Author: Russ Treadon Org: NP23 Date: 2011-12-16 -# -# Abstract: This script runs global_enkf ensemble forecasts -# -# Script history log: -# 2011-12-16 Russ Treadon based on GCWMB parallel script efcs.sh -# other upgrades related to model changes -# 2014-05-16 Xu Li Add NSST -# -# Input script positional parameters: -# -# Imported Shell Variables: -# FIXgsm Directory for global fixed files -# defaults to /nwprod/fix -# EXECgsm Directory for global executables -# defaults to /nwprod/exec -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# COMIN Path to input sigma and surface analysis files -# defalts to pwd -# COMOUT output directory -# (if nonexistent will be made) -# defaults to current working directory -# SUFOUT Suffix to add to output filenames -# defaults to unique ensemble member -# NCP Copy command -# defaults to cp -# JCAP Spectral truncation -# defaults to 254 -# LEVS Number of levels -# defaults to 64 -# FCSTEXEC Forecast executable -# defaults to ${EXECgsm}/global_fcst$XC -# OROGRAPHY Input orography GRIB file (horiz resolution dependent) -# defaults to ${FIXgsm}/global_orography.t$JCAP.grb -# OROGRAPHY_UF Input unfiltered orography GRIB file (resolution dependent) -# defaults to ${FIXgsm}/global_orography_uf.t$JCAP.grb -# LONSPERLAT Input txt file containing reduced grid information -# defaults to ${FIXgsm}/global_lonsperlat.t$MTNRSL.txt} -# FNMSKH Input high resolution land mask GRIB file -# defaults to ${FIXgsm}/seaice_newland.grb -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# FHDFI_ENKF Half number of hours of digital filter initialization -# defaults to 0 -# FHCYC_ENKF Surface cycling frequency in hours -# defaults to 0 for no cycling -# FCSTVARS Other namelist inputs to the forecast executable -# defaults to none set -# FSMCL2 Scale in days to relax to soil moisture climatology -# defaults to 99999 for no relaxation -# NTHREADS Number of threads -# defaults to 2 -# NTHSTACK Size of stack per thread -# defaults to 1024000000 -# FILESTYLE File management style flag -# ('C' to copy to/from $DATA, 'L' for symbolic links in $DATA, -# 'X' to use XLFUNIT or symbolic links where appropriate) -# defaults to 'X' -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to YES -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $FCSTEXEC -# -# input data : -# -# fixed data : $FNOROG -# $FNMASK -# $OROGRAPHY -# $OROGRAPHY_UF -# $LONSPERLAT -# $SLMASK -# -# output data: -# $PGMOUT -# $PGMERR -# -# scratch : -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -#### -################################################################################ -# Set environment. -export VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] ; then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -export machine=${machine:-WCOSS} -export machine=$(echo $machine|tr '[a-z]' '[A-Z]') - -# Command line arguments. -# *** currently none *** - -# Directories. -#-------------- -export HOMEDIR=${HOMEDIR:-$NWROOT} -export NWPROD=${NWPROD:-$HOMEDIR} -export FIXSUBDA=${FIXSUBDA:-fix/fix_am} -export FIXgsm=${FIXgsm:-$NWPROD/global_shared.${global_shared_ver}/fix/fix_am} -export EXECgsm=${EXECgsm:-$NWPROD/global_shared.${global_shared_ver}/exec} -export USHgsm=${USHgsm:-$NWPROD/global_shared.${global_shared_ver}/ush} -export SCRgsm=${SCRgsm:-$NWPROD/global_shared.${global_shared_ver}/scripts} - -export DATA=${DATA:-$(pwd)} -export COMIN=${COMIN:-$(pwd)} -export COMOUT=${COMOUT:-$(pwd)} - -# Filenames. -#------------ -export FORECASTSH=${FORECASTSH:-$SCRgsm/exglobal_fcst.sh.sms} -[[ -n ${AMEXECTMP:-""} ]]&&eval export AM_EXEC=$AMEXECTMP -export FCSTEXEC=${FCSTEXEC:-$AM_EXEC} -export JCAP=${JCAP_ENKF:-254} -export JCAP_A=$JCAP -export LEVS=${LEVS_ENKF:-64} -export LONB=${LONB_ENKF:-768} -export LATB=${LATB_ENKF:-384} -export LONA=${LONA_ENKF:-512} -export LATA=${LATA_ENKF:-256} -export NLON_A=$LONA -export NLAT_A=$(($LATA+2)) -export DELTIM=${DELTIM_ENKF:-900} -export DTPHYS=${DTPHYS_ENKF:-300} -export SET_STP_SEED=${SET_STP_SEED:-"NO"} -export FSMCL2=99999 -export FNOROG=${FNOROG_ENKF:-$FIXgsm/global_orography.t$JCAP.grb} -export FNMASK=${FNMASK_ENKF:-$FIXgsm/global_slmask.t$JCAP.grb} -export OROGRAPHY=${OROGRAPHY_ENKF:-$FIXgsm/global_orography.t$JCAP.grb} -export OROGRAPHY_UF=${OROGRAPHY_UF_ENKF:-$FIXgsm/global_orography_uf.t$JCAP.$LONB.$LATB.grb} -export LONSPERLAT=${LONSPERLAT_ENKF:-${FIXgsm}/global_lonsperlat.t$MTNRSL.txt} -export SLMASK=${SLMASK_ENKF:-$FIXgsm/global_slmask.t$JCAP.grb} -export MTNVAR=${MTNVAR_ENKF:-$FIXgsm/global_mtnvar.t$JCAP.f77} -export DOIAU=${DOIAU_ENKF:-"NO"} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} - -# Other variables. -#------------------ -export NTHREADS=${NTHREADS_EFCS:-2} -export NTHSTACK=${NTHSTACK_EFCS:-1024000000} -export FILESTYLE=${FILESTYLE:-'L'} - -if [ $machine = IBMP6 ] ; then - export MP_BINDPROC=${MP_BINDPROC:-yes} - export MEMORY_AFFINIY=${MEMORY_AFFINIY:-MCM} - export MP_SYNC_QP=${MP_SYNC_QP:-yes} - export MP_SHARED_MEMORY=${MP_SHARED_MEMORY:-"NO"} - export MP_COREFILE_FORMAT=${MP_COREFILE_FORMAT:-"lite"} - export MP_EAGER_LIMIT=32768 -elif [ $machine = ZEUS ] ; then - export MPI_BUFS_PER_PROC=${MPI_BUFS_PER_PROC:-1024} - export MPI_BUFS_PER_HOST=${MPI_BUFS_PER_HOST:-1024} -elif [ $machine = WCOSS ] ; then - export MP_EUIDEVICE=${MP_EUIDEVICE:-min} - export MPICH_ALLTOALL_THROTTLE=${MPICH_ALLTOALL_THROTTLE:-0} - export MP_SINGLE_THREAD=${MP_SINGLE_THREAD:-yes} - export MP_COREFILE_FORMAT=${MP_COREFILE_FORMAT:-lite} - export MP_EUIDEVELOP=${MP_EUIDEVELOP:-min} - export MP_MPILIB=${MP_MPILIB:-mpich2} - export MP_LABELIO=${MP_LABELIO:-yes} - export MP_SINGLE_THREAD=${MP_SINGLE_THREAD:-yes} - export MP_USE_BULK_XFER=${MP_USE_BULK_XFER:-yes} - export MP_SHARED_MEMORY=${MP_SHARED_MEMORY:-yes} - export MP_COLLECTIVE_OFFLOAD=${MP_COLLECTIVE_OFFLOAD:-no} - export KMP_STACKSIZE=${KMP_STACKSIZE:-1024m} -# export MP_EAGER_LIMIT=${MP_EAGER_LIMIT:-32768} -# export MP_EUILIB=${MP_EUILIB:-us} -# export MP_EUIDEVICE=${MP_EUIDEVICE:-sn_all} - export NTHREADS_EFCS=${NTHREADS_EFCS:-1} -fi - -export NST_GSI=${NST_GSI:-0} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export NCP=${NCP:-/bin/cp} -export SIGOSUF=${SIGOSUF:-'sig'} -export SFCOSUF=${SFCOSUF:-'sfc'} -export FLXOSUF=${FLXOSUF:-'flx'} -export NSTOSUF=${NSTOSUF:-'nst'} - -if [ $machine = IBMP6 ] ; then - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} -else - export REDOUT=${REDOUT:-'1>'} - export REDERR=${REDERR:-'2>'} -fi - - -################################################################################ -# Preprocessing -#---------------- -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] ; then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 -[[ -d $COMOUT ]]||mkdir -p $COMOUT -export DATATOP=$DATA - - -################################################################################ -# Set output data -#---------------- - -EFCSGRP=$COMOUT/fcsstat_${CDATE}_grp${ENSGRP} -rm -f $EFCSGRP - - -################################################################################ -# Run forecast for ensemble member -#--------------------------------- -rc=0 -imem=$ENSBEG -while [[ $imem -le $ENSEND ]]; do - - export member="mem"`printf %03i $imem` - export DATA=$DATATOP/$member - export pgmoutm=$DATA/${pgmout:-pgmout.$member} - - export SUFOUT="_${member}" - - export COMOUTSAVE=$COMOUT - export COMOUT=$DATATOP - - export FHROT=${FHROT_ENKF:-0} - export FHOUT=${FHOUT_ENKF:-3} - export FHMAX=${FHMAX_ENKF:-9} - export FHZER=${FHZER_ENKF:-6} - export FHCYC=${FHCYC_ENKF:-24} - export FHDFI=${FHDFI_ENKF:-3} - export FHLWR=${FHLWR_ENKF:-1} - export FHSWR=${FHSWR_ENKF:-1} - export IEMS=${IEMS_ENKF:-0} - export ISOL=${ISOL_ENKF:-0} - export IAER=${IAER_ENKF:-111} - export ICO2=${ICO2_ENKF:-1} - export ICTM=${ICTM_ENKF:-1} - - export FHOUT_HF=${FHOUTHF_ENKF:-3} - export FHMAX_HF=${FHMAXHF_ENKF:-9} - - export FHGOC3D=${FHGOC3D_ENKF:-0} - export LGOC3D=${LGOC3D_ENKF:-.false.} - - export IALB=${IALB_ENKF:-0} - export IOVR_SW=${IOVR_SW_ENKF:-1} - export FCSTVARS_TMP=${FCSTVARS_ENKF:-" "} - - if [[ "$SET_STP_SEED" = "YES" ]] ; then - ISEED_SPPT=$((CDATE*1000 + imem*10 + 1)) - ISEED_SKEB=$((CDATE*1000 + imem*10 + 2)) - ISEED_VC=$((CDATE*1000 + imem*10 + 3)) - ISEED_SHUM=$((CDATE*1000 + imem*10 + 4)) - export FCSTVARS_TMP="ISEED_SPPT=$ISEED_SPPT,ISEED_SKEB=$ISEED_SKEB,ISEED_VC=$ISEED_VC,ISEED_SHUM=$ISEED_SHUM,$FCSTVARS_TMP" - fi - - if [ $DOIAU = YES ]; then - export FHROT=3 - export FHDFI=0 - export FHBAK=3 - export FHINI=3 - export FHMAX=$((FHMAX + 6)) - export FHMAX_HF=$((FHMAX_HF + 6)) - export GDATE=$($NDATE -$FHBAK $CDATE) - export GDATE=$($NDATE -$FHBAK $GDATE) - [[ $FHBAK -lt 10 ]]&&FHBAK=0$FHBAK - export SIGI=$COMIN/sfg_${GDATE}_fhr$FHBAK$SUFOUT - export GRDI=$SIGI - export SFCI=$COMIN/sfca${FHBAK}_$CDATE$SUFOUT - export NSTI=$COMIN/nsta${FHBAK}_$CDATE$SUFOUT - iaufiles_fg=\'$COMIN/sfg_${GDATE}_fhr06$SUFOUT\' - iaufiles_anl=\'$COMIN/siganl_$CDATE$SUFOUT\' - export FCSTVARS_TMP="iau=.true.,iau_delthrs=6,iaufhrs=6,iaufiles_fg=$iaufiles_fg,iaufiles_anl=$iaufiles_anl,$FCSTVARS_TMP" - FHSTART=`expr 6 + $FHOUT` - else - export SIGI=$COMIN/siganl_$CDATE$SUFOUT - export GRDI=$SIGI - export SFCI=$COMIN/sfcanl_$CDATE$SUFOUT - export NSTI=$COMIN/nstanl_$CDATE$SUFOUT - export FHINI=0 - FHSTART=$FHOUT - fi - [[ $FHINI -lt 10 ]]&&FHINI=0$FHINI - - export FCSTVARS=${FCSTVARS_TMP:-" "} - - if [[ $FILESTYLE = 'L' ]]; then - FH=$FHSTART - while [[ $FH -le $FHMAX ]]; do - if [ $DOIAU = YES ]; then - if [ $FH -ge 9 ]; then - FHIAU=$((FH - 6)) - [[ $FHIAU -lt 10 ]]&&FHIAU=0$FHIAU - fi - else - FHIAU=$FH - [[ $FHIAU -lt 10 ]]&&FHIAU=0$FHIAU - fi - [[ $FH -lt 10 ]]&&FH=0$FH - ln -fs $COMOUTSAVE/sfg_${CDATE}_fhr$FHIAU$SUFOUT ${SIGOSUF}f$FH$SUFOUT - ln -fs $COMOUTSAVE/bfg_${CDATE}_fhr$FHIAU$SUFOUT ${SFCOSUF}f$FH$SUFOUT - ln -fs $COMOUTSAVE/flg_${CDATE}_fhr$FHIAU$SUFOUT ${FLXOSUF}f$FH$SUFOUT - if [ $NST_GSI -gt 0 ]; then - ln -fs $COMOUTSAVE/nfg_${CDATE}_fhr$FHIAU$SUFOUT ${NSTOSUF}f$FH$SUFOUT - fi - FH=$((10#$FH)) - FH=`expr $FH + $FHOUT` - done - fi - - $FORECASTSH - ra=$? - ((rc+=ra)) - - ############################################################## - # Add this statement to notify a member forecast failed to - # complete. Continue ahead with other members, but freeze epos - ############################################################## - if [ "$SENDECF" = YES -a $ra -ne 0 ]; then - ecflow_client --abort="forecast of member $imem FAILED" - fi - - cat $pgmoutm - - export COMOUT=$COMOUTSAVE - - if [[ $FILESTYLE = 'C' ]]; then - FH=$FHSTART - while [[ $FH -le $FHMAX ]]; do - if [ $DOIAU = YES ]; then - if [ $FH -ge 9 ]; then - FHIAU=$((FH - 6)) - [[ $FHIAU -lt 10 ]]&&FHIAU=0$FHIAU - fi - else - FHIAU=$FH - [[ $FHIAU -lt 10 ]]&&FHIAU=0$FHIAU - fi - [[ $FH -lt 10 ]]&&FH=0$FH - $NCP ${SIGOSUF}f$FH$SUFOUT $COMOUT/sfg_${CDATE}_fhr$FHIAU$SUFOUT - $NCP ${SFCOSUF}f$FH$SUFOUT $COMOUT/bfg_${CDATE}_fhr$FHIAU$SUFOUT - $NCP ${FLXOSUF}f$FH$SUFOUT $COMOUT/flg_${CDATE}_fhr$FHIAU$SUFOUT - if [ $NST_GSI -gt 0 ]; then - $NCP ${NSTOSUF}f$FH$SUFOUT $COMOUT/nfg_${CDATE}_fhr$FHIAU$SUFOUT - fi - FH=$((10#$FH)) - FH=`expr $FH + $FHOUT` - done - fi - - if [ $SENDDBN = YES ]; then - FH=$FHOUT - while [[ $FH -le $FHMAX ]]; do - [[ $FH -lt 10 ]]&&FH=0$FH - if [[ `expr $FH % 3` -eq 0 ]] - then - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT/bfg_${CDATE}_fhr$FH$SUFOUT - fi - FH=$((FH+FHOUT)) - done - fi - - rm log - $NCP $DATATOP/log_all ./log_old - if [ $ra -ne 0 ]; then - echo "MEMBER $imem : FAIL" > log - else - echo "MEMBER $imem : PASS" > log - fi - cat log_old log > log_new - $NCP log_new $DATATOP/log_all - - (( imem = $imem + 1 )) - -done - -################################################################################ -# Save log -#--------- - -cd $DATATOP -$NCP log_all $EFCSGRP - -################################################################################ -# If any members failed, error out -#--------------------------------- - -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 2 - -################################################################################ -# Postprocessing -#---------------- -cd $pwd -[[ $mkdata = YES ]]&&rmdir $DATA -$ENDSCRIPT -set +x -if [[ $VERBOSE = YES ]] ; then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/scripts/exglobal_enkf_fcst_nems.sh.ecf b/scripts/exglobal_enkf_fcst_nems.sh.ecf deleted file mode 100755 index 4f5bb10267..0000000000 --- a/scripts/exglobal_enkf_fcst_nems.sh.ecf +++ /dev/null @@ -1,468 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: exglobal_enkffcs.sh.sms -# Script description: Run global_enkf ensemble forecasts -# -# Author: Russ Treadon Org: NP23 Date: 2011-12-16 -# -# Abstract: This script runs global_enkf ensemble forecasts -# -# Script history log: -# 2011-12-16 Russ Treadon based on GCWMB parallel script efcs.sh -# other upgrades related to model changes -# 2014-05-16 Xu Li Add NSST -# -# Input script positional parameters: -# -# Imported Shell Variables: -# FIXgsm Directory for global fixed files -# defaults to /nwprod/fix -# EXECgsm Directory for global executables -# defaults to /nwprod/exec -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# COMIN Path to input sigma and surface analysis files -# defalts to pwd -# COMOUT output directory -# (if nonexistent will be made) -# defaults to current working directory -# SUFOUT Suffix to add to output filenames -# defaults to unique ensemble member -# NCP Copy command -# defaults to cp -# JCAP Spectral truncation -# defaults to 254 -# LEVS Number of levels -# defaults to 64 -# FCSTEXEC Forecast executable -# defaults to ${EXECgsm}/global_fcst$XC -# OROGRAPHY Input orography GRIB file (horiz resolution dependent) -# defaults to ${FIXgsm}/global_orography.t$JCAP.grb -# OROGRAPHY_UF Input unfiltered orography GRIB file (resolution dependent) -# defaults to ${FIXgsm}/global_orography_uf.t$JCAP.grb -# LONSPERLAT Input txt file containing reduced grid information -# defaults to ${FIXgsm}/global_lonsperlat.t$MTNRSL.txt} -# FNMSKH Input high resolution land mask GRIB file -# defaults to ${FIXgsm}/seaice_newland.grb -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# FHDFI_ENKF Half number of hours of digital filter initialization -# defaults to 0 -# FHCYC_ENKF Surface cycling frequency in hours -# defaults to 0 for no cycling -# DYNVARS_ENKF Other namelist inputs to the dynamics executable -# defaults to none set -# PHYVARS_ENKF Other namelist inputs to the physics executable -# defaults to none set -# FSMCL2 Scale in days to relax to soil moisture climatology -# defaults to 99999 for no relaxation -# NTHREADS Number of threads -# defaults to 2 -# NTHSTACK Size of stack per thread -# defaults to 1024000000 -# FILESTYLE File management style flag -# ('C' to copy to/from $DATA, 'L' for symbolic links in $DATA, -# 'X' to use XLFUNIT or symbolic links where appropriate) -# defaults to 'X' -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to YES -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $FCSTEXEC -# -# input data : -# -# fixed data : $FNOROG -# $FNMASK -# $OROGRAPHY -# $OROGRAPHY_UF -# $LONSPERLAT -# $SLMASK -# -# output data: -# $PGMOUT -# $PGMERR -# -# scratch : -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -#### -################################################################################ -# Set environment. -export VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] ; then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -export machine=${machine:-WCOSS} -export machine=$(echo $machine|tr '[a-z]' '[A-Z]') - -# Command line arguments. -# *** currently none *** - -# Directories. -#-------------- -export HOMEDIR=${HOMEDIR:-$NWROOT} -export NWPROD=${NWPROD:-$HOMEDIR} -export FIXSUBDA=${FIXSUBDA:-fix/fix_am} -export FIXgsm=${FIXgsm:-$NWPROD/global_shared.${global_shared_ver}/fix/fix_am} -export EXECgsm=${EXECgsm:-$NWPROD/global_shared.${global_shared_ver}/exec} -export USHgsm=${USHgsm:-$NWPROD/global_shared.${global_shared_ver}/ush} -export SCRgsm=${SCRgsm:-$NWPROD/global_shared.${global_shared_ver}/scripts} - -export DATA=${DATA:-$(pwd)} -export COMIN=${COMIN:-$(pwd)} -export COMOUT=${COMOUT:-$(pwd)} - -# Filenames. -#------------ -export FORECASTSH=${FORECASTSH:-$SCRgsm/exglobal_fcst.sh.sms} -[[ -n ${AMEXECTMP:-""} ]]&&eval export AM_EXEC=$AMEXECTMP -export FCSTEXEC=${FCSTEXEC:-$AM_EXEC} -export JCAP=${JCAP_ENKF:-254} -export JCAP_A=$JCAP -export LEVS=${LEVS_ENKF:-64} -export LONB=${LONB_ENKF:-768} -export LATB=${LATB_ENKF:-384} -export LONA=${LONA_ENKF:-512} -export LATA=${LATA_ENKF:-256} -export NLON_A=$LONA -export NLAT_A=$(($LATA+2)) -export DELTIM=${DELTIM_ENKF:-900} -export DTPHYS=${DTPHYS_ENKF:-300} -export SET_STP_SEED=${SET_STP_SEED:-"NO"} -export FSMCL2=99999 -export FNOROG=${FNOROG_ENKF:-$FIXgsm/global_orography.t$JCAP.grb} -export FNMASK=${FNMASK_ENKF:-$FIXgsm/global_slmask.t$JCAP.grb} -export OROGRAPHY=${OROGRAPHY_ENKF:-$FIXgsm/global_orography.t$JCAP.grb} -export OROGRAPHY_UF=${OROGRAPHY_UF_ENKF:-$FIXgsm/global_orography_uf.t$JCAP.$LONB.$LATB.grb} -export LONSPERLAT=${LONSPERLAT_ENKF:-${FIXgsm}/global_lonsperlat.t$MTNRSL.txt} -export SLMASK=${SLMASK_ENKF:-$FIXgsm/global_slmask.t$JCAP.grb} -export MTNVAR=${MTNVAR_ENKF:-$FIXgsm/global_mtnvar.t$JCAP.f77} -export DOIAU=${DOIAU_ENKF:-"NO"} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} - -# Other variables. -#------------------ -export NTHREADS=${NTHREADS_EFCS:-2} -export NTHSTACK=${NTHSTACK_EFCS:-1024000000} -export FILESTYLE=${FILESTYLE:-'L'} - -if [ $machine = IBMP6 ] ; then - export MP_BINDPROC=${MP_BINDPROC:-yes} - export MEMORY_AFFINIY=${MEMORY_AFFINIY:-MCM} - export MP_SYNC_QP=${MP_SYNC_QP:-yes} - export MP_SHARED_MEMORY=${MP_SHARED_MEMORY:-"NO"} - export MP_COREFILE_FORMAT=${MP_COREFILE_FORMAT:-"lite"} - export MP_EAGER_LIMIT=32768 -elif [ $machine = ZEUS ] ; then - export MPI_BUFS_PER_PROC=${MPI_BUFS_PER_PROC:-1024} - export MPI_BUFS_PER_HOST=${MPI_BUFS_PER_HOST:-1024} -elif [ $machine = WCOSS ] ; then - export MP_EUIDEVICE=${MP_EUIDEVICE:-min} - export MPICH_ALLTOALL_THROTTLE=${MPICH_ALLTOALL_THROTTLE:-0} - export MP_SINGLE_THREAD=${MP_SINGLE_THREAD:-yes} - export MP_COREFILE_FORMAT=${MP_COREFILE_FORMAT:-lite} - export MP_EUIDEVELOP=${MP_EUIDEVELOP:-min} - export MP_MPILIB=${MP_MPILIB:-mpich2} - export MP_LABELIO=${MP_LABELIO:-yes} - export MP_SINGLE_THREAD=${MP_SINGLE_THREAD:-yes} - export MP_USE_BULK_XFER=${MP_USE_BULK_XFER:-yes} - export MP_SHARED_MEMORY=${MP_SHARED_MEMORY:-yes} - export MP_COLLECTIVE_OFFLOAD=${MP_COLLECTIVE_OFFLOAD:-no} - export KMP_STACKSIZE=${KMP_STACKSIZE:-1024m} -# export MP_EAGER_LIMIT=${MP_EAGER_LIMIT:-32768} -# export MP_EUILIB=${MP_EUILIB:-us} -# export MP_EUIDEVICE=${MP_EUIDEVICE:-sn_all} - export NTHREADS_EFCS=${NTHREADS_EFCS:-1} -fi - -export NST_GSI=${NST_GSI:-0} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export NCP=${NCP:-/bin/cp} -export SIGOSUF=${SIGOSUF:-'sig'} -export SFCOSUF=${SFCOSUF:-'sfc'} -export FLXOSUF=${FLXOSUF:-'flx'} -export NSTOSUF=${NSTOSUF:-'nst'} - -if [ $machine = IBMP6 ] ; then - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} -else - export REDOUT=${REDOUT:-'1>'} - export REDERR=${REDERR:-'2>'} -fi - - -################################################################################ -# Preprocessing -#---------------- -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] ; then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 -[[ -d $COMOUT ]]||mkdir -p $COMOUT -export DATATOP=$DATA - - -################################################################################ -# Set output data -#---------------- - -EFCSGRP=$COMOUT/fcsstat_${CDATE}_grp${ENSGRP} -rm -f $EFCSGRP - - -################################################################################ -# Run forecast for ensemble member -#--------------------------------- -rc=0 -imem=$ENSBEG -while [[ $imem -le $ENSEND ]]; do - - export member="mem"`printf %03i $imem` - export DATA=$DATATOP/$member - export pgmoutm=$DATA/${pgmout:-pgmout.$member} - - export SUFOUT="_${member}" - - export COMOUTSAVE=$COMOUT - export COMOUT=$DATATOP - - export FHROT=${FHROT_ENKF:-0} - export FHOUT=${FHOUT_ENKF:-3} - export FHMAX=${FHMAX_ENKF:-9} - export FHZER=${FHZER_ENKF:-6} - export FHCYC=${FHCYC_ENKF:-24} - export FHDFI=${FHDFI_ENKF:-3} - export FHLWR=${FHLWR_ENKF:-1} - export FHSWR=${FHSWR_ENKF:-1} - export IEMS=${IEMS_ENKF:-0} - export ISOL=${ISOL_ENKF:-0} - export IAER=${IAER_ENKF:-111} - export ICO2=${ICO2_ENKF:-1} - export ICTM=${ICTM_ENKF:-1} - - export FHOUT_HF=${FHOUTHF_ENKF:-3} - export FHMAX_HF=${FHMAXHF_ENKF:-9} - - export FHGOC3D=${FHGOC3D_ENKF:-0} - export LGOC3D=${LGOC3D_ENKF:-.false.} - - export IALB=${IALB_ENKF:-0} - export IOVR_SW=${IOVR_SW_ENKF:-1} - export DYNVARS_TMP=${DYNVARS_ENKF:-" "} - export PHYVARS_TMP=${PHYVARS_ENKF:-" "} - - if [[ "$SET_STP_SEED" = "YES" ]] ; then - ISEED_SPPT=$((CDATE*1000 + imem*10 + 1)) - ISEED_SKEB=$((CDATE*1000 + imem*10 + 2)) - ISEED_VC=$((CDATE*1000 + imem*10 + 3)) - ISEED_SHUM=$((CDATE*1000 + imem*10 + 4)) - export DYNVARS_TMP="ISEED_SPPT=$ISEED_SPPT,ISEED_SKEB=$ISEED_SKEB,ISEED_VC=$ISEED_VC,ISEED_SHUM=$ISEED_SHUM,$DYNVARS_TMP" - fi - - if [ $DOIAU = YES ]; then - export FHROT=3 - export FHDFI=0 - export FHBAK=3 - export FHINI=3 - export FHMAX=$((FHMAX + 6)) - export FHMAX_HF=$((FHMAX_HF + 6)) - export GDATE=$($NDATE -$FHBAK $CDATE) - export GDATE=$($NDATE -$FHBAK $GDATE) - [[ $FHBAK -lt 10 ]]&&FHBAK=0$FHBAK - export SIGI=$COMIN/sfg_${GDATE}_fhr$FHBAK$SUFOUT - export GRDI=$SIGI - export SFCI=$COMIN/sfca${FHBAK}_$CDATE$SUFOUT - export NSTI=$COMIN/nsta${FHBAK}_$CDATE$SUFOUT - iaufiles_fg=\'$COMIN/sfg_${GDATE}_fhr06$SUFOUT\' - iaufiles_anl=\'$COMIN/siganl_$CDATE$SUFOUT\' - export PHYVARS_TMP="iau=.true.,iau_delthrs=6,iaufhrs=6,iaufiles_fg=$iaufiles_fg,iaufiles_anl=$iaufiles_anl,$PHYVARS_TMP" - FHSTART=`expr 6 + $FHOUT` - else - export SIGI=$COMIN/siganl_$CDATE$SUFOUT - export GRDI=$SIGI - export SFCI=$COMIN/sfcanl_$CDATE$SUFOUT - export NSTI=$COMIN/nstanl_$CDATE$SUFOUT - export FHINI=0 - FHSTART=$FHOUT - fi - [[ $FHINI -lt 10 ]]&&FHINI=0$FHINI - - export DYNVARS=${DYNVARS_TMP:-" "} - export PHYVARS=${PHYVARS_TMP:-" "} - - if [[ $FILESTYLE = 'L' ]]; then - FH=$FHSTART - while [[ $FH -le $FHMAX ]]; do - if [ $DOIAU = YES ]; then - if [ $FH -ge 9 ]; then - FHIAU=$((FH - 6)) - [[ $FHIAU -lt 10 ]]&&FHIAU=0$FHIAU - fi - else - FHIAU=$FH - [[ $FHIAU -lt 10 ]]&&FHIAU=0$FHIAU - fi - [[ $FH -lt 10 ]]&&FH=0$FH - ln -fs $COMOUTSAVE/sfg_${CDATE}_fhr$FHIAU$SUFOUT ${SIGOSUF}f$FH$SUFOUT - ln -fs $COMOUTSAVE/bfg_${CDATE}_fhr$FHIAU$SUFOUT ${SFCOSUF}f$FH$SUFOUT - ln -fs $COMOUTSAVE/flg_${CDATE}_fhr$FHIAU$SUFOUT ${FLXOSUF}f$FH$SUFOUT - if [ $NST_GSI -gt 0 ]; then - ln -fs $COMOUTSAVE/nfg_${CDATE}_fhr$FHIAU$SUFOUT ${NSTOSUF}f$FH$SUFOUT - fi - FH=$((10#$FH)) - FH=`expr $FH + $FHOUT` - done - fi - - $FORECASTSH - ra=$? - ((rc+=ra)) - - ############################################################## - # Add this statement to notify a member forecast failed to - # complete. Continue ahead with other members, but freeze epos - ############################################################## - if [ "$SENDECF" = YES -a $ra -ne 0 ]; then - ecflow_client --abort="forecast of member $imem FAILED" - fi - - cat $pgmoutm - - export COMOUT=$COMOUTSAVE - - if [[ $FILESTYLE = 'C' ]]; then - FH=$FHSTART - while [[ $FH -le $FHMAX ]]; do - if [ $DOIAU = YES ]; then - if [ $FH -ge 9 ]; then - FHIAU=$((FH - 6)) - [[ $FHIAU -lt 10 ]]&&FHIAU=0$FHIAU - fi - else - FHIAU=$FH - [[ $FHIAU -lt 10 ]]&&FHIAU=0$FHIAU - fi - [[ $FH -lt 10 ]]&&FH=0$FH - $NCP ${SIGOSUF}f$FH$SUFOUT $COMOUT/sfg_${CDATE}_fhr$FHIAU$SUFOUT - $NCP ${SFCOSUF}f$FH$SUFOUT $COMOUT/bfg_${CDATE}_fhr$FHIAU$SUFOUT - $NCP ${FLXOSUF}f$FH$SUFOUT $COMOUT/flg_${CDATE}_fhr$FHIAU$SUFOUT - if [ $NST_GSI -gt 0 ]; then - $NCP ${NSTOSUF}f$FH$SUFOUT $COMOUT/nfg_${CDATE}_fhr$FHIAU$SUFOUT - fi - FH=$((10#$FH)) - FH=`expr $FH + $FHOUT` - done - fi - - if [ $SENDDBN = YES ]; then - FH=$FHOUT - while [[ $FH -le $FHMAX ]]; do - [[ $FH -lt 10 ]]&&FH=0$FH - if [[ `expr $FH % 3` -eq 0 ]] - then - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT/bfg_${CDATE}_fhr$FH$SUFOUT - fi - FH=$((FH+FHOUT)) - done - fi - - rm log - $NCP $DATATOP/log_all ./log_old - if [ $ra -ne 0 ]; then - echo "MEMBER $imem : FAIL" > log - else - echo "MEMBER $imem : PASS" > log - fi - cat log_old log > log_new - $NCP log_new $DATATOP/log_all - - (( imem = $imem + 1 )) - -done - -################################################################################ -# Save log -#--------- - -cd $DATATOP -$NCP log_all $EFCSGRP - -################################################################################ -# If any members failed, error out -#--------------------------------- - -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 2 - -################################################################################ -# Postprocessing -#---------------- -cd $pwd -[[ $mkdata = YES ]]&&rmdir $DATA -$ENDSCRIPT -set +x -if [[ $VERBOSE = YES ]] ; then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/scripts/exglobal_enkf_inflate_recenter.sh.ecf b/scripts/exglobal_enkf_inflate_recenter.sh.ecf deleted file mode 100755 index 32dae4f19d..0000000000 --- a/scripts/exglobal_enkf_inflate_recenter.sh.ecf +++ /dev/null @@ -1,555 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: exglobal_enkfcen.sh.sms -# Script description: Make global_enkf additive error and recenter -# -# Author: Russ Treadon Org: NP23 Date: 2011-12-16 -# -# Abstract: This script performs the global_enkf additive error and recenter -# -# Script history log: -# 2011-12-16 Russ Treadon based on GCWMB parallel script ecen.sh -# 2014-05-16 Xu Li Add NSST -# -# Usage: exglobal_enkfcen.sh.sms -# -# Input script positional parameters: -# -# Imported Shell Variables: -# FIXgsm Directory for global fixed files -# defaults to /nwprod/fix -# PERTURBDIR Directory for global enkf perturbation database -# defaults to /nwprod/fix/enkf_gfs -# EXECgsm Directory for global executables -# defaults to /nwprod/exec -# USHgsm Directory for global scripts -# defaults to /nwprod/ush -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# COMIN input directory -# defaults to current working directory -# COMOUT output directory -# (if nonexistent will be made) -# defaults to current working directory -# XC Suffix to add to executables -# defaults to none -# PREINP Prefix to add to input observation files -# defaults to none -# SUFINP Suffix to add to input observation files -# defaults to none -# NCP Copy command -# defaults to cp -# GETATMENSMEANEXEC Compute ensemble mean sigma (optonally smoothed) -# defaults to ${EXECgsm}/getsigensmean_smooth$XC -# ADDERRSPECEXEC Perturb sigma files -# defaults to ${EXECgsm}/adderrspec_nmcmeth_spec$XC -# RECENATMPEXEC Recenter sigma files -# defaults to ${EXECgsm}/recentersigp$XC -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# JCAP_ENKF Spectral truncation for background -# defaults to 254 -# LEVS_ENKF Number of levels -# defaults to 64 -# CDATE Current analysis date in yyyymmddhh format -# defaults to the value in the input surface file header -# LATB_ENKF Number of latitudes -# defaults to the value in the input surface file header -# LONB_ENKF Number of longitudes -# defaults to the value in the input surface file header -# NTHREADS Number of threads -# defaults to 1 -# NTHSTACK Size of stack per thread -# defaults to 1024000000 -# NTHREADS_ENKF Number of threads for ENKFUPDEXEC -# defaults to 1 -# NTHSTACK_ENKF Size of stack per thread for ENKFUPDEXEC -# defaults to 1024000000 -# FILESTYLE File management style flag -# ('C' to copy to/from $DATA, 'L' for symbolic links in $DATA, -# 'X' to use XLFUNIT or symbolic links where appropriate) -# defaults to 'X' -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to NO -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $GETATMENSMEANEXEC -# $ADDERRSPECEXEC -# $RECENATMPEXEC -# -# fixed data : -# -# input data : $SIGANL_HI -# $SFCANL_HI -# $SIGGES -# $SIGANLENS_IN -# -# output data: $SANLENSMEAN -# $PERTDATES -# $SIGANLENS_OUT -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -################################################################################ -# Set environment. -export VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]]; then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -export machine=${machine:-IBMP6} -export machine=$(echo $machine|tr '[a-z]' '[A-Z]') - -# Command line arguments. - -# Directories. -export HOMEDIR=${HOMEDIR:-$NWROOT} -export NWPROD=${NWPROD:-$HOMEDIR} -export FIXgsm=${FIXgsm:-$NWPROD/global_shared.${global_shared_ver}/fix/fix_am} -export EXECgsm=${EXECgsm:-$NWPROD/global_shared.${global_shared_ver}/exec} -export USHgsm=${USHgsm:-$NWPROD/global_shared.${global_shared_ver}/ush} -export PERTURBDIR=${PERTURBDIR:-$NWPROD/fix/enkf_gfs} -export EXECGDAS=${EXECGDAS:-$NWPROD/gdas.${gdas_ver}/exec} - -export utilscript=${utilscript:-$NWPROD/util/ush} -export DATA=${DATA:-$(pwd)} -export COMIN=${COMIN:-$(pwd)} -export COMOUT=${COMOUT:-$(pwd)} -# Set script control parameters -export use_gfs_nemsio=${use_gfs_nemsio:-".false."} # run script with NEMSIO input/output -# Filenames. -export XC=${XC} -export PREINP=${PREINP} -export SUFINP=${SUFINP} -export JCAP_ENKF=${JCAP_ENKF:-254} -export LEVS_ENKF=${LEVS_ENKF:-64} -export LONB_ENKF=${LONB_ENKF:-768} -export LATB_ENKF=${LATB_ENKF:-384} -export SFCHDR=${SFCHDR:-${EXECgsm}/global_sfchdr$XC} -export GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-${EXECgdas}/getsigensmean_smooth$XC} -export ADDERRSPECEXEC=${ADDERRSPECEXEC:-${EXECgdas}/adderrspec_nmcmeth_spec$XC} -export RECENATMPEXEC=${RECENATMPEXEC:-${EXECgdas}/recentersigp$XC} -export CHGRESSH=${CHGRESSH:-${USHgsm}/global_chgres.sh} -export CHGRESEXEC=${CHGRESEXEC-${EXECgsm}/global_chgres} -export CHGRESVARS_ENKF=${CHGRESVARS_ENKF:-""} -export NMEM_ENKF=${NMEM_ENKF:-0} -export SCALEFACT=${SCALEFACT:-00} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} -# Other variables. -if [ $use_gfs_nemsio = .true. ]; then - export CDATE=${CDATE:-$($SFCHDR $SFCGES fcstdate | grep -i "fcstdate_ymdh" |awk -F= '{print $2}')} -else - export CDATE=${CDATE:-$($SFCHDR $SFCGES VDATE||echo 0)} -fi -export NDATE=${NDATE:-$NWPROD/util/exec/ndate} -export GDATE=${GDATE:-($NDATE -06 $CDATE)} -export NDAYS=${NDAYS:-60} -export NHOURS=$((NDAYS*24)) -export PBDATE=${PBDATE:-2010050100} -export PEDATE=${PEDATE:-2011043018} -export SWITCH=${SWITCH:-043018} -export NTHREADS=${NTHREADS:-1} -export NTHSTACK=${NTHSTACK:-1024000000} -export NTHREADS_ENKF=${NTHREADS_ENKF:-1} -export NTHSTACK_ENKF=${NTHSTACK_ENKF:-1024000000} -export CHGRESTHREAD=${CHGRESTHREAD:-32} -export LATCH=${LATCH:-8} -export IDSL=${IDSL:-1} -export IDVT=${IDVT:-21} -export IDVM=${IDVM:-0} -export IALB=${IALB:-0} -export IDVC=${IDVC:-2} -export LSOIL=${LSOIL:-4} -export FILESTYLE=${FILESTYLE:-'X'} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export OBERRFLAG=${OBERRFLAG:-.false.} -export NCP=${NCP:-cp} -export POE=${POE:-NO} -export APRUN=${APRUN:-""} -export NST_GSI=${NST_GSI:-0} -export SIGISUF=${SIGISUF:-'siganl'} -export SFCISUF=${SFCISUF:-'sfcanl'} - -if [ $machine = IBMP6 ] ; then - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} -else - export REDOUT=${REDOUT:-'1>'} - export REDERR=${REDERR:-'2>'} -fi - -################################################################################ -# Preprocessing -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]]; then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 - -################################################################################ - -################################################################################ -# Copy input files - -export SIGANL_HI=${SIGANL_HI:-$SIGISUF.$CDUMP.$CDATE} -export SFCANL_HI=${SFCANL_HI:-$SFCISUF.$CDUMP.$CDATE} -export SIGGES=${SIGGES:-sfg_${GDATE}_fhr06_ensmean} - -if [[ $FILESTYLE = 'C' ]]; then - export FCPLN=$NCP -else - export FCPLN="ln -sf" -fi - -imem=1 -while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - $FCPLN ${SIGANLENS_IN}${member} ./sanl_${CDATE}${member} - (( imem = $imem + 1 )) -done - - -################################################################################ -# Compute mean for enkf ensemble analysis members -export DATAPATH2=./ -export FILENAMEOUT=sanl_${CDATE}_ensmean -export FILEPREFIX=sanl_${CDATE} -export NANALS=$NMEM_ENKF - -if [[ $FILESTYLE = 'L' ]]; then - ln -fs $SANLENSMEAN ./sanl_${CDATE}_ensmean -fi - -rm stdout.sanl_ensmean -if [[ "$POE" = "YES" ]]; then - poe $GETATMENSMEANEXEC $DATAPATH2 $FILENAMEOUT $FILEPREFIX $NANALS > stdout.sanl_ensmean - rc=$? -else - eval "$APRUN $GETATMENSMEANEXEC $DATAPATH2 $FILENAMEOUT $FILEPREFIX $NANALS > stdout.sanl_ensmean" - rc=$? -fi - -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 2 - -cat stdout.sanl_ensmean -if [[ $FILESTYLE = 'C' ]]; then - $NCP sanl_${CDATE}_ensmean $SANLENSMEAN -fi - - -################################################################################ -# If requested, perturb and recenter ensemble analysis members -if [[ $SCALEFACT -gt 0 ]]; then - -# Generate sequential list of perturbation dates - BDATE=`$NDATE -$NHOURS $CDATE` - EDATE=`$NDATE +$NHOURS $CDATE` - - rm temp_all temp_dat temp_new - npert=0 - SDATE=$BDATE - while [[ $SDATE -le $EDATE ]]; do - MMDDHH=`echo $SDATE | cut -c5-10` - YYYY=2010 - if [[ "$MMDDHH" -le "$SWITCH" ]]; then - YYYY=2011 - fi - PDATE=${YYYY}${MMDDHH} - echo $PDATE > temp_dat - cat temp_all temp_dat > temp_new - mv temp_new temp_all - IDATE=`$NDATE +06 $SDATE` - SDATE=$IDATE - npert=$((npert+1)) - done - mv temp_all dates_seq.dat - rm temp_dat temp_new - - export NPERTURB_PAIRS=$npert - -# Perturb and recenter ensemble analysis members - export LONB=$LONB_ENKF - export LATB=$LATB_ENKF - export ADDPERTPATH=$PERTURBDIR/ - rm dates_ran.dat stdout.adderr - - ln -fs $SIGGES sfg_${CDATE}_fhr06_ensmean - if [[ $FILESTYLE = 'L' ]]; then - ln -fs $PERTDATES dates_ran.dat - fi - - if [[ "$POE" = "YES" ]]; then - poe $ADDERRSPECEXEC $NANALS $CDATE $SCALEFACT $ADDPERTPATH $NPERTURB_PAIRS > stdout.adderr - rc=$? - else - eval "$APRUN $ADDERRSPECEXEC $NANALS $CDATE $SCALEFACT $ADDPERTPATH $NPERTURB_PAIRS > stdout.adderr" - rc=$? - fi - - export ERR=$rc - export err=$ERR - $ERRSCRIPT||exit 2 - - cat stdout.adderr - if [[ $FILESTYLE = 'C' ]]; then - $NCP dates_ran.dat $PERTDATES - fi - -# Compute mean for perturbed and recentered ensemble analysis members - export DATAPATH2=./ - export FILENAMEOUT=sanlpr_${CDATE}_ensmean - export FILEPREFIX=sanlpr_${CDATE} - export NANALS=$NMEM_ENKF - rm stdout.sanlpr_ensmean - eval "$APRUN $GETATMENSMEANEXEC $DATAPATH2 $FILENAMEOUT $FILEPREFIX $NANALS > stdout.sanlpr_ensmean" - rc=$? - - export ERR=$rc - export err=$ERR - $ERRSCRIPT||exit 2 - - cat stdout.sanlpr_ensmean - -fi - - -################################################################################ -# Chgres high resolution analysis to ensemble resolution -$FCPLN $SIGANL_HI sanl_${CDATE}_highres -$FCPLN $SFCANL_HI sfcanl_${CDATE}_highres -export SIGI=sanl_${CDATE}_highres -export SFCI=sfcanl_${CDATE}_highres -export SIGO=sanl_${CDATE}_hybrid_lores -export SFCO=sfcanl_${CDATE}_hybrid_lores -if [ $use_gfs_nemsio = .true. ]; then - export GFSOUT=$SIGO -fi -rm -f $SIGO -rm -f $SFCO - -export JCAP_ens=$JCAP_ENKF -export LEVS_ens=$LEVS_ENKF -export LONB_ens=$LONB_ENKF -export LATB_ens=$LATB_ENKF -export OUTTYP=${OUTTYP:-2} -export PGMOUT=stdout.chgres -export PGMERR=stderr.chgres - -# specify threads for running chgres -if [ $machine = IBMP6 ]; then - export OMP_NUM_THREADS=$CHGRESTHREAD - export NTHREADS=$OMP_NUM_THREADS -else - export OMP_NUM_THREADS=1 - export NTHREADS=1 -fi -export OROGRAPHY=$OROGRAPHY_ENKF -export OROGRAPHY_UF=$OROGRAPHY_UF_ENKF -export SLMASK=$SLMASK_ENKF -export LONSPERLAT=$LONSPERLAT_ENKF - -export CHGRESVARS=$CHGRESVARS_ENKF - -eval "$CHGRESSH $SIGI $SFCI $SIGO $SFCO $JCAP_ens $LEVS_ens $LONB_ens $LATB_ens" -rc=$? - -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 2 - -# reduce thread to 1 since post runs with mpi -export OMP_NUM_THREADS=1 -export NTHREADS=$OMP_NUM_THREADS - -cat stderr.chgres -cat stdout.chgres - - -################################################################################ -# Recenter ensemble member atmospheric analyses about hires analysis -if [[ $SCALEFACT -gt 0 ]]; then - export FILENAME_MEANIN=sanlpr_${CDATE}_ensmean # current mean (perturbed & recentered) - export FILENAMEIN=sanlpr_${CDATE} -else - export FILENAME_MEANIN=sanl_${CDATE}_ensmean # current mean (unperturbed & recentered) - export FILENAMEIN=sanl_${CDATE} -fi -export FILENAME_MEANOUT=sanl_${CDATE}_hybrid_lores # recenter around this mean (hires analysis) -export FILENAMEOUT=sanlprc_${CDATE} - -if [[ $FILESTYLE = 'L' ]]; then - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - ln -fs ${SIGANLENS_OUT}${member} sanlprc_${CDATE}${member} - (( imem = $imem + 1 )) - done -fi - -rm stdout_recenter_hires -if [[ "$POE" = "YES" ]]; then - poe $RECENATMPEXEC $FILENAMEIN $FILENAME_MEANIN $FILENAME_MEANOUT $FILENAMEOUT $NANALS > stdout_recenter_hires - rc=$? -else - eval "$APRUN $RECENATMPEXEC $FILENAMEIN $FILENAME_MEANIN $FILENAME_MEANOUT $FILENAMEOUT $NANALS > stdout_recenter_hires" - rc=$? -fi - -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 2 - -cat stdout_recenter_hires - -if [[ $FILESTYLE = 'C' ]]; then - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - $NCP sanlprc_${CDATE}${member} ${SIGANLENS_OUT}${member} - (( imem = $imem + 1 )) - done -fi - -# Optionally alert $SIGANLENS_OUT files -if [ $SENDDBN = YES ]; then - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - if [ $SENDDBN = YES ]; then - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job ${SIGANLENS_OUT}${member} - fi - (( imem = $imem + 1 )) - done -fi - -################################################################################ -# Update ensemble member surface and nst analyses -################################################################################ -if [ $NST_GSI -gt 0 ]; then - - export DTFANL=${DTFANL:-${COMIN}/${PREINP}dtfanl} - export NSTGES_ENS=${NSTGES_ENS:-${COMIN}/nfg_${GDATE}_fhr06} - export SFCGES_ENS=${SFCGES_ENS:-${COMIN}/bfg_${GDATE}_fhr06} - export SFCGCY_ENS=${SFCGCY_ENS:-${COMIN}/sfcgcy_${CDATE}} - export NSTANL_ENS=${NSTANL_ENS:-${COMOUT}/nstanl_${CDATE}} - export SFCANL_ENS=${SFCANL_ENS:-${COMOUT}/sfcanl_${CDATE}} - - - $FCPLN $DTFANL dtfanl - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - $FCPLN ${NSTGES_ENS}${member} nstf06${member} - $FCPLN ${SFCGES_ENS}${member} sfcf06${member} - if [ $NST_GSI -eq 3 ]; then - $FCPLN ${SFCGCY_ENS}${member} sfcgcy${member} - else - $FCPLN ${SFCANL_ENS}${member} sfcgcy${member} - fi - (( imem = $imem + 1 )) - done - - if [[ $FILESTYLE = 'L' ]]; then - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - ln -fs ${NSTANL_ENS}${member} nstanl${member} - if [ $NST_GSI -eq 3 ]; then - ln -fs ${SFCANL_ENS}${member} sfcanl${member} - fi - (( imem = $imem + 1 )) - done - fi - - rm stdout_recenter_sfcnstupd - if [[ "$POE" = "YES" ]]; then - poe $GETSFCNSTENSUPDEXEC $NANALS $NST_GSI $ZSEA1 $ZSEA2 > stdout_recenter_sfcnstupd - rc=$? - else - eval "$APRUN $GETSFCNSTENSUPDEXEC $NANALS $NST_GSI $ZSEA1 $ZSEA2 > stdout_recenter_sfcnstupd" - rc=$? - fi - - export ERR=$rc - export err=$ERR - $ERRSCRIPT||exit 2 - - if [[ $FILESTYLE = 'C' ]]; then - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - $NCP nstanl${member} ${NSTANL_ENS}${member} - $NCP sfcanl${member} ${SFCANL_ENS}${member} - (( imem = $imem + 1 )) - done - fi - - cat stdout_recenter_sfcnstupd -fi -################################################################################ -# Postprocessing -cd $pwd -[[ $mkdata = YES ]]&&rmdir $DATA -$ENDSCRIPT -set +x -if [[ "$VERBOSE" = "YES" ]]; then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/scripts/exglobal_enkf_innovate_obs.sh.ecf b/scripts/exglobal_enkf_innovate_obs.sh.ecf deleted file mode 100755 index 18d5146d25..0000000000 --- a/scripts/exglobal_enkf_innovate_obs.sh.ecf +++ /dev/null @@ -1,632 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: global_enkfomg.sh -# Script description: Compute global_enkf innovations -# -# Author: Russ Treadonl Org: NP23 Date: 2011-12-16 -# -# Abstract: This script computes global_enkf innovations -# -# Script history log: -# 2011-12-16 Russ Treadon based on GCWMB parallel script eomg.sh -# 2014-02-16 Xu Li add NSST related variables -# -# Usage: exglobal_enkfomg.sh.sms SFCGESMEAN SIGGESMEAN -# -# Input script positional parameters: -# 1 Input surface guess -# defaults to $SFCGESMEAN; required -# 2 Input sigma guess -# defaults to $SIGGESMEAN; required -# -# Imported Shell Variables: -# SFCGESMEAN Input ensemble mean surface guess -# overridden by $1; required -# SIGGESMEAN Input ensemble mean sigma guess -# overridden by $2; required -# SELECT_OBS Tarball containing selected data -# defaults to ${COMIN}/${PREINP}obsinput -# SFCANL Output surface analysis -# defaults to ${COMOUT}/sfcanl -# SFCGCY Output intermideate surface analysis -# defaults to ${COMOUT}/sfcgcy -# SFCG03 Surface guess valid at -03 hour -# defaults to ${COMOUT}/sfcf03 -# SFCG04 Surface guess valid at -04 hour -# defaults to ${COMOUT}/sfcf04 -# SFCG05 Surface guess valid at -05 hour -# defaults to ${COMOUT}/sfcf05 -# SFCG07 Surface guess valid at -07 hour -# defaults to ${COMOUT}/sfcf07 -# SFCG08 Surface guess valid at -08 hour -# defaults to ${COMOUT}/sfcf08 -# SFCG09 Surface guess valid at -09 hour -# defaults to ${COMOUT}/sfcf09 -# NSTG03 NSST guess valid at -03 hour -# defaults to ${COMOUT}/sfcf03 -# NSTG04 NSST guess valid at -04 hour -# defaults to ${COMOUT}/sfcf04 -# NSTG05 NSST guess valid at -05 hour -# defaults to ${COMOUT}/sfcf05 -# NSTG07 NSST guess valid at -07 hour -# defaults to ${COMOUT}/sfcf07 -# NSTG08 NSST guess valid at -08 hour -# defaults to ${COMOUT}/sfcf08 -# NSTG09 NSST guess valid at -09 hour -# defaults to ${COMOUT}/sfcf09 -# SIGG03 Sigma guess valid at -03 hour -# defaults to ${COMOUT}/sigf03 -# SIGG04 Sigma guess valid at -04 hour -# defaults to ${COMOUT}/sigf04 -# SIGG05 Sigma guess valid at -05 hour -# defaults to ${COMOUT}/sigf05 -# SIGG07 Sigma guess valid at -07 hour -# defaults to ${COMOUT}/sigf07 -# SIGG08 Sigma guess valid at -08 hour -# defaults to ${COMOUT}/sigf08 -# SIGG09 Sigma guess valid at -09 hour -# defaults to ${COMOUT}/sigf09 -# DOHYBVAR flag (YES or N) for hybrid ensemble variational option -# defaults to NO -# USE_NEWRADBC Flag to use new radiance bias correction scheme (YES or NO) -# defaults to NO -# RADSTAT Output radiance assimilation statistics -# defaults to ${COMIN}/${PREINP}radstat -# GSISTAT Output gsi (obs-ges), qc, and iteration statistics -# defaults to ${COMIN}/${PREINP}gsistat -# PCPSTAT Output precipitation assimilation statistics -# defaults to ${COMIN}/${PREINP}pcpstat -# CNVSTAT Output conventional observation assimilation statistics -# defaults to ${COMIN}/${PREINP}cnvstat -# OZNSTAT Output ozone observation assimilation statistics -# defaults to ${COMIN}/${PREINP}oznstat -# RUN_SELECT Flag to only select data (YES or NO) -# defaults to NO -# USE_SELECT Flag to use selected data (YES or NO) -# defaults to NO -# DIAG_SUFFIX optional suffix for diagnostics files -# defaults to empty string -# DIAG_COMPRESS flag to compress (YES) diagnostics files -# defaults to YES -# DIAG_TARBALL flag to collect (YES) diagnostic files in tarballs -# defaults to YES -# FIXgsm Directory for global fixed files -# defaults to /nwprod/fix -# EXECgsm Directory for global executables -# defaults to /nwprod/exec -# USHgsm Directory for global ush scripts -# defaults to /nwprod/ush -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# COMIN input directory -# defaults to current working directory -# COMOUT output directory -# (if nonexistent will be made) -# defaults to current working directory -# XC Suffix to add to executables -# defaults to none -# PREINP Prefix to add to input observation files -# defaults to none -# SUFINP Suffix to add to input observation files -# defaults to none -# NCP Copy command -# defaults to cp -# SIGHDR Command to read sigma header -# defaults to ${EXECgsm}/global_sighdr$XC -# SFCHDR Command to read surface header -# defaults to ${EXECgsm}/global_sfchdr$XC -# NSTHDR Command to read NSST header -# defaults to ${EXECgsm}/global_nsthdr$XC -# CYCLEXEC Surface cycle executable -# defaults to ${EXECgsm}/global_cycle$XC -# GSIEXEC Spectral analysis executable -# defaults to ${EXECgsm}/global_gsi$XC -# CYCLESH Surface cycle script -# defaults to ${USHgsm}/global_cycle.sh -# BERROR Input background error file -# defaults to ${FIXgsm}/global_berror.l${LEVS}y${NLAT_A}.sig.f77 -# SATANGL Input satellite angle bias file -# defaults to ${FIXgsm}/global_satangbias.txt -# SATINFO Input satellite information file -# defaults to ${FIXgsm}/global_satinfo.txt -# RTMFIX Input directory containing CRTM coefficients -# defaults to ${FIXgsm}/crtm_v2.2.3 -# ANAVINFO Input analysis variable file -# defaults to ${FIXgsm}/global_anavinfo.l${LEVS}.txt -# CONVINFO Input conventional observation information file -# defaults to ${FIXgsm}/global_convinfo.txt -# INSITUINFO Input In Situ sea water temperature observation information file -# defaults to ${FIXgsm}/global_insituinfo.txt -# OZINFO Input ozone information file -# defaults to ${FIXgsm}/global_ozone.txt -# PCPINFO Input precipitation information file -# defaults to ${FIXgsm}/global_pcpinfo.txt -# AEROINFO Input aerosol information file -# defaults to ${FIXgsm}/global_aeroinfo.txt -# SCANINFO Input satellite scan information file -# defaults to ${FIXgsm}/global_scaninfo.txt -# HYBENSINFO Input hybrid ensemble localization information file -# defaults to ${FIXgsm}/global_hybens_locinfo.l${LEVS}.txt -# defaults to ${COMIN}/${PREINP}syndata.tcvitals.tm00 -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# JCAP_A Spectral truncation for analysis -# defaults to the value in the input sigma file header -# JCAP Spectral truncation for background -# defaults to the value in the input sigma file header -# LEVS Number of levels -# DELTIM Timestep in seconds -# defaults to 3600/($JCAP_A/20) -# CDATE Current analysis date in yyyymmddhh format -# defaults to the value in the input surface file header -# LATB Number of latitudes in surface cycling -# defaults to the value in the input surface file header -# LONB Number of longitudes in surface cycling -# defaults to the value in the input surface file header -# LSOIL Number of soil layers -# defaults to 2 -# FSMCL2 Scale in days to relax to soil moisture climatology -# defaults to 60 -# DELTSFC Cycling frequency in hours -# defaults to forecast hour of $SFCGESMEAN -# LATA Number of latitudes in spectral analysis -# defaults to $LATB -# LONA Number of longitudes in spectral analysis -# defaults to $LONB -# CYCLVARS Other namelist inputs to the cycle executable -# defaults to none set -# NTHREADS Number of threads -# defaults to 1 -# NTHSTACK Size of stack per thread -# defaults to 1024000000 -# NTHREADS_GSI Number of threads for GSIEXEC -# defaults to 1 -# NTHSTACK_GSI Size of stack per thread for GSIEXEC -# defaults to 1024000000 -# FILESTYLE File management style flag -# ('C' to copy to/from $DATA, 'L' for symbolic links in $DATA, -# 'X' to use XLFUNIT or symbolic links where appropriate) -# defaults to 'X' -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to NO -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $CYCLEXEC -# $GSIEXEC -# -# fixed data : $BERROR -# $SATANGL -# $SATINFO -# $RTMFIX -# $ANAVINFO -# $CONVINFO -# $INSITUINFO -# $OZINFO -# $PCPINFO -# $AEROINFO -# $SCANINFO -# $HYBENSINFO -# -# input data : $SFCGESMEAN -# $SIGGESMEAN -# $SELECT_OBS -# $SFCG03 -# $SFCG04 -# $SFCG05 -# $SFCG07 -# $SFCG08 -# $SFCG09 -# $NSTG03 -# $NSTG04 -# $NSTG05 -# $NSTG07 -# $NSTG08 -# $NSTG09 -# $SIGG03 -# $SIGG04 -# $SIGG05 -# $SIGG07 -# $SIGG08 -# $SIGG09 -# $FNTSFA -# $FNACNA -# $FNSNOA -# -# output data: $SFCANL -# $SFCGCY -# $RADSTAT -# $GSISTAT -# $PCPSTAT -# $CNVSTAT -# $OZNSTAT -# $PGMOUT -# $PGMERR -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -################################################################################ -# Set environment. -export VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -export machine=${machine:-IBMP6} -export machine=$(echo $machine|tr '[a-z]' '[A-Z]') - -# Command line arguments. -export SFCGESMEAN=${1:-${SFCGESMEAN:?}} -export SIGGESMEAN=${2:-${SIGGESMEAN:?}} -export NSTGESMEAN=${3:-${NSTGESMEAN:?}} -# Directories. -export HOMEDIR=${HOMEDIR:-$NWROOT} -export NWPROD=${NWPROD:-$HOMEDIR} -export FIXSUBDA=${FIXSUBDA:-fix/fix_am} -export FIXgsm=${FIXgsm:-$NWPROD/global_shared.${global_shared_ver}/fix/fix_am} -export EXECgsm=${EXECgsm:-$NWPROD/global_shared.${global_shared_ver}/exec} -export USHgsm=${USHgsm:-$NWPROD/global_shared.${global_shared_ver}/ush} -export FIXgsi=${FIXgsi:-$NWPROD/global_shared.${global_shared_ver}/fix} -export EXECgsi=${EXECgsi:-$NWPROD/global_shared.${global_shared_ver}/exec} -export utilscript=${utilscript:-$NWPROD/util/ush} -export DATA=${DATA:-$(pwd)} -export COMIN=${COMIN:-$(pwd)} -export COMOUT=${COMOUT:-$(pwd)} - -# Set script / GSI control parameters -export use_gfs_nemsio=${use_gfs_nemsio:-".false."} # run GSI with NEMSIO input/output - -# Scripts. -export ANALYSISSH=${ANALYSISSH:-$SCRGSI/exglobal_analysis.sh.sms} - -# Variables. -export XC=${XC} -export PREINP=${PREINP} -export SUFINP=${SUFINP} -export SIGHDR=${SIGHDR:-${EXECgsm}/global_sighdr$XC} -export SFCHDR=${SFCHDR:-${EXECgsm}/global_sfchdr$XC} -if [ $use_gfs_nemsio = .true. ]; then - export JCAP=${JCAP:-$($SIGHDR $SIGGESMEAN jcap |grep -i "jcap" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export JCAP_A=${JCAP_A:-$($SIGHDR $SIGGESMEAN jcap |grep -i "jcap" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export LATB=${LATB:-$($SFCHDR $SFCGESMEAN latr |grep -i "latr" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export LONB=${LONB:-$($SFCHDR $SFCGESMEAN lonr |grep -i "lonr" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export LEVS=${LEVS:-$($SIGHDR $SIGGESMEAN levs |grep -i "levs" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} -else - export JCAP=${JCAP:-$($SIGHDR $SIGGESMEAN JCAP||echo 0)} - export JCAP_A=${JCAP_A:-$($SIGHDR $SIGGESMEAN JCAP||echo 0)} - export LATB=${LATB:-$($SFCHDR $SFCGESMEAN LATB||echo 0)} - export LONB=${LONB:-$($SFCHDR $SFCGESMEAN LONB||echo 0)} - export LEVS=${LEVS:-$($SIGHDR $SIGGESMEAN LEVS||echo 0)} -fi -export LATA=${LATA:-$LATB} -export LONA=${LONA:-$LONB} -export NLAT_A=${NLAT_A:-$(($LATA+2))} -export NLON_A=${NLON_A:-$LONA} -export DELTIM=${DELTIM:-$((3600/($JCAP_A/20)))} -export USE_NEWRADBC=${USE_NEWRADBC:-"NO"} -export DOHYBVAR=${DOHYBVAR:-"NO"} -export DOIAU=${DOIAU:-"NO"} - -# Files. -export CYCLEXEC=${CYCLEXEC:-${EXECgsm}/global_cycle$XC} -export GSIEXEC=${GSIEXEC:-${EXECgsi}/global_gsi$XC} -export CYCLESH=${CYCLESH:-${USHgsm}/global_cycle.sh} -export BERROR=${BERROR:-${FIXgsi}/global_berror.l${LEVS}y${NLAT_A}.f77} -export SATANGL=${SATANGL:-${FIXgsi}/global_satangbias.txt} -export SATINFO=${SATINFO:-${FIXgsi}/global_satinfo.txt} -export RADCLOUDINFO=${RADCLOUDINFO:-${FIXgsi}/cloudy_radiance_info.txt} -export RTMFIX=${RTMFIX:-$NWROOT/lib/crtm/${crtm_ver}/fix} -export ANAVINFO=${ANAVINFO:-${FIXgsi}/global_anavinfo.l${LEVS}.txt} -export CONVINFO=${CONVINFO:-${FIXgsi}/global_convinfo.txt} -export INSITUINFO=${INSITUINFO:-${FIXgsi}/global_insituinfo.txt} -export OZINFO=${OZINFO:-${FIXgsi}/global_ozinfo.txt} -export PCPINFO=${PCPINFO:-${FIXgsi}/global_pcpinfo.txt} -export AEROINFO=${AEROINFO:-${FIXgsi}/global_aeroinfo.txt} -export SCANINFO=${SCANINFO:-${FIXgsi}/global_scaninfo.txt} -export HYBENSINFO=${HYBENSINFO:-${FIXgsi}/global_hybens_locinfo.l${LEVS}.txt} -export OBERROR=${OBERROR:-${FIXgsi}/prepobs_errtable.global} -export SELECT_OBS=${SELECT_OBS:-${COMIN}/obsinput_${CDATE}_ensmean} -export SFCG03=${SFCG03:-${COMOUT}/sfcf03} -export SFCG04=${SFCG04:-${COMOUT}/sfcf04} -export SFCG05=${SFCG05:-${COMOUT}/sfcf05} -export SFCG07=${SFCG07:-${COMOUT}/sfcf07} -export SFCG08=${SFCG08:-${COMOUT}/sfcf08} -export SFCG09=${SFCG09:-${COMOUT}/sfcf09} -export NSTG03=${NSTG03:-${COMOUT}/nstf03} -export NSTG04=${NSTG04:-${COMOUT}/nstf04} -export NSTG05=${NSTG05:-${COMOUT}/nstf05} -export NSTG07=${NSTG07:-${COMOUT}/nstf07} -export NSTG08=${NSTG08:-${COMOUT}/nstf08} -export NSTG09=${NSTG09:-${COMOUT}/nstf09} -export SIGG03=${SIGG03:-${COMOUT}/sigf03} -export SIGG04=${SIGG04:-${COMOUT}/sigf04} -export SIGG05=${SIGG05:-${COMOUT}/sigf05} -export SIGG07=${SIGG07:-${COMOUT}/sigf07} -export SIGG08=${SIGG08:-${COMOUT}/sigf08} -export SIGG09=${SIGG09:-${COMOUT}/sigf09} -export RADSTAT=${RADSTAT:-${COMOUT}/${PREINP}radstat} -export GSISTAT=${GSISTAT:-${COMOUT}/${PREINP}gsistat} -export PCPSTAT=${PCPSTAT:-${COMOUT}/${PREINP}pcpstat} -export CNVSTAT=${CNVSTAT:-${COMOUT}/${PREINP}cnvstat} -export OZNSTAT=${OZNSTAT:-${COMOUT}/${PREINP}oznstat} -export RUN_SELECT=${RUN_SELECT:-"NO"} -export USE_SELECT=${USE_SELECT:-"NO"} -export DIAG_SUFFIX=${DIAG_SUFFIX:-""} -export DIAG_COMPRESS=${DIAG_COMPRESS:-"YES"} -export DIAG_TARBALL=${DIAG_TARBALL:-"YES"} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} -# Other variables. -export LSOIL=${LSOIL:-2} -export FSMCL2=${FSMCL2:-60} -if [ $use_gfs_nemsio = .true. ]; then - export CDATE=${CDATE:-$($SFCHDR $SFCGESMEAN fcstdate | grep -i "fcstdate_ymdh" |awk -F= '{print $2}')} - export DELTSFC=${DELTSFC:-`$SFCHDR $SFCGESMEAN nfhour |awk -F" " '{print $2}'`} -else - export CDATE=${CDATE:-$($SFCHDR $SFCGESMEAN VDATE||echo 0)} - export DELTSFC=${DELTSFC:-$($SFCHDR $SFCGESMEAN FHOUR||echo 0)} -fi -export CYCLVARS=${CYCLVARS} -export SETUP_ENKF=${SETUP_ENKF:-""} -export GRIDOPTS_ENKF=${GRIDOPTS_ENKF:-""} -export BKGVERR_ENKF=${BKGVERR_ENKF:-""} -export ANBKGERR_ENKF=${ANBKGERR_ENKF:-""} -export JCOPTS_ENKF=${JCOPTS_ENKF:-""} -export STRONGOPTS_ENKF=${STRONGOPTS_ENKF:-""} -export OBSQC_ENKF=${OBSQC_ENKF:-""} -export OBSINPUT_ENKF=${OBSINPUT_ENKF:-""} -export SUPERRAD_ENKF=${SUPERRAD_ENKF:-""} -export SINGLEOB_ENKF=${SINGLEOB_ENKF:-""} -export LAGDATA_ENKF=${LAGDATA_ENKF:-""} -export HYBRID_ENSEMBLE_ENKF=${HYBRID_ENSEMBLE_ENKF:-""} -export RAPIDREFRESH_CLDSURF_ENKF=${RAPIDREFRESH_CLDSURF_ENKF:-""} -export CHEM_ENKF=${CHEM_ENKF:-""} -export SMOOTH_ENKF=${SMOOTH_ENKF:-"NO"} -export NTHREADS=${NTHREADS:-1} -export NTHSTACK=${NTHSTACK:-1024000000} -export NTHREADS_GSI=${NTHREADS_GSI:-1} -export NTHSTACK_GSI=${NTHSTACK_GSI:-1024000000} -export FILESTYLE=${FILESTYLE:-'X'} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export OBERRFLAG=${OBERRFLAG:-.false.} -export NCP=${NCP:-cp} -if [ $machine = IBMP6 ] ; then - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} -else -##export REDOUT=${REDOUT:-'1>'} -##export REDERR=${REDERR:-'2>'} - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} -fi - -################################################################################ -# Preprocessing -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] -then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 -export DATATOP=$DATA - - -################################################################################ -# Copy or link input data -if [[ $FILESTYLE = 'C' ]] -then - $NCP $SELECT_OBS ./ -else - ln -fs $SELECT_OBS obs_input.tar -fi - - -################################################################################ -# Set output data - -EOMGGRP=$COMOUT/omgstat_${CDATE}_grp${ENSGRP} -rm -f $EOMGGRP - -################################################################################ -# Generate ensemble innovations -imem=$ENSBEG -while [[ $imem -le $ENSEND ]]; do - export RUN_SELECT=NO - export USE_SELECT=YES - export SELECT_OBS=${SELECT_OBS:-$DATATOP/obsinput_${CDATE}_ensmean} - export SETUP="miter=0,niter=1,lread_obs_save=.false.,lread_obs_skip=.true.,lwrite_predterms=.true.,lwrite_peakwt=.true.,reduce_diag=.true.,$SETUP_ENKF" - export GRIDOPTS="$GRIDOPTS $GRIDOPTS_ENKF" - export BKGVERR="bkgv_flowdep=.false.,$BKGVERR_ENKF" - export ANBKGERR="$ANBKGERR $ANBKGERR_ENKF" - export JCOPTS="$JCOPTS $JCOPTS_ENKF" - export STRONGOPTS="tlnmc_option=0,nstrong=0,nvmodes_keep=0,baldiag_full=.false.,baldiag_inc=.false.,$STRONGOPTS_ENKF" - export OBSQC="tcp_width=60.0,tcp_ermin=2.0,tcp_ermax=12.0,$OBSQC_ENKF" - export OBSINPUT="dmesh(1)=225.0,dmesh(2)=225.0,$OBSINPUT_ENKF" - export SUPERRAD="$SUPERRAD $SUPERRAD_ENKF" - export SINGLEOB="$SINGLEOB $SINGLEOB_ENKF" - export LAGDATA="$LAGDATA $LAGDATA_ENKF" - export HYBRID_ENSEMBLE="$HYBRID_ENSEMBLE $HYBRID_ENSEMBLE_ENKF" - export RAPIDREFRESH_CLDSURF="$RAPIDREFRESH_CLDSURF $RAPIDREFRESH_CLDSURF_ENKF" - export CHEM="$CHEM $CHEM_ENKF" - - export member="mem"`printf %03i $imem` - export DATA=$DATATOP/$member - export pgmoutm=$DATA/${pgmout:-pgmout.$member} - - export SFCG03=$COMINGES/bfg_${GDATE}_fhr03_${member} - export SFCG04=$COMINGES/bfg_${GDATE}_fhr04_${member} - export SFCG05=$COMINGES/bfg_${GDATE}_fhr05_${member} - export SFCG06=$COMINGES/bfg_${GDATE}_fhr06_${member} - export SFCG07=$COMINGES/bfg_${GDATE}_fhr07_${member} - export SFCG08=$COMINGES/bfg_${GDATE}_fhr08_${member} - export SFCG09=$COMINGES/bfg_${GDATE}_fhr09_${member} - export SFCGES=$COMINGES/bfg_${GDATE}_fhr06_${member} - - export NSTG03=$COMINGES/nfg_${GDATE}_fhr03_${member} - export NSTG04=$COMINGES/nfg_${GDATE}_fhr04_${member} - export NSTG05=$COMINGES/nfg_${GDATE}_fhr05_${member} - export NSTG06=$COMINGES/nfg_${GDATE}_fhr06_${member} - export NSTG07=$COMINGES/nfg_${GDATE}_fhr07_${member} - export NSTG08=$COMINGES/nfg_${GDATE}_fhr08_${member} - export NSTG09=$COMINGES/nfg_${GDATE}_fhr09_${member} - export NSTGES=$COMINGES/nfg_${GDATE}_fhr06_${member} - - ENKF_SUFFIX="" - if [[ "$SMOOTH_ENKF" = "YES" ]]; then - ENKF_SUFFIX="s" - fi - export SIGG03=$COMINGES/sfg_${GDATE}_fhr03${ENKF_SUFFIX}_${member} - export SIGG04=$COMINGES/sfg_${GDATE}_fhr04${ENKF_SUFFIX}_${member} - export SIGG05=$COMINGES/sfg_${GDATE}_fhr05${ENKF_SUFFIX}_${member} - export SIGG06=$COMINGES/sfg_${GDATE}_fhr06${ENKF_SUFFIX}_${member} - export SIGG07=$COMINGES/sfg_${GDATE}_fhr07${ENKF_SUFFIX}_${member} - export SIGG08=$COMINGES/sfg_${GDATE}_fhr08${ENKF_SUFFIX}_${member} - export SIGG09=$COMINGES/sfg_${GDATE}_fhr09${ENKF_SUFFIX}_${member} - export SIGGES=$COMINGES/sfg_${GDATE}_fhr06${ENKF_SUFFIX}_${member} - - export SIGANL=$DATA/sanl - export ABIAS=$DATA/abias - export ABIASPC=$DATA/abias_pc - export ABIASAIR=$DATA/abias_air - - export SFCGCY=$COMOUT/sfcgcy_${CDATE}_${member} - export SFCANL=$COMOUT/sfcanl_${CDATE}_${member} - export NSTANL=$COMOUT/nstanl_${CDATE}_${member} - export GSISTAT=$COMOUT/gsistat_${CDATE}_${member} - export RADSTAT=$COMOUT/radstat_${CDATE}_${member} - export OZNSTAT=$COMOUT/oznstat_${CDATE}_${member} - export PCPSTAT=$COMOUT/pcpstat_${CDATE}_${member} - export CNVSTAT=$COMOUT/cnvstat_${CDATE}_${member} - if [ $DOIAU = YES ]; then - export SFCA03=$COMOUT/sfca03_${CDATE}_${member} - fi - - export DIAG_SUFFIX="_${member}" - export DIAG_COMPRESS=NO - export DIAG_TARBALL=YES - export DOHYBVAR=NO - export HYBRID_ENSEMBLE=" " - - if [ -s $SFCANL ] ; then - rm -f $SFCANL - fi - if [ $DOIAU = YES && -s $SFCA03 ] ; then - rm -f $SFCA03 - fi - if [ -s $GSISTAT ] ; then - rm -f $GSISTAT - fi - if [ -s $RADSTAT ] ; then - rm -f $RADSTAT - fi - if [ -s $OZNSTAT ] ; then - rm -f $OZNSTAT - fi - if [ -s $PCPSTAT ] ; then - rm -f $PCPSTAT - fi - if [ -s $CNVSTAT ] ; then - rm -f $CNVSTAT - fi - - - $ANALYSISSH - rc=$? - - cat $pgmoutm - - export ERR=$rc - export err=$ERR - $ERRSCRIPT||exit 2 - - rm log - cp $DATATOP/log_all ./log_old - echo "Process member $imem" > log - cat log_old log > log_new - cp log_new $DATATOP/log_all - - if [ $SENDDBN = YES ]; then - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $SFCANL - fi - - (( imem = $imem + 1 )) - -done - - -################################################################################ -# Save log - -cd $DATATOP -cp log_all $EOMGGRP - - -################################################################################ -# Postprocessing -cd $pwd -[[ $mkdata = YES ]]&&rmdir $DATA -$ENDSCRIPT -set +x -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/scripts/exglobal_enkf_innovate_obs_fv3gfs.sh.ecf b/scripts/exglobal_enkf_innovate_obs_fv3gfs.sh.ecf deleted file mode 100755 index bd87811543..0000000000 --- a/scripts/exglobal_enkf_innovate_obs_fv3gfs.sh.ecf +++ /dev/null @@ -1,197 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: exglobal_enkf_innovate_obs_fv3gfs.sh.ecf -# Script description: Compute ensemble innovations -# -# Author: Rahul Mahajan Org: NCEP/EMC Date: 2017-03-02 -# -# Abstract: This script runs the innovation calculation script serially over ensemble members -# -# $Id$ -# -# Attributes: -# Language: POSIX shell -# Machine: WCOSS-Cray/Theia -# -################################################################################ - -# Set environment. -export VERBOSE=${VERBOSE:-"YES"} -if [ $VERBOSE = "YES" ] ; then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi - -# Directories. -pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgsi=${HOMEgsi:-$NWPROD} -export COMIN=${COMIN:-$pwd} -export COMIN_GES_ENS=${COMIN_GES_ENS:-$COMIN} -export COMOUT=${COMOUT:-$COMIN} -DATA=${DATA:-$pwd/enkf_innovate_obs.$$} - -# Utilities -export NCP=${NCP:-"/bin/cp -p"} -export NMV=${NMV:-"/bin/mv"} -export NLN=${NLN:-"/bin/ln -sf"} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} - -# Scripts. -INVOBSSH=${INVOBSSH:-$HOMEgsi/scripts/exglobal_innovate_obs_fv3gfs.sh.ecf} -export ANALYSISSH=${ANALYSISSH:-$HOMEgsi/scripts/exglobal_analysis_fv3gfs.sh.ecf} - -# Enemble group, begin and end -ENSGRP=${ENSGRP:-1} -ENSBEG=${ENSBEG:-1} -ENSEND=${ENSEND:-1} - -# Cycling and forecast hour specific parameters -export CDATE=${CDATE:-"2001010100"} -export CDUMP=${CDUMP:-"gdas"} - -# Re-run failed members, or entire group -RERUN_EOMGGRP=${RERUN_EOMGGRP:-"YES"} - -# Ops related stuff -SENDECF=${SENDECF:-"NO"} - -export SMOOTH_ENKF=${SMOOTH_ENKF:-"YES"} -export USE_SELECT=${USE_SELECT:-"NO"} -export SELECT_OBS=${SELECT_OBS:-${COMOUT}/${APREFIX}obsinput} - -################################################################################ -# Preprocessing -mkdata=NO -if [ ! -d $DATA ]; then - mkdata=YES - mkdir -p $DATA -fi -cd $DATA || exit 99 -DATATOP=$DATA - -ENKF_SUFFIX="s" -[[ $SMOOTH_ENKF = "NO" ]] && ENKF_SUFFIX="" - -################################################################################ -# Set output data -EOMGGRP=$COMOUT/eomg.grp${ENSGRP} -if [ -f $EOMGGRP ]; then - if [ $RERUN_EOMGGRP = "YES" ]; then - rm -f $EOMGGRP - else - echo "RERUN_EOMGGRP = $RERUN_EOMGGRP, will re-run FAILED members only!" - $NMV $EOMGGRP ${EOMGGRP}.fail - fi -fi - -################################################################################ -# Save variables from over-writing -COMOUT_SAVE=$COMOUT - -################################################################################ -# If requested, link and de-tar obs_input -if [ $USE_SELECT = "YES" ]; then - rm -rf obsinput ; mkdir -p obsinput ; cd obsinput - $NLN $SELECT_OBS obsinput.tar - tar -xvf obsinput.tar - rm obsinput.tar - export SELECT_OBS=$DATA/obsinput - cd $DATA -fi - -################################################################################ -# Run innovation script for ensemble member -rc=0 -for imem in $(seq $ENSBEG $ENSEND); do - - cd $DATATOP - - cmem=$(printf %03i $imem) - memchar="mem$cmem" - - echo "Processing MEMBER: $cmem" - - ra=0 - - skip_mem="NO" - if [ -f ${EOMGGRP}.fail ]; then - memstat=$(cat ${EOMGGRP}.fail | grep "MEMBER $cmem" | grep "PASS" | wc -l) - [[ $memstat -eq 1 ]] && skip_mem="YES" - fi - - if [ $skip_mem = "NO" ]; then - - export DATA=$DATATOP/$memchar - [[ -d $DATA ]] && rm -rf $DATA - - export DIAG_SUFFIX="_$memchar" - export COMIN_GES=$COMIN_GES_ENS/$memchar - export COMOUT=$COMOUT_SAVE/$memchar - [[ ! -d $COMOUT ]] && mkdir -p $COMOUT - - export ATMG03="$COMIN_GES/${GPREFIX}atmf003${ENKF_SUFFIX}${GSUFFIX}" - export ATMG04="$COMIN_GES/${GPREFIX}atmf004${ENKF_SUFFIX}${GSUFFIX}" - export ATMG05="$COMIN_GES/${GPREFIX}atmf005${ENKF_SUFFIX}${GSUFFIX}" - export ATMGES="$COMIN_GES/${GPREFIX}atmf006${ENKF_SUFFIX}${GSUFFIX}" - export ATMG07="$COMIN_GES/${GPREFIX}atmf007${ENKF_SUFFIX}${GSUFFIX}" - export ATMG08="$COMIN_GES/${GPREFIX}atmf008${ENKF_SUFFIX}${GSUFFIX}" - export ATMG09="$COMIN_GES/${GPREFIX}atmf009${ENKF_SUFFIX}${GSUFFIX}" - - # Ensure clean tarballs for ensemble member - for ftype in cnvstat oznstat radstat; do - fstat=$COMOUT/${APREFIX}$ftype - [[ -f $fstat ]] && rm -f $fstat - done - - $INVOBSSH - ra=$? - ((rc+=ra)) - - # Notify a member observation innovation failed, freeze eupd, but continue on to next member - if [ $ra -ne 0 ]; then - msg="observation innovation of member $cmem FAILED" - echo $msg - [[ $SENDECF = "YES" ]] && ecflow_client --abort=$msg - fi - - fi - - cd $DATATOP - - $NCP $EOMGGRP log_old - rm log log_new - if [ $ra -ne 0 ]; then - echo "MEMBER $cmem : FAIL" > log - else - echo "MEMBER $cmem : PASS" > log - fi - cat log_old log > log_new - $NCP log_new $EOMGGRP - -done - -################################################################################ -# Echo status of ensemble group -cd $DATATOP -echo "Status of ensemble members in group $ENSGRP:" -cat $EOMGGRP -rm ${EOMGGRP}.fail - -################################################################################ -# If any members failed, error out -export ERR=$rc -export err=$ERR -$ERRSCRIPT || exit 2 - -################################################################################ -# Postprocessing -cd $pwd -[[ $mkdata = "YES" ]]&& rm -rf $DATATOP -set +x -if [ $VERBOSE = "YES" ] ; then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/scripts/exglobal_enkf_post.sh.ecf b/scripts/exglobal_enkf_post.sh.ecf deleted file mode 100755 index 2b5675f8c7..0000000000 --- a/scripts/exglobal_enkf_post.sh.ecf +++ /dev/null @@ -1,599 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: exglobal_enkfpos.sh.sms -# Script description: global_enkf forecast post processing -# -# Author: Russ Treadon Org: NP23 Date: 2011-12-16 -# -# Abstract: This script runs the global_enkf forecast post processing -# -# Script history log: -# 2011-12-16 Russ Treadon based on GCWMB parallel script epos.sh -# 2014-05-16 Xu Li Add NSST -# -# Usage: exglobal_enkfpos.sh.sms -# -# Input script positional parameters: -# defaults to $IGEN, then to 0 -# -# Imported Shell Variables: -# FIXgsm Directory for global fixed files -# defaults to /nwprod/fix -# EXECgsm Directory for global executables -# defaults to /nwprod/exec -# USHgsm Directory for global scripts -# defaults to /nwprod/ush -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# COMIN input directory -# defaults to current working directory -# COMOUT output directory -# (if nonexistent will be made) -# defaults to current working directory -# XC Suffix to add to executables -# defaults to none -# NCP Copy command -# defaults to cp -# GETATMENSMEANEXEC Compute ensemble mean sigma (optonally smoothed) -# defaults to ${EXECgsm}/getsigensmeanp_smooth$XC -# GETSFCENSMEANEXEC Compute ensemble mean surface file -# defaults to ${EXECgsm}/getsfcensmeanp$XC -# GETNSTENSMEANEXEC Compute ensemble mean NSST file -# defaults to ${EXECgsm}/getnstensmeanp$XC -# HYBENSMOOTH Input level dependent smoothing paramters for sigma file -# defaults to ${FIXgsm}/global_hybens_smoothinfo.l${LEVS}.txt -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# LEVS Number of levels -# defaults to 64 -# CDATE Current analysis date in yyyymmddhh format -# defaults to the value in the input surface file header -# NTHREADS Number of threads -# defaults to 1 -# NTHSTACK Size of stack per thread -# defaults to 1024000000 -# FILESTYLE File management style flag -# ('C' to copy to/from $DATA, 'L' for symbolic links in $DATA, -# 'X' to use XLFUNIT or symbolic links where appropriate) -# defaults to 'X' -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to NO -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $GETATMENSMEANEXEC -# $GETATMENSMEANEXEC -# -# fixed data : $HYBENSMOOTH -# -# input data : -# -# output data: -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -################################################################################ -# Set environment. -export VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -export machine=${machine:-IBMP6} -export machine=$(echo $machine|tr '[a-z]' '[A-Z]') - -# Command line arguments. -# none -# Directories. -export HOMEDIR=${HOMEDIR:-$NWROOT} -export NWPROD=${NWPROD:-$HOMEDIR} -export FIXgsm=${FIXgsm:-$NWPROD/global_shared.${global_shared_ver}/fix/fix_am} -export EXECgsm=${EXECgsm:-$NWPROD/global_shared.${global_shared_ver}/exec} -export USHgsm=${USHgsm:-$NWPROD/global_shared.${global_shared_ver}/ush} -export FIXgsi=${FIXgsi:-$NWPROD/global_shared.${global_shared_ver}/fix} -export EXECgdas=${EXECgdas:-$NWPROD/gdas.${gdas_ver}/exec} -export USHgdas=${USHgdas:-$NWPROD/gdas.${gdas_ver}/ush} -export DATA=${DATA:-$(pwd)} -export COMIN=${COMIN:-$(pwd)} -export COMOUT=${COMOUT:-$(pwd)} -# Set script / EnKF update control parameters -export use_gfs_nemsio=${use_gfs_nemsio:-".false."} # run script with NEMSIO input/output -# Filenames. -export XC=${XC:-".x"} -export LEVS=${LEVS:-64} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} -export HYBENSMOOTH=${HYBENSMOOTH:-$FIXgsi/global_hybens_smoothinfo.l${LEVS}.txt} -export SFCHDR=${SFCHDR:-${EXECgsm}/global_sfchdr$XC} -# I/O filenames. -if [ $use_gfs_nemsio = .true. ]; then - export CDATE=${CDATE:-$($SFCHDR $SFCGES fcstdate | grep -i "fcstdate_ymdh" |awk -F= '{print $2}')} -else - export CDATE=${CDATE:-$($SFCHDR $SFCGES VDATE||echo 0)} -fi -export SIGENS_IN=${SIGENS_IN:-$COMIN/sfg_${CDATE}_fhr} -export SFCENS=${SFCENS:-$COMIN/bfg_${CDATE}_fhr} -export ENSSTAT=${ENSSTAT:-$COMOUT/ensstat_${CDATE}_all} -export SIGENSMEAN=${SIGENSMEAN:-$COMOUT/sfg_${CDATE}_fhr} -export SFCENSMEAN=${SFCENSMEAN:-$COMOUT/bfg_${CDATE}_fhr} -export SIGENS_OUT=${SIGENS_OUT:-${COMOUT}/sfg_${CDATE}_fhr} -# Executables. -export GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-$EXECgdas/getsigensmean_smoothp$XC} -export GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-$EXECgdas/getsfcensmeanp$XC} -export GETATMENSSTATEXEC=${GETATMENSSTATEXEC:-$EXECgdas/getsigensstatp$XC} -export NSTENS=${NSTENS:-$COMIN/nfg_${CDATE}_fhr} -export NSTENSMEAN=${NSTENSMEAN:-$COMOUT/nfg_${CDATE}_fhr} -export GETNSTENSMEANEXEC=${GETNSTENSMEANEXEC:-$EXECgdas/getnstensmeanp$XC} -# Other variables. -export FHOUTEFCS=${FHOUT_ENKF:-3} -export FHMINEFCS=${FHMIN_ENKF:-3} -export FHMAXEFCS=${FHMAX_ENKF:-9} -export NMEM_ENKF=${NMEM_ENKF:-80} -export SMOOTH_ENKF=${SMOOTH_ENKF:-"NO"} -export MPMD=${MPMD:-NO} -export MPMD_OPTS=${MPMD_OPTS:-"-pgmmodel mpmd -ilevel 2 -labelio yes -stdoutmode ordered"} -export NTHREADS_EPOS=${NTHREADS_EPOS:-1} -export NTHSTACK=${NTHSTACK:-1024000000} -export FILESTYLE=${FILESTYLE:-'X'} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export NCP=${NCP:-cp} -export APRUN=${APRUN:-""} -export NST_GSI=${NST_GSI:-0} - -if [ $machine = IBMP6 ] ; then - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} -else - export REDOUT=${REDOUT:-'1>'} - export REDERR=${REDERR:-'2>'} -fi -export l4densvar=${l4densvar:-".false."} - -ENKF_SUFFIX="" -if [[ "$SMOOTH_ENKF" = "YES" ]]; then - ENKF_SUFFIX="s" -fi - - -################################################################################ -# Preprocessing -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] -then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 - - -################################################################################ -# Copy or link files -if [ $machine = IBMP6 ] ; then - export XLSMPOPTS="parthds=$NTHREADS_EPOS:stack=$NTHSTACK" -fi -export OMP_NUM_THREADS=$NTHREADS_EPOS - -export XLSMPOPTS="stack=$NTHSTACK" -$LOGSCRIPT - -rm getsigensmean_smooth.x getsfcensmean_smooth.x hybens_smoothinfo -rm sfg*fhr03* sfg*fhr04* sfg*fhr05* sfg*fhr06* sfg*fhr07* sfg*fhr08* sfg*fhr09* -rm bfg*fhr03* bfg*fhr04* bfg*fhr05* bfg*fhr06* bfg*fhr07* bfg*fhr08* bfg*fhr09* -rm nfg*fhr03* nfg*fhr04* nfg*fhr05* nfg*fhr06* nfg*fhr07* nfg*fhr08* nfg*fhr09* - - -$NCP $GETSFCENSMEANEXEC $DATA -$NCP $GETATMENSMEANEXEC $DATA -$NCP $GETATMENSSTATEXEC $DATA -if [ $NST_GSI -gt 0 ]; then - $NCP $GETNSTENSMEANEXEC $DATA -fi - -if [[ $FILESTYLE = 'C' ]] -then - # Forecast fields - - FHOUT=$FHOUTEFCS - FHMIN=$FHMINEFCS - FHMAX=$FHMAXEFCS - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - FHBEG=$FHMIN - FHEND=$FHMAX - FH=$FHBEG - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - $NCP ${SFCENS}${FH}${member} bfg_${CDATE}_fhr${FH}$member - $NCP ${SIGENS_IN}${FH}${member} sfg_${CDATE}_fhr${FH}$member - if [ $NST_GSI -gt 0 ]; then - $NCP ${NSTENS}${FH}${member} nfg_${CDATE}_fhr${FH}$member - fi - FH=`expr $FH + $FHOUT` - done - (( imem = $imem + 1 )) - done - -else - # Forecast fields - FHOUT=$FHOUTEFCS - FHMIN=$FHMINEFCS - FHMAX=$FHMAXEFCS - - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - FHBEG=$FHMIN - FHEND=$FHMAX - FH=$FHBEG - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - ln -fs ${SFCENS}${FH}${member} bfg_${CDATE}_fhr${FH}$member - ln -fs ${SIGENS_IN}${FH}${member} sfg_${CDATE}_fhr${FH}$member - if [ $NST_GSI -gt 0 ]; then - ln -fs ${NSTENS}${FH}${member} nfg_${CDATE}_fhr${FH}$member - fi - FH=`expr $FH + $FHOUT` - done - (( imem = $imem + 1 )) - done - - # Output files - FHBEG=$FHMIN - FHEND=$FHMAX - FH=$FHBEG - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - ln -fs ${SIGENSMEAN}${FH}_ensmean sfg_${CDATE}_fhr${FH}_ensmean - ln -fs ${SFCENSMEAN}${FH}_ensmean bfg_${CDATE}_fhr${FH}_ensmean - ln -fs ${SIGENSMEAN}${FH}_ensmean.nc4 sfg_${CDATE}_fhr${FH}_ensmean.nc4 - ln -fs ${SIGENSMEAN}${FH}_ensspread.nc4 sfg_${CDATE}_fhr${FH}_ensspread.nc4 - if [ $NST_GSI -gt 0 ]; then - ln -fs ${NSTENSMEAN}${FH}_ensmean nfg_${CDATE}_fhr${FH}_ensmean - fi - FH=`expr $FH + $FHOUT` - done - if [[ "$SMOOTH_ENKF" = "YES" ]]; then - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - FHBEG=$FHMIN - FHEND=$FHMAX - FH=$FHBEG - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - ln -fs ${SIGENS_OUT}${FH}${ENKF_SUFFIX}${member} sfg_${CDATE}_fhr${FH}${ENKF_SUFFIX}$member - FH=`expr $FH + $FHOUT` - done - (( imem = $imem + 1 )) - done - fi -fi - -################################################################################ -# Set output data -ENSSTAT=$COMOUT/ensstat_${CDATE}_all -rm -f $ENSSTAT - - -################################################################################ -# Generate ensemble mean surface and atmospheric files -analdate=$CDATE -datapath=. -FHBEG=$FHMIN -FHEND=$FHMAX -FH=$FHBEG - -if [[ "$SMOOTH_ENKF" = "YES" ]]; then - cp $HYBENSMOOTH ./hybens_smoothinfo -fi - -if [[ "$MPMD" = "YES" ]]; then - if [ $machine = IBMP6 ] ; then - nprocs=$(echo $LOADL_PROCESSOR_LIST|wc -w) - elif [ $machine = WCOSS ] ; then - nprocs=$LSB_DJOB_NUMPROC - fi - FHBEG=$FHMINEFCS - FHEND=$FHMAXEFCS - FHOUT=$FHOUTEFCS - FH=$FHMIN - cnt=0 - ncnt=-1 - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - cmd[$cnt]="$GETSFCENSMEANEXEC ${datapath}/ bfg_${analdate}_fhr${FH}_ensmean bfg_${analdate}_fhr${FH} $NMEM_ENKF" - cmd[$cnt]="$GETATMENSMEANEXEC ${datapath}/ sfg_${analdate}_fhr${FH}_ensmean sfg_${analdate}_fhr${FH} $NMEM_ENKF" - cmd[$cnt]="$GETATMENSSTATEXEC ${datapath}/ sfg_${analdate}_fhr${FH} $NMEM_ENKF" - if [ $NST_GSI -gt 0 ]; then - cmd[$cnt]="$GETNSTENSMEANEXEC ${datapath}/ nfg_${analdate}_fhr${FH}_ensmean nfg_${analdate}_fhr${FH} $NMEM_ENKF" - fi - ((cnt+=1)) - ((ncnt+=1)) - FH=`expr $FH + $FHOUT` - done - - rm $DATA/cmdfile - m=-1 - n=0 - while [ $((n+=1)) -le $nprocs ] ;do - while [ $((m+=1)) -le $ncnt ] ;do - echo "${cmd[m]}" >> $DATA/cmdfile - ((n+=1)) - done - if [ $n -le $nprocs ] ; then - echo "echo do-nothing" >> $DATA/cmdfile - fi - done - if [ $machine = IBMP6 ] ; then - /usr/bin/poe -cmdfile $DATA/cmdfile $MPMD_OPTS - rc=$? - elif [ $machine = WCOSS ]; then - export MP_PGMMODEL=${MP_PGMMODEL:-mpmd} - export MP_CMDFILE=$DATA/cmdfile - $APRUN - rc=$? - fi -else -# Run serially instead - - FHBEG=$FHMINEFCS - FHEND=$FHMAXEFCS - FHOUT=$FHOUTEFCS - FH=$FHMIN - rc=0 - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - eval "$APRUN $GETSFCENSMEANEXEC ${datapath}/ bfg_${analdate}_fhr${FH}_ensmean bfg_${analdate}_fhr${FH} $NMEM_ENKF" - eval "$APRUN $GETATMENSMEANEXEC ${datapath}/ sfg_${analdate}_fhr${FH}_ensmean sfg_${analdate}_fhr${FH} $NMEM_ENKF" - eval "$APRUN $GETATMENSSTATEXEC ${datapath}/ sfg_${analdate}_fhr${FH} $NMEM_ENKF" - if [ $NST_GSI -gt 0 ]; then - eval "$APRUN $GETNSTENSMEANEXEC ${datapath}/ nfg_${analdate}_fhr${FH}_ensmean nfg_${analdate}_fhr${FH} $NMEM_ENKF" - fi - ra=$? - ((rc+=ra)) - FH=`expr $FH + $FHOUT` - done -fi -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 2 - -################################################################################ -# If smoothing on but no smoothing output, copy smoothed enkf atmospheric files -if [[ "$SMOOTH_ENKF" = "YES" ]]; then - if [[ ! -s sfg_${CDATE}_fhr06s_mem001 ]]; then - FILEPREFIX=sfg_${CDATE}_fhr - if [[ $FILESTYLE = 'L' ]] then - FILEPREFIX=${SIGENS_OUT} - fi - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - FHBEG=$FHMIN - FHEND=$FHMAX - FH=$FHBEG - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - cp sfg_${CDATE}_fhr${FH}$member ${FILEPREFIX}${FH}${ENKF_SUFFIX}$member - FH=`expr $FH + $FHOUT` - done - (( imem = $imem + 1 )) - done - fi -fi - -################################################################################ -# Copy output files -if [[ $FILESTYLE = 'C' ]] -then - FHBEG=$FHMIN - FHEND=$FHMAX - FH=$FHBEG - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - cp sfg_${CDATE}_fhr${FH}_ensmean ${SIGENSMEAN}${FH}_ensmean - cp bfg_${CDATE}_fhr${FH}_ensmean ${SFCENSMEAN}${FH}_ensmean - cp sfg_${CDATE}_fhr${FH}_ensmean.nc4 ${SIGENSMEAN}${FH}_ensmean.nc4 - cp sfg_${CDATE}_fhr${FH}_ensspread.nc4 ${SIGENSMEAN}${FH}_ensspread.nc4 - if [ $NST_GSI -gt 0 ]; then - cp nfg_${CDATE}_fhr${FH}_ensmean ${NSTENSMEAN}${FH}_ensmean - fi - FH=`expr $FH + $FHOUT` - done - - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - FHBEG=$FHMIN - FHEND=$FHMAX - FH=$FHBEG - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - cp sfg_${CDATE}_fhr${FH}${ENKF_SUFFIX}$member ${SIGENS_OUT}${FH}${ENKF_SUFFIX}${member} - FH=`expr $FH + $FHOUT` - done - (( imem = $imem + 1 )) - done -fi - -################################################################################ -# If requested, generate low resolution fhr06 ensemble mean and ensemble member -# files - -export JCAP_ENKF=${JCAP_ENKF:-574} -export JCAP_LORES=${JCAP_LORES:-254} -export LATB_LORES=${LATB_LORES:-384} -export LONB_LORES=${LONB_LORES:-768} -export LEVS_LORES=${LEVS_LORES:-64} - -export OROGRAPHY_LORES=$FIXgsm/global_orography.t$JCAP_LORES.$LONB_LORES.$LATB_LORES.grb -export OROGRAPHY_UF_LORES=$FIXgsm/global_orography_uf.t$JCAP_LORES.$LONB_LORES.$LATB_LORES.grb -export LONSPERLAT_LORES=$FIXgsm/global_lonsperlat.t${JCAP_LORES}.$LONB_LORES.$LATB_LORES.txt -export SLMASK_LORES=$FIXgsm/global_slmask.t$JCAP_LORES.$LONB_LORES.$LATB_LORES.grb -export MTNVAR_LORES=$FIXgsm/global_mtnvar.t$JCAP_LORES.$LONB_LORES.$LATB_LORES.f77 -export SIGLEVEL_LORES=$FIXgsm/global_hyblev.l${LEVS_LORES}.txt - - -if [[ "$JCAP_LORES" -lt "$JCAP_ENKF" ]]; then - fhrlist="06" - if [ $l4densvar = .true. ]; then - fhrlist="03 06 09" - fi - for fhr in $fhrlist; do - rm -rf $DATA/poescript.$fhr - member="ensmean" - export SIGINP=${SIGENS_OUT}${fhr}_${member} - export SIGOUT=${SIGENS_OUT}${fhr}_${member}_t${JCAP_LORES} - echo "$USHgdas/gfs_truncate_enkf.sh $member $SIGINP $SIGOUT $JCAP_LORES $LATB_LORES $LONB_LORES" >> $DATA/poescript.$fhr - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="mem"`printf %03i $imem` - export SIGINP=${SIGENS_OUT}${fhr}${ENKF_SUFFIX}_${member} - export SIGOUT=${SIGENS_OUT}${fhr}${ENKF_SUFFIX}_${member}_t${JCAP_LORES} - echo "$USHgdas/gfs_truncate_enkf.sh $member $SIGINP $SIGOUT $JCAP_LORES $LATB_LORES $LONB_LORES" >> $DATA/poescript.$fhr - (( imem = $imem + 1 )) - done - chmod 755 poescript.$fhr - if [ $machine = WCOSS ] ; then - export MP_PGMMODEL=mpmd - export MP_CMDFILE=$DATA/poescript.$fhr - mpirun.lsf - export err=$?; err_chk - else - $DATA/poescript.$fhr - export err=$? - fi - done -fi - - - -################################################################################ -# Generate status log -rm log_allsfc -rm log_allatm - -FHBEG=$FHMIN -FHEND=$FHMAX -FH=$FHBEG -until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - if [[ `expr $FH % 3` -eq 0 ]]; then - - if [[ -s ${datapath}/bfg_${analdate}_fhr${FH}_ensmean ]]; then - if [ $SENDDBN = YES ]; then - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job ${SFCENSMEAN}${FH}_ensmean - fi - string="DONE bfg fhr $FH" - else - string="MISS bfg fhr $FH" - fi - fi - rm log log_old log_new - cp log_allsfc ./log_old - echo $string > log - cat log_old log > log_new - cp log_new log_allsfc - - if [[ -s ${datapath}/sfg_${analdate}_fhr${FH}_ensmean ]]; then - string="DONE sfg fhr $FH" - else - string="MISS sfg fhr $FH" - fi - rm log log_old log_new - cp log_allatm ./log_old - echo $string > log - cat log_old log > log_new - cp log_new log_allatm - - FH=`expr $FH + $FHOUT` -done - -rm log_all -cat log_allsfc log_allatm > log_all -cp log_all $ENSSTAT - -if [ $SENDDBN = YES ] ; then -imem=1 -while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - #FHBEG=$FHMIN - FHEND=$FHMAX - FH=6 - until [[ $FH -gt $FHEND ]];do - [[ $FH -lt 10 ]]&&FH=0$FH - if [[ `expr $FH % 3` -eq 0 ]] - then - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job ${SIGENS_OUT}${FH}${ENKF_SUFFIX}${member} - fi - FH=`expr $FH + $FHOUT` - done - (( imem = $imem + 1 )) -done -fi - -################################################################################ -# Postprocessing -cd $pwd -[[ $mkdata = YES ]]&&rmdir $DATA -$ENDSCRIPT -set +x -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/scripts/exglobal_enkf_update.sh.ecf b/scripts/exglobal_enkf_update.sh.ecf deleted file mode 100755 index 0e98b8c6d8..0000000000 --- a/scripts/exglobal_enkf_update.sh.ecf +++ /dev/null @@ -1,607 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: exglobal_enkfupdat.sh.sms -# Script description: Make global_enkf update -# -# Author: Daryl Kleist Org: NP23 Date: 2011-03-24 -# -# Abstract: This script runs the global_enkf update -# -# Script history log: -# 2011-03-24 Russ Treadon copy from enkf/trunk/scripts_ncep -# -# Usage: exglobal_enkfupdat.sh.sms SFCGES SIGGES GBIAS GBIASE -# -# Input script positional parameters: -# 1 Input surface guess -# defaults to $SFCGES; required -# 2 Input sigma guess -# defaults to $SIGGES; required -# 3 Input guess time dependent bias correction coefficients -# defaults to $GBIAS; required -# 4 Input guess angle dependent bias correction -# defaults to $GBIASE; required -# -# Imported Shell Variables: -# SFCGES Input ensemble mean surface guess -# overridden by $1; required -# SIGGES Input ensemble mean sigma guess -# overridden by $2; required -# GBIAS Input guess bias correction -# overridden by $3; required -# GBIASE Input guess angle dependent bias correction -# overridden by $4; required -# ENKFSTAT Output enkf update statistics -# defaults to ${COMIN}/${PREINP}enkfstat -# FIXGSM Directory for global fixed files -# defaults to /nwprod/fix -# EXECgsm Directory for global executables -# defaults to /nwprod/exec -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# COMIN input directory -# defaults to current working directory -# COMOUT output directory -# (if nonexistent will be made) -# defaults to current working directory -# XC Suffix to add to executables -# defaults to none -# PREINP Prefix to add to input observation files -# defaults to none -# SUFINP Suffix to add to input observation files -# defaults to none -# NCP Copy command -# defaults to cp -# SIGHDR Command to read sigma header -# defaults to ${EXECgsm}/global_sighdr$XC -# SFCHDR Command to read surface header -# defaults to ${EXECgsm}/global_sfchdr$XC -# ENKFUPDEXEC Spectral analysis executable -# defaults to ${EXECgsm}/global_enkf$XC -# SATINFO Input satellite information file -# defaults to ${FIXgsi}/global_satinfo.txt -# CONVINFO Input conventional observation information file -# defaults to ${FIXgsi}/global_convinfo.txt -# OZINFO Input ozone information file -# defaults to ${FIXgsi}/global_ozone.txt -# SCANINFO Input satellite scan information file -# defaults to ${FIXgsi}/global_scaninfo.txt -# HYBENSINFO Input hybrid ensemble localization information file -# defaults to ${FIXgsi}/global_hybens_locinfo.l${LEVS}.txt -# ANAVINFO Input control vector information file -# defaults to ${FIXgsi}/global_anavinfo.l64.txt -# TCVITL Input tcvitals file -# defaults to ${COMIN}/${PREINP}syndata.tcvitals.tm00 -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# LEVS Number of levels -# CDATE Current analysis date in yyyymmddhh format -# defaults to the value in the input surface file header -# LATB Number of latitudes in surface cycling -# defaults to the value in the input surface file header -# LONB Number of longitudes in surface cycling -# defaults to the value in the input surface file header -# LATA Number of latitudes in spectral analysis -# defaults to $LATB -# LONA Number of longitudes in spectral analysis -# defaults to $LONB -# NTHREADS Number of threads -# defaults to 1 -# NTHSTACK Size of stack per thread -# defaults to 1024000000 -# NTHREADS_ENKF Number of threads for ENKFUPDEXEC -# defaults to 1 -# NTHSTACK_ENKF Size of stack per thread for ENKFUPDEXEC -# defaults to 1024000000 -# FILESTYLE File management style flag -# ('C' to copy to/from $DATA, 'L' for symbolic links in $DATA, -# 'X' to use XLFUNIT or symbolic links where appropriate) -# defaults to 'X' -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to NO -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $CYCLEXEC -# $ENKFUPDEXEC -# -# fixed data : $BERROR -# $SATANGL -# $SATINFO -# $RTMFIX -# $RTMEMIS -# $RTMAERO -# $RTMCLDS -# $CONVINFO -# $OZINFO -# $PCPINFO -# $AEROINFO -# $SCANINFO -# $HYBENSINFO -# $ANAVINFO -# -# input data : $SFCGES -# $SIGGES -# $SIGGESENS -# $GBIAS -# $GBIASE -# $CNVSTAT -# $OZNSTAT -# $RADSTAT -# -# output data: -# $SIGANLENS -# $OSENSE -# $ENKFSTAT -# $PGMOUT -# $PGMERR -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -################################################################################ -# Set environment. -export VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -export machine=${machine:-IBMP6} -export machine=$(echo $machine|tr '[a-z]' '[A-Z]') -if [ $machine = ZEUS ] ; then - export MPI_BUFS_PER_PROC=512 - export MPI_BUFS_PER_HOST=512 - export MPI_GROUP_MAX=512 -fi -# Command line arguments. -export SFCGES=${1:-${SFCGES:?}} -export SIGGES=${2:-${SIGGES:?}} -export GBIAS=${3:-${GBIAS:?}} -export GBIASE=${4:-${GBIASE:?}} -# Directories. -export HOMEDIR=${HOMEDIR:-$NWROOT} -export NWPROD=${NWPROD:-$HOMEDIR} -export FIXgsi=${FIXgsi:-$NWPROD/global_shared.${global_shared_ver}/fix} -export EXECgsm=${EXECgsm:-$NWPROD/global_shared.${global_shared_ver}/exec} -export EXECgdas=${EXECgdas:-$NWPROD/gdas.${gdas_ver}/exec} - -export utilscript=${utilscript:-$NWPROD/util/ush} -export DATA=${DATA:-$(pwd)} -export COMIN=${COMIN:-$(pwd)} -export COMOUT=${COMOUT:-$(pwd)} -# Set script / EnKF update control parameters -export use_gfs_nemsio=${use_gfs_nemsio:-".false."} # run EnKF update with NEMSIO input/output -export fso_cycling=${fso_cycling:-".false."} # write additional files needed for EFSOI calculations -# Filenames. -export XC=${XC} -export PREINP=${PREINP} -export SUFINP=${SUFINP} -export SIGHDR=${SIGHDR:-${EXECgsm}/global_sighdr$XC} -export SFCHDR=${SFCHDR:-${EXECgsm}/global_sfchdr$XC} -if [ $use_gfs_nemsio = .true. ]; then - export LATB=${LATB:-$($SFCHDR $SFCGES latr |grep -i "latr" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export LONB=${LONB:-$($SFCHDR $SFCGES lonr |grep -i "lonr" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export LEVS=${LEVS:-$($SIGHDR $SIGGES levs |grep -i "levs" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} - export CDATE=${CDATE:-$($SFCHDR $SFCGES fcstdate | grep -i "fcstdate_ymdh" |awk -F= '{print $2}')} -else - export LATB=${LATB:-$($SFCHDR $SFCGES LATB||echo 0)} - export LONB=${LONB:-$($SFCHDR $SFCGES LONB||echo 0)} - export LEVS=${LEVS:-$($SIGHDR $SIGGES LEVS||echo 0)} - export CDATE=${CDATE:-$($SFCHDR $SFCGES VDATE||echo 0)} -fi -export LATA=${LATA:-$LATB} -export LONA=${LONA:-$LONB} -export NPTS=`expr \( $LONA \) \* \( $LATA \)` -export ENKFUPDEXEC=${ENKFUPDEXEC:-${EXECgdas}/global_enkf$XC} -export SATANGL=${SATANGL:-${FIXgsi}/global_satangbias.txt} -export SATINFO=${SATINFO:-${FIXgsi}/global_satinfo.txt} -export CONVINFO=${CONVINFO:-${FIXgsi}/global_convinfo.txt} -export OZINFO=${OZINFO:-${FIXgsi}/global_ozinfo.txt} -export SCANINFO=${SCANINFO:-${FIXgsi}/global_scaninfo.txt} -export HYBENSINFO=${HYBENSINFO:-${FIXgsi}/global_hybens_locinfo.l${LEVS}.txt} -export ANAVINFO=${ANAVINFO:-${FIXgsi}/global_anavinfo.l${LEVS}.txt} -export SIGGESENS=${SIGGESENS:-${COMIN}/sigf06_ens} -if [ $fso_cycling = .true. ]; then - export OSENSE=${OSENSE:-${COMOUT}/osense_} -fi -export SIGANLENS=${SIGANLENS:-${COMOUT}/sanl} -export USE_NEWRADBC=${USE_NEWRADBC:-"NO"} -export NMEM_ENKF=${NMEM_ENKF:-0} -export ENKFSTAT=${ENKFSTAT:-${COMOUT}/${PREINP}enkfstat} -export CNVSTAT=${CNVSTAT:-${COMIN}/${PREINP}cnvstat} -export OZNSTAT=${OZNSTAT:-${COMIN}/${PREINP}oznstat} -export RADSTAT=${RADSTAT:-${COMIN}/${PREINP}radstat} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} -# Other variables. -export NDATE=${NDATE:-/$NWPROD/util/exec/ndate} -export GDATE=${GDATE:-($NDATE -06 $CDATE)} -export NANALS=${NANALS:-80} -export SMOOTHINF=${SMOOTHINF:-24} -export NTRAC=${NTRAC:-3} -export NAM_ENKF=${NAM_ENKF:-""} -export SATOBS_ENKF=${SATOBS_ENKF:-""} -export OZOBS_ENKF=${OZOBS_ENKF:-""} -export NTHREADS=${NTHREADS:-1} -export NTHSTACK=${NTHSTACK:-1024000000} -export NTHREADS_ENKF=${NTHREADS_ENKF:-1} -export NTHSTACK_ENKF=${NTHSTACK_ENKF:-1024000000} -export FILESTYLE=${FILESTYLE:-'X'} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export OBERRFLAG=${OBERRFLAG:-.false.} -export NCP=${NCP:-cp} -if [ $machine = IBMP6 ] ; then - typeset -L1 l=$PGMOUT - [[ $l = '&' ]]&&a=''||a='>' - export REDOUT=${REDOUT:-'1>'$a} - typeset -L1 l=$PGMERR - [[ $l = '&' ]]&&a=''||a='>' - export REDERR=${REDERR:-'2>'$a} -else - export REDOUT=${REDOUT:-'1>'} - export REDERR=${REDERR:-'2>'} -fi -export APRUN=${APRUN:-""} -export APRUNCFP=${APRUNCFP:-""} -export USE_CFP=${USE_CFP:-"NO"} - - -################################################################################ -# Preprocessing -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] -then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 - -################################################################################ - - -################################################################################ -# Run enkf update -if [ $machine = IBMP6 ] ; then - export XLSMPOPTS="parthds=$NTHREADS_ENKF:stack=$NTHSTACK_ENKF" -fi -export OMP_NUM_THREADS=$NTHREADS_ENKF -export PGM='$APRUN $DATA/$(basename $ENKFUPDEXEC)' -export pgm=$PGM -$LOGSCRIPT - -rm convinfo satinfo ozinfo satbias_angle satbias_in enkf.nml -rm hybens_info -rm sanl* - -if [[ $USE_CFP = YES ]]; then - rm $DATA/untar.sh $DATA/mp_untar.sh - set +x -cat <<\EOFuntar > $DATA/untar.sh -#!/bin/ksh -{ echo - member=$1 - list="$CNVSTAT $OZNSTAT $RADSTAT" - for type in $list; do - if [[ $FILESTYLE = 'C' ]]; then - $NCP ${type}${member} ./ - fi - tar -xvf ${type}${member} - done -} -EOFuntar - set -x - chmod 755 $DATA/untar.sh -fi - -$NCP $ENKFUPDEXEC $DATA -if [[ $FILESTYLE = 'C' ]] -then - # Fixed fields - $NCP $SATANGL satbias_angle - $NCP $SATINFO satinfo - $NCP $SCANINFO scaninfo - $NCP $CONVINFO convinfo - $NCP $OZINFO ozinfo - $NCP $HYBENSINFO hybens_info - $NCP $ANAVINFO anavinfo - - # Ensemble observational and guess data - if [[ $USE_CFP = YES ]]; then - echo "$DATA/untar.sh _ensmean" | tee -a $DATA/mp_untar.sh - else - list="$CNVSTAT $OZNSTAT $RADSTAT" - for type in $list; do - $NCP ${type}_ensmean ./ - tar -xvf ${type}_ensmean - done - fi - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - if [[ $USE_CFP = YES ]]; then - echo "$DATA/untar.sh $member" | tee -a $DATA/mp_untar.sh - else - list="$CNVSTAT $OZNSTAT $RADSTAT" - for type in $list; do - $NCP ${type}${member} ./ - tar -xvf ${type}${member} - done - fi - sigens=${SIGGESENS}${member} - $NCP $sigens sfg_${CDATE}_fhr06${member} - (( imem = $imem + 1 )) - done - - # Guess fields - $NCP $GBIAS satbias_in - if [[ "$USE_NEWRADBC" = "YES" ]]; then - rm satbias_in - $NCP $GBIASE satbias_in - fi - - $NCP $SIGGES sfg_${CDATE}_fhr06_ensmean - $NCP $SFCGES bfg_${CDATE}_fhr06_ensmean - -else - # Fixed fields - ln -fs $SATANGL satbias_angle - ln -fs $SATINFO satinfo - ln -fs $SCANINFO scaninfo - ln -fs $CONVINFO convinfo - ln -fs $OZINFO ozinfo - ln -fs $HYBENSINFO hybens_info - ln -fs $ANAVINFO anavinfo - - # Ensemble observational and guess data - if [[ $USE_CFP = YES ]]; then - echo "$DATA/untar.sh _ensmean" | tee -a $DATA/mp_untar.sh - else - list="$CNVSTAT $OZNSTAT $RADSTAT" - for type in $list; do - tar -xvf ${type}_ensmean - done - fi - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - if [[ $USE_CFP = YES ]]; then - echo "$DATA/untar.sh $member" | tee -a $DATA/mp_untar.sh - else - list="$CNVSTAT $OZNSTAT $RADSTAT" - for type in $list; do - tar -xvf ${type}${member} - done - fi - sigens=${SIGGESENS}${member} - ln -fs $sigens sfg_${CDATE}_fhr06${member} - (( imem = $imem + 1 )) - done - - # Guess fields - ln -fs $GBIAS satbias_in - if [[ "$USE_NEWRADBC" = "YES" ]]; then - rm satbias_in - ln -fs $GBIASE satbias_in - fi - - ln -fs $SIGGES sfg_${CDATE}_fhr06_ensmean - ln -fs $SFCGES bfg_${CDATE}_fhr06_ensmean - - # Output files - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - ln -fs ${SIGANLENS}${member} sanl_${CDATE}_fhr06${member} - if [ $fso_cycling = .true. ]; then - memberni="_nimem"`printf %03i $imem` - ln -fs ${SIGANLENS}${memberni} sanl_${CDATE}_fhr06${memberni} - fi - (( imem = $imem + 1 )) - done - - if [ $fso_cycling = .true. ]; then - ln -fs ${OSENSE}${CDATE}.dat osense_${CDATE}.dat - fi - -fi - -if [[ $USE_CFP = YES ]]; then - chmod 755 $DATA/mp_untar.sh - ncmd=`cat $DATA/mp_untar.sh | wc -l` - if [ $ncmd -gt 0 ]; then - export APRUNCFP=$(eval echo $APRUNCFP) - $APRUNCFP $DATA/mp_untar.sh - fi -fi - -# Create global_enkf namelist -cat < enkf.nml - &nam_enkf - datestring="$CDATE",datapath="$DATA/", - analpertwtnh=0.85,analpertwtsh=0.85,analpertwttr=0.85, - covinflatemax=1.e2,covinflatemin=1,pseudo_rh=.true.,iassim_order=0, - corrlengthnh=2000,corrlengthsh=2000,corrlengthtr=2000, - lnsigcutoffnh=2.0,lnsigcutoffsh=2.0,lnsigcutofftr=2.0, - lnsigcutoffpsnh=2.0,lnsigcutoffpssh=2.0,lnsigcutoffpstr=2.0, - lnsigcutoffsatnh=2.0,lnsigcutoffsatsh=2.0,lnsigcutoffsattr=2.0, - obtimelnh=1.e30,obtimelsh=1.e30,obtimeltr=1.e30, - saterrfact=1.0,numiter=1, - sprd_tol=1.e30,paoverpb_thresh=0.98, - nlons=$LONA,nlats=$LATA,nlevs=$LEVS,nanals=$NMEM_ENKF, - deterministic=.true.,sortinc=.true.,lupd_satbiasc=.false., - reducedgrid=.true.,readin_localization=.true., - use_gfs_nemsio=${use_gfs_nemsio}, - univaroz=.false.,adp_anglebc=.true.,angord=4,use_edges=.false.,emiss_bc=.true., - fso_cycling=${fso_cycling}, - $NAM_ENKF - / - &END - &satobs_enkf - sattypes_rad(1) = 'amsua_n15', dsis(1) = 'amsua_n15', - sattypes_rad(2) = 'amsua_n18', dsis(2) = 'amsua_n18', - sattypes_rad(3) = 'amsua_n19', dsis(3) = 'amsua_n19', - sattypes_rad(4) = 'amsub_n16', dsis(4) = 'amsub_n16', - sattypes_rad(5) = 'amsub_n17', dsis(5) = 'amsub_n17', - sattypes_rad(6) = 'amsua_aqua', dsis(6) = 'amsua_aqua', - sattypes_rad(7) = 'amsua_metop-a', dsis(7) = 'amsua_metop-a', - sattypes_rad(8) = 'airs_aqua', dsis(8) = 'airs_aqua', - sattypes_rad(9) = 'hirs3_n17', dsis(9) = 'hirs3_n17', - sattypes_rad(10)= 'hirs4_n19', dsis(10)= 'hirs4_n19', - sattypes_rad(11)= 'hirs4_metop-a', dsis(11)= 'hirs4_metop-a', - sattypes_rad(12)= 'mhs_n18', dsis(12)= 'mhs_n18', - sattypes_rad(13)= 'mhs_n19', dsis(13)= 'mhs_n19', - sattypes_rad(14)= 'mhs_metop-a', dsis(14)= 'mhs_metop-a', - sattypes_rad(15)= 'goes_img_g11', dsis(15)= 'imgr_g11', - sattypes_rad(16)= 'goes_img_g12', dsis(16)= 'imgr_g12', - sattypes_rad(17)= 'goes_img_g13', dsis(17)= 'imgr_g13', - sattypes_rad(18)= 'goes_img_g14', dsis(18)= 'imgr_g14', - sattypes_rad(19)= 'goes_img_g15', dsis(19)= 'imgr_g15', - sattypes_rad(20)= 'avhrr_n18', dsis(20)= 'avhrr3_n18', - sattypes_rad(21)= 'avhrr_metop-a', dsis(21)= 'avhrr3_metop-a', - sattypes_rad(22)= 'avhrr_n19', dsis(22)= 'avhrr3_n19', - sattypes_rad(23)= 'amsre_aqua', dsis(23)= 'amsre_aqua', - sattypes_rad(24)= 'ssmis_f16', dsis(24)= 'ssmis_f16', - sattypes_rad(25)= 'ssmis_f17', dsis(25)= 'ssmis_f17', - sattypes_rad(26)= 'ssmis_f18', dsis(26)= 'ssmis_f18', - sattypes_rad(27)= 'ssmis_f19', dsis(27)= 'ssmis_f19', - sattypes_rad(28)= 'ssmis_f20', dsis(28)= 'ssmis_f20', - sattypes_rad(29)= 'sndrd1_g11', dsis(29)= 'sndrD1_g11', - sattypes_rad(30)= 'sndrd2_g11', dsis(30)= 'sndrD2_g11', - sattypes_rad(31)= 'sndrd3_g11', dsis(31)= 'sndrD3_g11', - sattypes_rad(32)= 'sndrd4_g11', dsis(32)= 'sndrD4_g11', - sattypes_rad(33)= 'sndrd1_g12', dsis(33)= 'sndrD1_g12', - sattypes_rad(34)= 'sndrd2_g12', dsis(34)= 'sndrD2_g12', - sattypes_rad(35)= 'sndrd3_g12', dsis(35)= 'sndrD3_g12', - sattypes_rad(36)= 'sndrd4_g12', dsis(36)= 'sndrD4_g12', - sattypes_rad(37)= 'sndrd1_g13', dsis(37)= 'sndrD1_g13', - sattypes_rad(38)= 'sndrd2_g13', dsis(38)= 'sndrD2_g13', - sattypes_rad(39)= 'sndrd3_g13', dsis(39)= 'sndrD3_g13', - sattypes_rad(40)= 'sndrd4_g13', dsis(40)= 'sndrD4_g13', - sattypes_rad(41)= 'sndrd1_g14', dsis(41)= 'sndrD1_g14', - sattypes_rad(42)= 'sndrd2_g14', dsis(42)= 'sndrD2_g14', - sattypes_rad(43)= 'sndrd3_g14', dsis(43)= 'sndrD3_g14', - sattypes_rad(44)= 'sndrd4_g14', dsis(44)= 'sndrD4_g14', - sattypes_rad(45)= 'sndrd1_g15', dsis(45)= 'sndrD1_g15', - sattypes_rad(46)= 'sndrd2_g15', dsis(46)= 'sndrD2_g15', - sattypes_rad(47)= 'sndrd3_g15', dsis(47)= 'sndrD3_g15', - sattypes_rad(48)= 'sndrd4_g15', dsis(48)= 'sndrD4_g15', - sattypes_rad(49)= 'iasi_metop-a', dsis(49)= 'iasi_metop-a', - sattypes_rad(50)= 'seviri_m08', dsis(50)= 'seviri_m08', - sattypes_rad(51)= 'seviri_m09', dsis(51)= 'seviri_m09', - sattypes_rad(52)= 'seviri_m10', dsis(52)= 'seviri_m10', - sattypes_rad(53)= 'amsua_metop-b', dsis(53)= 'amsua_metop-b', - sattypes_rad(54)= 'hirs4_metop-b', dsis(54)= 'hirs4_metop-b', - sattypes_rad(55)= 'mhs_metop-b', dsis(55)= 'mhs_metop-b', - sattypes_rad(56)= 'iasi_metop-b', dsis(56)= 'iasi_metop-b', - sattypes_rad(57)= 'avhrr_metop-b', dsis(57)= 'avhrr3_metop-b', - sattypes_rad(58)= 'atms_npp', dsis(58)= 'atms_npp', - sattypes_rad(59)= 'atms_n20', dsis(59)= 'atms_n20', - sattypes_rad(60)= 'cris_npp', dsis(60)= 'cris_npp', - sattypes_rad(61)= 'cris-fsr_npp', dsis(61)= 'cris-fsr_npp', - sattypes_rad(62)= 'cris-fsr_n20', dsis(62)= 'cris-fsr_n20', - sattypes_rad(63)= 'gmi_gpm', dsis(63)= 'gmi_gpm', - sattypes_rad(64)= 'saphir_meghat', dsis(64)= 'saphir_meghat', - $SATOBS_ENKF - / - &END - &ozobs_enkf - sattypes_oz(1) = 'sbuv2_n16', - sattypes_oz(2) = 'sbuv2_n17', - sattypes_oz(3) = 'sbuv2_n18', - sattypes_oz(4) = 'sbuv2_n19', - sattypes_oz(5) = 'omi_aura', - sattypes_oz(6) = 'gome_metop-a', - sattypes_oz(7) = 'gome_metop-b', - sattypes_oz(8) = 'mls30_aura', - $OZOBS_ENKF - / - &END -EOF - -# Run global_enkf -eval $PGM < enkf.nml $REDOUT$PGMOUT $REDERR$PGMERR -rc=$? - -export ERR=$rc -export err=$ERR -$ERRSCRIPT||exit 2 - -if [[ $FILESTYLE = 'C' ]] -then - imem=1 - while [[ $imem -le $NMEM_ENKF ]]; do - member="_mem"`printf %03i $imem` - $NCP sanl_${CDATE}${member} ${SIGANLENS}${member} - if [ $fso_cycling = .true. ]; then - memberni="_nimem"`printf %03i $imem` - $NCP sanl_${CDATE}${memberni} ${SIGANLENS}${memberni} - fi - (( imem = $imem + 1 )) - done - if [ $fso_cycling = .true. ]; then - $NCP osense_${CDATE}.dat ${OSENSE}${CDATE}.dat - fi -fi - -# Cat runtime output files. -cat $PGMOUT $PGMERR fort.2* > $ENKFSTAT - -################################################################################ -# Postprocessing -cd $pwd -[[ $mkdata = YES ]]&&rmdir $DATA -$ENDSCRIPT -set +x -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/scripts/exurma2p5_gsianl.sh.ecf b/scripts/exurma2p5_gsianl.sh similarity index 99% rename from scripts/exurma2p5_gsianl.sh.ecf rename to scripts/exurma2p5_gsianl.sh index 7a89821c63..d867e752f9 100755 --- a/scripts/exurma2p5_gsianl.sh.ecf +++ b/scripts/exurma2p5_gsianl.sh @@ -3,7 +3,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exuma2p5_gsianl.sh.sms +# Script name: exuma2p5_gsianl.sh # Script description: Runs regional GSI variational analysis # # Author: Manuel Pondeca Org: NP22 Date: 2006-06-23 diff --git a/src/enkf/gridio_gfs.f90 b/src/enkf/gridio_gfs.f90 index 0d5216bc07..f245afdf3f 100644 --- a/src/enkf/gridio_gfs.f90 +++ b/src/enkf/gridio_gfs.f90 @@ -164,6 +164,7 @@ subroutine readgriddata_pnc(vars3d,vars2d,n3d,n2d,levels,ndim,ntimes, & kap = rd/cp kapr = cp/rd kap1 = kap+one + clip = tiny(vg(1)) u_ind = getindex(vars3d, 'u') !< indices in the state or control var arrays v_ind = getindex(vars3d, 'v') ! U and V (3D) diff --git a/src/enkf/readconvobs.f90 b/src/enkf/readconvobs.f90 index 5b734e848f..17ffc63c71 100644 --- a/src/enkf/readconvobs.f90 +++ b/src/enkf/readconvobs.f90 @@ -334,7 +334,9 @@ subroutine get_num_convobs_nc(obspath,datestring,num_obs_tot,num_obs_totdiag,id) errorlimit2=errorlimit2_obs - if (obtype == 'gps' .and. GPS_Type(i)==1) errorlimit2=errorlimit2_bnd + if (obtype == 'gps' ) then + if (GPS_Type(i)==1) errorlimit2=errorlimit2_bnd + endif ! for q, normalize by qsatges if (obtype == ' q') then @@ -661,7 +663,9 @@ subroutine get_convobs_data_nc(obspath, datestring, nobs_max, nobs_maxdiag, & do i = 1, nobs nobdiag = nobdiag + 1 ! special handling for error limits for GPS bend angle - if (obtype == 'gps' .and. GPS_Type(i)==1) errorlimit2=errorlimit2_bnd + if (obtype == 'gps' ) then + if (GPS_Type(i)==1) errorlimit2=errorlimit2_bnd + endif ! for q, normalize by qsatges if (obtype == ' q') then diff --git a/src/gsi/correlated_obsmod.F90 b/src/gsi/correlated_obsmod.F90 index c56c1e1764..287c39bb0c 100644 --- a/src/gsi/correlated_obsmod.F90 +++ b/src/gsi/correlated_obsmod.F90 @@ -432,7 +432,7 @@ subroutine set_(instrument,fname,mask,method,kreq,kmut,ErrorCov) ! Done reading file close(lu) else - write(6,*) 'No Rcov files found. Turning off Correlated Error' + if (iamroot_) write(6,*) 'No Rcov files found. Turning off Correlated Error' return end if diff --git a/src/gsi/dtast.f90 b/src/gsi/dtast.f90 index baa1c5af1e..6b4a242926 100644 --- a/src/gsi/dtast.f90 +++ b/src/gsi/dtast.f90 @@ -65,7 +65,7 @@ subroutine dtast(work1,nlev,pbot,ptop,mesage,jiter,iout,pflag) ! First, print message and level information imsg=max(1,index(mesage,'$')-1) - ilin=max(imsg,min(nlev*9+34,240)) + ilin=max(imsg,min(nlev*10+34,240)) write(iout,'(a)') mesage(1:imsg) if (nlev > 1) then write(iout,800) '', '', '', '', '', 'ptop',(ptop(k),k=1,nlev) @@ -206,16 +206,16 @@ subroutine dtast(work1,nlev,pbot,ptop,mesage,jiter,iout,pflag) endif ! if ( nlev == 1 ) 600 format(1x,'pressure levels (hPa)=',f6.1,1x,f6.1) -700 format(1x,'o-g',1x,a2, 1x,a7,1x,a3,1x,a3, 1x,a4, 1x,a9, 1x,4(a9, 1x)) -701 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,i3.3,1x,i4.4,1x,i9,1x, 4(f9.4,1x)) -702 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,a3, 1x,a4, 1x,i9,1x, 4(f9.4,1x)) -800 format(1x,'o-g',1x,a2, 1x,a7,1x,a3,1x,a3, 1x,a4, 1x,a5,1x,12(f8.1,1x)) -801 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,i3.3,1x,i4.4,1x,a5,1x,12(i8, 1x)) -802 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,i3.3,1x,i4.4,1x,a5,1x,12(f8.2,1x)) -803 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,a3, 1x,a4, 1x,a5,1x,12(i8, 1x)) -804 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,a3, 1x,a4, 1x,a5,1x,12(f8.2,1x)) -901 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,i3.3,1x,i4.4,1x,i9,1x, 2(f12.4,1x),2(f9.4,1x)) -902 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,a3, 1x,a4, 1x,i9,1x, 2(f12.4,1x),2(f9.4,1x)) +700 format(1x,'o-g',1x,a2, 1x,a7,1x,a3,1x,a3, 1x,a4, 1x,a9,1x, 4(a9, 1x)) +701 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,i3.3,1x,i4.4,1x,i9,1x, 4(e9.3,1x)) +702 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,a3, 1x,a4, 1x,i9,1x, 4(e9.3,1x)) +800 format(1x,'o-g',1x,a2, 1x,a7,1x,a3,1x,a3, 1x,a4, 1x,a5,1x,12(e9.3,1x)) +801 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,i3.3,1x,i4.4,1x,a5,1x,12(i9, 1x)) +802 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,i3.3,1x,i4.4,1x,a5,1x,12(e9.3,1x)) +803 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,a3, 1x,a4, 1x,a5,1x,12(i9, 1x)) +804 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,a3, 1x,a4, 1x,a5,1x,12(e9.3,1x)) +901 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,i3.3,1x,i4.4,1x,i9,1x, 2(e9.3,1x),2(e9.3,1x)) +902 format(1x,'o-g',1x,i2.2,1x,a7,1x,a3,1x,a3, 1x,a4, 1x,i9,1x, 2(e9.3,1x),2(e9.3,1x)) return end subroutine dtast diff --git a/src/gsi/gesinfo.F90 b/src/gsi/gesinfo.F90 index 136271aae0..48757c2135 100644 --- a/src/gsi/gesinfo.F90 +++ b/src/gsi/gesinfo.F90 @@ -453,7 +453,7 @@ subroutine gesinfo ! FV3GFS write component does not write JCAP to the NEMSIO file if ( mype == mype_out ) then write(6,*)'GESINFO: ***WARNING*** guess jcap inconsistent with namelist' - write(6,*)'GESINFO: ***WARNING*** this is a FV3GFS NEMSIO file' + write(6,*)'GESINFO: ***WARNING*** this is a FV3GFS NEMSIO/NetCDF file' endif fatal = .false. else @@ -481,7 +481,7 @@ subroutine gesinfo else write(6,200) gfshead%jcap,gfshead%levs,gfshead%latb,gfshead%lonb,& gfshead%ntrac,gfshead%ncldt,idvc5,gfshead%nvcoord,idsl5 -200 format('GESINFO: jcap_b=',i4,', levs=',i3,', latb=',i5,& +200 format('GESINFO: jcap_b=',i5,', levs=',i3,', latb=',i5,& ', lonb=',i5,', ntrac=',i3,', ncldt=',i3,', idvc=',i3,& ', nvcoord=',i3,', idsl=',i3) end if diff --git a/src/gsi/gsimod.F90 b/src/gsi/gsimod.F90 index d13c2e733c..3e17267f83 100644 --- a/src/gsi/gsimod.F90 +++ b/src/gsi/gsimod.F90 @@ -47,8 +47,8 @@ module gsimod q_doe_a_136,q_doe_a_137,q_doe_b_136,q_doe_b_137, & t_doe_a_136,t_doe_a_137,t_doe_b_136,t_doe_b_137, & - uv_doe_a_236,uv_doe_a_237,uv_doe_a_292,uv_doe_b_236,uv_doe_b_237,& - uv_doe_b_292 + uv_doe_a_236,uv_doe_a_237,uv_doe_a_213,uv_doe_b_236,uv_doe_b_237,& + uv_doe_b_213 use aircraftinfo, only: init_aircraft,hdist_aircraft,aircraft_t_bc_pof,aircraft_t_bc, & aircraft_t_bc_ext,biaspredt,upd_aircraft,cleanup_tail @@ -908,7 +908,7 @@ module gsimod ! 1/237: Dropsonde observations. -! 292: SFMR observations. +! 213: SFMR observations. ! The following correspond to the specific humidity (q) observations: @@ -928,12 +928,12 @@ module gsimod ! 'b' coefficients for temperature ! observations. -! uv_doe_a_236, uv_doe_a_237, uv_doe_a_292 - wind linear +! uv_doe_a_236, uv_doe_a_237, uv_doe_a_213 - wind linear ! regression derived ! 'a' coefficients for ! wind observations. -! uv_doe_b_236, uv_doe_b_237, uv_doe_b_292 - wind linear +! uv_doe_b_236, uv_doe_b_237, uv_doe_b_213 - wind linear ! regression derived ! 'b' coefficients for ! wind observations. @@ -947,7 +947,7 @@ module gsimod pvis,pcldch,scale_cv,estvisoe,estcldchoe,vis_thres,cldch_thres,cld_det_dec2bin, & q_doe_a_136,q_doe_a_137,q_doe_b_136,q_doe_b_137, & t_doe_a_136,t_doe_a_137,t_doe_b_136,t_doe_b_137, & - uv_doe_a_236,uv_doe_a_237,uv_doe_a_292,uv_doe_b_236,uv_doe_b_237,uv_doe_b_292 + uv_doe_a_236,uv_doe_a_237,uv_doe_a_213,uv_doe_b_236,uv_doe_b_237,uv_doe_b_213 ! OBS_INPUT (controls input data): ! dmesh(max(dthin))- thinning mesh for each group diff --git a/src/gsi/m_gpsrhs.F90 b/src/gsi/m_gpsrhs.F90 index a90a156857..80f0b5b83d 100644 --- a/src/gsi/m_gpsrhs.F90 +++ b/src/gsi/m_gpsrhs.F90 @@ -13,6 +13,7 @@ module m_gpsrhs ! 2010-05-27 j guo - derived from m_rhs.f90 ! 2011-01-04 l cucurull - add nsig_ext in gpsrhs_alloc ! 2012-12-17 l cucurull - remove qcfail_stats_1 and qcfail_stats_2 +! 2020-08-26 H Shao/K Bathmann - add jac_qc for jacobian QC ! ! input argument list: see Fortran 90 style document below ! @@ -70,6 +71,7 @@ module m_gpsrhs public:: qcfail_loc public:: qcfail_high public:: qcfail_gross + public:: qcfail_jac public:: data_ier public:: data_igps @@ -118,6 +120,7 @@ module m_gpsrhs real(r_single ), pointer, dimension( :):: qcfail_loc => null() real(r_single ), pointer, dimension( :):: qcfail_high => null() real(r_single ), pointer, dimension( :):: qcfail_gross=> null() + real(r_single ), pointer, dimension( :):: qcfail_jac=> null() real(r_kind ), pointer, dimension( :):: data_ier => null() real(r_kind ), pointer, dimension( :):: data_igps => null() @@ -149,7 +152,7 @@ module m_gpsrhs character(len=8), pointer, dimension( :), save:: cdiagbuf logical , pointer, dimension( :), save:: qcfail - real(r_single ), pointer, dimension( :), save:: qcfail_loc,qcfail_high,qcfail_gross + real(r_single ), pointer, dimension( :), save:: qcfail_loc,qcfail_high,qcfail_gross,qcfail_jac real(r_kind ), pointer, dimension( :), save:: data_ier real(r_kind ), pointer, dimension( :), save:: data_igps @@ -264,11 +267,13 @@ subroutine gpsrhs_alloc(is,class,nobs,nsig,nreal,grids_dim,nsig_ext) allocate(b%qcfail_loc (nobs)) allocate(b%qcfail_high (nobs)) allocate(b%qcfail_gross (nobs)) + allocate(b%qcfail_jac (nobs)) b%qcfail=.false. b%qcfail_loc =zero b%qcfail_high =zero b%qcfail_gross =zero + b%qcfail_jac =zero allocate(b%data_ier (nobs)) allocate(b%data_igps(nobs)) @@ -345,6 +350,7 @@ subroutine gpsrhs_dealloc(is) deallocate(b%qcfail_loc ) deallocate(b%qcfail_high ) deallocate(b%qcfail_gross ) + deallocate(b%qcfail_jac ) deallocate(b%data_ier ) deallocate(b%data_igps) @@ -402,6 +408,7 @@ subroutine gpsrhs_aliases(is) qcfail_loc => b%qcfail_loc qcfail_high => b%qcfail_high qcfail_gross => b%qcfail_gross + qcfail_jac => b%qcfail_jac data_ier => b%data_ier data_igps => b%data_igps @@ -435,7 +442,7 @@ subroutine gpsrhs_unaliases(is) nullify(rges,gp2gm,prsltmp_o,tges_o) nullify(error,error_adjst,ratio_errors) nullify(rdiagbuf,cdiagbuf) - nullify(qcfail,qcfail_loc,qcfail_gross) + nullify(qcfail,qcfail_loc,qcfail_gross,qcfail_jac) nullify(qcfail_high) nullify(data_ier,data_igps,data_ihgt) _EXIT_(myname_) diff --git a/src/gsi/mod_vtrans.f90 b/src/gsi/mod_vtrans.f90 index 7f72fb858a..3c7d8af8f4 100644 --- a/src/gsi/mod_vtrans.f90 +++ b/src/gsi/mod_vtrans.f90 @@ -243,8 +243,6 @@ subroutine create_vtrans(mype) ! get work pe: - print_verbose=.false. - if(verbose .and. g1%mype==workpe) print_verbose=.true. allocate(numlevs(0:g1%npe-1)) numlevs(0:g1%npe-1)=g1%kend(0:g1%npe-1)-g1%kbegin(0:g1%npe-1)+1 if(g1%mype==0) then @@ -258,6 +256,10 @@ subroutine create_vtrans(mype) call mpi_bcast(workpe,1,mpi_integer,0,mpi_comm_world,ierror) !write(6,*)' mype,workpe=',mype,workpe + print_verbose=.false. + if(verbose .and. g1%mype==workpe) print_verbose=.true. + + ! obtain vertical coordinate constants ahat,bhat,chat if(mype==workpe) call getabc(ahat,bhat,chat) diff --git a/src/gsi/obsmod.F90 b/src/gsi/obsmod.F90 index c60eabfab1..dd7120948c 100644 --- a/src/gsi/obsmod.F90 +++ b/src/gsi/obsmod.F90 @@ -496,7 +496,7 @@ module obsmod ! 1/237: Dropsonde observations. - ! 292: SFMR observations. + ! 213: SFMR observations. ! The following correspond to the specific humidity (q) ! observations: @@ -517,10 +517,10 @@ module obsmod public :: uv_doe_a_236 public :: uv_doe_a_237 - public :: uv_doe_a_292 + public :: uv_doe_a_213 public :: uv_doe_b_236 public :: uv_doe_b_237 - public :: uv_doe_b_292 + public :: uv_doe_b_213 interface obsmod_init_instr_table @@ -650,7 +650,7 @@ module obsmod ! 1/237: Dropsonde observations. - ! 292: SFMR observations. + ! 213: SFMR observations. ! The following correspond to the specific humidity (q) ! observations: @@ -667,7 +667,7 @@ module obsmod real(r_kind) :: uv_doe_a_236, uv_doe_b_236 real(r_kind) :: uv_doe_a_237, uv_doe_b_237 - real(r_kind) :: uv_doe_a_292, uv_doe_b_292 + real(r_kind) :: uv_doe_a_213, uv_doe_b_213 contains @@ -907,7 +907,7 @@ subroutine init_obsmod_dflts ! 1/237: Dropsonde observations. - ! 292: SFMR observations. + ! 213: SFMR observations. ! The following correspond to the specific humidity (q) ! observations: @@ -930,8 +930,8 @@ subroutine init_obsmod_dflts uv_doe_b_236 = 0.0_r_kind uv_doe_a_237 = 1.0_r_kind uv_doe_b_237 = 0.0_r_kind - uv_doe_a_292 = 1.0_r_kind - uv_doe_b_292 = 0.0_r_kind + uv_doe_a_213 = 1.0_r_kind + uv_doe_b_213 = 0.0_r_kind return end subroutine init_obsmod_dflts @@ -971,7 +971,7 @@ subroutine init_directories(mype) if (lrun_subdirs) then write(pe_name,'(i4.4)') mype dirname = 'dir.'//trim(pe_name)//'/' - command = 'mkdir -m 755 ' // trim(dirname) + command = 'mkdir -p -m 755 ' // trim(dirname) call system(command) else write(pe_name,100) mype diff --git a/src/gsi/read_abi.f90 b/src/gsi/read_abi.f90 index 3a50f65b51..46c18a8516 100644 --- a/src/gsi/read_abi.f90 +++ b/src/gsi/read_abi.f90 @@ -323,6 +323,7 @@ subroutine read_abi(mype,val_abi,ithin,rmesh,jsatid,& nread=nread+nchanl + rcldfrc=bmiss if(clrsky) then call ufbrep(lnbufr,dataabi1,1,ncld,iret,'NCLDMNT') rclrsky=bmiss @@ -338,7 +339,9 @@ subroutine read_abi(mype,val_abi,ithin,rmesh,jsatid,& rclrsky=dataabi1(1,1) !clear-sky percentage ! rclrsky=dataabi1(1,2) !clear-sky percentage over sea call ufbrep(lnbufr,dataabi,1,4,iret,'CLDMNT') - rcldfrc=dataabi(1,1) !total cloud + if (dataabi(1,1)>= zero .and. dataabi(1,1) <= 100.0_r_kind ) then + rcldfrc=dataabi(1,1) !total cloud + end if end if call ufbrep(lnbufr,dataabi2,1,nbrst,iret,'TMBRST') diff --git a/src/gsi/read_fl_hdob.f90 b/src/gsi/read_fl_hdob.f90 index a7c275174a..bd2e9929cb 100644 --- a/src/gsi/read_fl_hdob.f90 +++ b/src/gsi/read_fl_hdob.f90 @@ -57,6 +57,7 @@ subroutine read_fl_hdob(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,si ithin_conv,rmesh_conv,pmesh_conv use obsmod, only: perturb_obs,perturb_fact,ran01dom use obsmod, only: bmiss + use aircraftinfo, only: aircraft_t_bc,aircraft_t_bc_pof,aircraft_t_bc_ext use converr,only: etabl use converr_ps,only: etabl_ps,isuble_ps,maxsub_ps use converr_q,only: etabl_q,isuble_q,maxsub_q @@ -239,6 +240,7 @@ subroutine read_fl_hdob(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,si iecol=0 if (ltob) then nreal = 25 + if (aircraft_t_bc_pof .or. aircraft_t_bc .or.aircraft_t_bc_ext) nreal=nreal+3 iecol = 2 errmin = half ! set lower bound of ob error for T or Tv else if (luvob) then @@ -303,7 +305,7 @@ subroutine read_fl_hdob(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,si do nc = 1, nconvtype if (trim(ioctype(nc)) == trim(obstype))then if (trim(ioctype(nc)) == 'uv' .and. ictype(nc) == 236 .or. & - trim(ioctype(nc)) == 'spd' .and. ictype(nc) == 292 .or. & + trim(ioctype(nc)) == 'spd' .and. ictype(nc) == 213 .or. & trim(ioctype(nc)) == 't' .and. ictype(nc) == 136 .or. & trim(ioctype(nc)) == 'q' .and. ictype(nc) == 136 .or. & trim(ioctype(nc)) == 'ps' .and. ictype(nc) == 136 ) then @@ -534,6 +536,7 @@ subroutine read_fl_hdob(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,si write(6,*) 'READ_FL_HDOB: bad lat/lon values: ', obsloc(1,1),obsloc(2,1) cycle loop_readsb2 endif + if (obsloc(2,1) < 0.0_r_kind) obsloc(2,1) = obsloc(2,1) + 360.0_r_kind dlon_earth_deg = obsloc(2,1) dlat_earth_deg = obsloc(1,1) dlon_earth = obsloc(2,1)*deg2rad ! degree to radian diff --git a/src/gsi/read_gps.f90 b/src/gsi/read_gps.f90 index 860b3e3cfd..fc3888dcf1 100644 --- a/src/gsi/read_gps.f90 +++ b/src/gsi/read_gps.f90 @@ -59,6 +59,8 @@ subroutine read_gps(nread,ndata,nodata,infile,lunout,obstype,twind, & ! 2015-02-23 Rancic/Thomas - add l4densvar to time window logical ! 2015-10-01 guo - consolidate use of ob location (in deg) ! 2017-11-16 dutta - addition of profile quality flags for KOMPSAT5 GPSRO. +! 2019-08-21 Shao - add qc flags input for METOP-C, COSMIC-2 and PAZ +! 2020-05-21 Shao - add qc flags input for commercial GNSSRO data ! ! input argument list: ! infile - unit from which to read BUFR data @@ -256,8 +258,10 @@ subroutine read_gps(nread,ndata,nodata,infile,lunout,obstype,twind, & endif ! Check profile quality flags - if ( ((said > 739).and.(said < 746)).or.(said == 820).or.(said == 786).or.& - ((said > 749).and.(said < 756)).or.(said == 825).or.(said == 44) ) then !CDAAC processing + if ( ((said > 739).and.(said < 746)).or.(said == 820).or.(said == 786).or. & + ((said > 749).and.(said < 756)).or.(said == 825).or.(said == 44) .or. & + (said == 265).or.(said == 266).or.(said == 267).or.(said == 268).or. & + (said == 269)) then !CDAAC processing if(pcc==zero) then ! write(6,*)'READ_GPS: bad profile said=',said,'ptid=',ptid,& ! ' SKIP this report' diff --git a/src/gsi/read_obs.F90 b/src/gsi/read_obs.F90 index 48a0e6ad0f..60ca8730c3 100644 --- a/src/gsi/read_obs.F90 +++ b/src/gsi/read_obs.F90 @@ -134,7 +134,8 @@ subroutine read_obs_check (lexist,filename,jsatid,dtype,minuse,nread) ! 2017-11-16 dutta - adding KOMPSAT5 bufr i.d for reading the data. ! 2019-03-27 h. liu - add abi ! 2019-09-20 X.Su -add read new variational qc table -! +! 2019-08-21 H. Shao - add METOPC-C, COSMIC-2 and PAZ to the GPS check list +! 2020-05-21 H. Shao - add commercial GNSSRO (Spire, PlanetIQ, GeoOptics) and other existing missions to the check list ! ! input argument list: ! lexist - file status @@ -379,12 +380,14 @@ subroutine read_obs_check (lexist,filename,jsatid,dtype,minuse,nread) end if said=nint(satid) - if(((said > 739) .and.(said < 746)).or.(said == 820).or. & - (said == 825).or. (said == 786).or.(said == 4) .or. & - (said == 3) .or. (said == 421).or.(said == 440).or. & - (said == 821).or. ((said > 749) .and.(said < 756)).or. & - (said == 44) .or. (said == 5) .or. & - ( GMAO_READ .and. said == 5) ) then + if(((said > 739) .and.(said < 746)).or. (said == 820) .or. & + (said == 825).or. (said == 786).or. (said == 4) .or. & + (said == 3) .or. (said == 421).or. (said == 440) .or. & + (said == 821).or. ((said > 749).and.(said < 756)) .or. & + (said == 44) .or. (said == 5) .or. (said == 41) .or. & + (said == 42) .or. (said == 43) .or. (said == 722) .or. & + (said == 723).or. (said == 265).or. (said == 266) .or. & + (said == 267).or. (said == 268).or. (said == 269)) then lexist=.true. exit gpsloop end if @@ -435,6 +438,8 @@ subroutine read_obs_check (lexist,filename,jsatid,dtype,minuse,nread) trim(subset) == 'NC005032' .or. trim(subset) == 'NC005034' .or.& trim(subset) == 'NC005039' .or. & trim(subset) == 'NC005090' .or. trim(subset) == 'NC005091' .or.& + trim(subset) == 'NC005067' .or. trim(subset) == 'NC005068' .or. trim(subset) == 'NC005069' .or.& + trim(subset) == 'NC005081' .or. & trim(subset) == 'NC005072' ) then lexist = .true. exit loop @@ -1835,12 +1840,9 @@ subroutine read_obs(ndata,mype) call warn('read_obs',' string =',trim(string)) endif - write(6,8000) adjustl(string),infile,obstype,sis,nread,ithin,& - rmesh,isfcalc,nouse,npe_sub(i) -8000 format(1x,a22,': file=',a15,& - ' type=',a10, ' sis=',a20, ' nread=',i10,& - ' ithin=',i2, ' rmesh=',f11.6,' isfcalc=',i2,& - ' nkeep=',i10,' ntask=',i3) + write(6, '(a,'': file='',a,'' type='',a,'' sis='',a,'' nread='',i10,& + '' ithin='',i2,'' rmesh='',f11.6,'' isfcalc='',i2,'' nkeep='',i10,& + '' ntask='',i3)') endif endif task_belongs diff --git a/src/gsi/read_satwnd.f90 b/src/gsi/read_satwnd.f90 index 1669e3aebe..a8381559eb 100644 --- a/src/gsi/read_satwnd.f90 +++ b/src/gsi/read_satwnd.f90 @@ -349,6 +349,19 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis itype=254 endif endif + else if(trim(subset) == 'NC005067' .or. trim(subset) == 'NC005068' .or.& + trim(subset) == 'NC005069') then ! read new EUM BURF + if( hdrdat(1) = r50) then !the range of EUMETSAT satellite IDS + if(hdrdat(9) == one) then ! IR winds + itype=253 + else if(hdrdat(9) == two) then ! visible winds + itype=243 + else if(hdrdat(9) == three) then ! WV cloud top + itype=254 + else if(hdrdat(9) >= four) then ! WV deep layer, monitored + itype=254 + endif + endif else if(trim(subset) == 'NC005044' .or. trim(subset) == 'NC005045' .or. & trim(subset) == 'NC005046') then if( hdrdat(1) >=r100 .and. hdrdat(1) <=r199 ) then ! the range of JMA satellite IDS @@ -398,6 +411,15 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis write(6,*) 'READ_SATWND: wrong derived method value' endif endif + else if( trim(subset) == 'NC005081') then + if( hdrdat(1) <10.0_r_kind .or. (hdrdat(1) >= 200.0_r_kind .and. & + hdrdat(1) <=223.0_r_kind) ) then ! the range of EUMETSAT and NOAA polar orbit satellite IDs + if(hdrdat(9) == one) then ! IR winds + itype=244 + else + write(6,*) 'READ_SATWND: wrong derived method value' + endif + endif else if( trim(subset) == 'NC005019') then ! GOES shortwave winds if(hdrdat(1) >=r250 .and. hdrdat(1) <=r299 ) then ! The range of NESDIS satellite IDS if(hdrdat(9) == one) then ! short wave IR winds @@ -461,9 +483,13 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis else if(trim(subset) == 'NC005031') then ! WV clear sky/deep layer itype=247 endif - + else ! wind is not recognised and itype is not assigned + !write(6,*) 'READ_SATWND WARNING loop_report:Unmatched subset, itype, satID:',trim(subset),itype,hdrdat(1) + cycle loop_report endif + if ( itype == -1 ) cycle loop_report ! unassigned itype + ! Match ob to proper convinfo type ncsave=0 matchloop:do ncx=1,ntmatch @@ -925,10 +951,79 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis endif endif enddo - endif + endif +! Extra block for new EUMETSAT BUFR: Start + if(qifn <85.0_r_kind ) then ! qifn, QI without forecast + qm=15 + endif + else if(trim(subset) == 'NC005067' .or. trim(subset) == 'NC005068' .or. & + trim(subset) == 'NC005069') then ! read new EUM BURF + if( hdrdat(1) = r50 ) then ! The range of satellite IDs + c_prvstg='EUMETSAT' + if(hdrdat(10) >68.0_r_kind) cycle loop_readsb ! reject data zenith angle >68.0 degree + if(hdrdat(9) == one) then ! IR winds + itype=253 + c_station_id='IR'//stationid + c_sprvstg='IR' + else if(hdrdat(9) == two) then ! visible winds + itype=243 + c_station_id='VI'//stationid + c_sprvstg='VI' + else if(hdrdat(9) == three) then ! WV cloud top, try to assimilate + itype=254 + c_station_id='WV'//stationid + c_sprvstg='WV' + else if(hdrdat(9) >= four) then ! WV deep layer,monitoring + itype=254 + qm=9 ! quality mark as 9, means the observation error needed to be set + c_station_id='WV'//stationid + c_sprvstg='WV' + endif +! get quality information THIS SECTION NEEDS TO BE TESTED!!! + call ufbint(lunin,rep_array,1,1,iret, '{AMVIVR}') + irep_array = int(rep_array) + allocate( amvivr(2,irep_array)) + call ufbrep(lunin,amvivr,2,irep_array,iret, 'TCOV CVWD') + pct1 = amvivr(2,1) ! use of pct1 (a new variable in the BUFR) is introduced by Nebuda/Genkova + deallocate( amvivr ) + + call ufbseq(lunin,amvqic,2,4,iret, 'AMVQIC') ! AMVQIC:: GNAPS PCCF + qifn = amvqic(2,2) ! QI w/ fcst does not exist in this BUFR + ee = amvqic(2,4) ! NOTE: GOES-R's ee is in [m/s] + if(qifn <85.0_r_kind ) then ! qifn, QI without forecast + qm=15 + endif + endif +! Extra block for new EUMETSAT BUFR: End +! Extra block for new Metop/AVHRR BUFR: Start + else if(trim(subset) == 'NC005081') then ! Metop/AVHRR from NESDIS + if( hdrdat(1) <10.0_r_kind .or. (hdrdat(1) >= 200.0_r_kind .and. & + hdrdat(1) <=223.0_r_kind) ) then ! The range of satellite IDs + c_prvstg='AVHRR' + if(hdrdat(9) == one) then ! IRwinds + itype=244 + c_station_id='IR'//stationid + c_sprvstg='IR' + else + write(6,*) 'READ_SATWND: wrong derived method value' + endif + + call ufbint(lunin,rep_array,1,1,iret, '{AMVIVR}') + irep_array = int(rep_array) + allocate( amvivr(2,irep_array)) + call ufbrep(lunin,amvivr,2,irep_array,iret, 'TCOV CVWD') + pct1 = amvivr(2,1) ! use of pct1 is limited to GOES-16/17) as introduced by Nebuda/Genkova + deallocate( amvivr ) + + call ufbseq(lunin,amvqic,2,4,iret, 'AMVQIC') ! AMVQIC:: GNAPS PCCF + qifn = amvqic(2,2) ! QI w/ fcst does not exist in this BUFR + ee = amvqic(2,4) ! NOTE: GOES-R's ee is in [m/s] + endif +! Extra block for new Metop/AVHRR BUFR: End + ! Extra block for VIIRS NOAA-20: Start else if(trim(subset) == 'NC005091') then - if(hdrdat(1) >=r250 .and. hdrdat(1) <=r299 ) then ! The range of satellite IDs + if( hdrdat(1) >=r200 .and. hdrdat(1) <=r250 ) then ! Use this range in v16.* c_prvstg='VIIRS' if(trim(subset) == 'NC005091') then ! IR LW winds itype=260 @@ -1091,8 +1186,13 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis if(itype==251 ) then; c_prvstg='GOESR' ; c_sprvstg='VIS' ; endif endif ! Extra block for GOES-R winds: End - + else ! wind is not recognised and itype is not assigned + !write(6,*) 'READ_SATWND WARNING loop_readsb:Unmatched subset, itype, satID:',trim(subset),itype,hdrdat(1) + cycle loop_readsb endif + + if ( itype == -1 ) cycle loop_readsb ! unassigned itype + ! assign types and get quality info : end if ( qify == zero) qify=r110 @@ -1182,7 +1282,7 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis endif enddo if (ncount ==1) then - write(6,*) 'READ_SATWND,WARNING cannot find subtyep in the error table,& + write(6,*) 'READ_SATWND,WARNING cannot find subtype in the error table,& itype,iobsub=',itypey,icsubtype(nc) write(6,*) 'read error table at colomn subtype as 0,error table column=',ierr endif diff --git a/src/gsi/read_seviri.f90 b/src/gsi/read_seviri.f90 index 9b01d3df04..78c4cda70a 100644 --- a/src/gsi/read_seviri.f90 +++ b/src/gsi/read_seviri.f90 @@ -219,15 +219,13 @@ subroutine read_seviri(mype,val_sev,ithin,rmesh,jsatid,& call makegrids(rmesh,ithin,n_tbin=n_tbin) ! Set BUFR string based on seviri data set + hdrsevi='SAID YEAR MNTH DAYS HOUR MINU SECO CLATH CLONH SAZA SOZA' + nhdr=11 if (clrsky) then - hdrsevi='SAID YEAR MNTH DAYS HOUR MINU SECO CLATH CLONH SAZA SOZA' - nhdr=11 nchn=12 ncld=nchn nbrst=nchn else if (allsky) then - hdrsevi='SAID YEAR MNTH DAYS HOUR MINU SECO CLATH CLONH' - nhdr=9 nchn=11 ncld=2 nbrst=nchn*6 ! channel dependent: all, clear, cloudy, low, middle and high clouds @@ -286,10 +284,10 @@ subroutine read_seviri(mype,val_sev,ithin,rmesh,jsatid,& ! Read through each record call ufbint(lnbufr,hdr,nhdr,1,iret,hdrsevi) if(nint(hdr(1)) /= kidsat) cycle read_loop - if (clrsky) then ! asr bufr has no sza +! if (clrsky) then ! asr bufr has no sza, asr bufr has sza since 2017.07 ! remove the obs whose satellite zenith angles larger than 65 degree if ( hdr(ilzah) > r65 ) cycle read_loop - end if +! end if ! Convert obs location from degrees to radians @@ -358,7 +356,7 @@ subroutine read_seviri(mype,val_sev,ithin,rmesh,jsatid,& nread=nread+nchanl - rcldfrc=zero + rcldfrc=bmiss if(clrsky) then call ufbrep(lnbufr,datasev1,1,ncld,iret,'NCLDMNT') rclrsky=bmiss @@ -380,22 +378,35 @@ subroutine read_seviri(mype,val_sev,ithin,rmesh,jsatid,& call ufbrep(lnbufr,datasev2,1,nbrst,iret,'TMBRST') call ufbrep(lnbufr,datasev3,1,nbrst,iret,'SDTB') - allchnmiss=.true. - do n=4,11 - if(datasev2(1,n)<500.) then - allchnmiss=.false. - end if - end do - if(allchnmiss) cycle read_loop + if(clrsky) then + allchnmiss=.true. + do n=4,11 + if( datasev2(1,n)>zero .and. datasev2(1,n)<500.0_r_kind) then + allchnmiss=.false. + end if + end do + if(allchnmiss) cycle read_loop + +! toss data if SDTB>1.3 + do i=4,11 + if(i==5 .or. i==6) then ! 2 water-vapor channels + if(datasev3(1,i)>1.3_r_kind) then + cycle read_loop + end if + end if + end do + end if -! toss data if SDTB>1.3 - do i=4,11 - if(i==5 .or. i==6) then ! 2 water-vapor channels - if(datasev3(1,i)>1.3_r_kind) then - cycle read_loop + if(allsky) then + allchnmiss=.true. + do k=1,nchanl + jj=(k+2)*6+1 + if( datasev2(1,jj)>0. .and. datasev2(1,jj)<500.) then + allchnmiss=.false. end if - end if - end do + end do + if(allchnmiss) cycle read_loop + end if ! Locate the observation on the analysis grid. Get sst and land/sea/ice ! mask. diff --git a/src/gsi/setupbend.f90 b/src/gsi/setupbend.f90 index 9a83034428..7f7a162f61 100644 --- a/src/gsi/setupbend.f90 +++ b/src/gsi/setupbend.f90 @@ -97,6 +97,11 @@ subroutine setupbend(obsLL,odiagLL, & ! 2016-11-29 shlyaeva - save linearized H(x) for EnKF ! 2017-02-09 guo - Remove m_alloc, n_alloc. ! . Remove my_node with corrected typecast(). +! 2019-08-21 Shao - add COSMIC-2, metop-c and Paz +! 2020-03-18 Shao - update observation error for COSMIC-2 +! 2020-04-13 Shao - update the statistis QC for COSMIC-2 +! 2020-05-21 Shao - add comments to include commercial data ID information +! 2020-08-26 Shao/Bathmann - add Jacobian QC ! ! input argument list: ! lunin - unit from which to read observations @@ -156,7 +161,7 @@ subroutine setupbend(obsLL,odiagLL, & use m_gpsrhs, only: ratio_errors use m_gpsrhs, only: rdiagbuf,cdiagbuf use m_gpsrhs, only: qcfail - use m_gpsrhs, only: qcfail_loc,qcfail_high,qcfail_gross + use m_gpsrhs, only: qcfail_loc,qcfail_high,qcfail_gross,qcfail_jac use m_gpsrhs, only: data_ier,data_igps,data_ihgt use m_gpsrhs, only: gpsrhs_alloc use m_gpsrhs, only: gpsrhs_dealloc @@ -281,6 +286,11 @@ subroutine setupbend(obsLL,odiagLL, & !724-729 => COSMIC-2 Polar !825 => KOMPSAT-5 !5 => MetOpC +!265 => GeoOptics CICERO OP1 +!266 => GeoOptics CICERO OP2 +!267 => PlanetiQ GNOMES-A +!268 => PlanetiQ GNOMES-B +!269 => Spire Lemur 3U CubeSat ! Check to see if required guess fields are available call check_vars_(proceed) @@ -379,6 +389,7 @@ subroutine setupbend(obsLL,odiagLL, & qcfail=.false. qcfail_loc=zero;qcfail_gross=zero qcfail_high=zero + qcfail_jac=zero toss_gps_sub=zero dbend_loc=zero @@ -630,19 +641,40 @@ subroutine setupbend(obsLL,odiagLL, & endif else ! CDAAC-type processing - if((data(ilate,i)> r40).or.(data(ilate,i)< -r40)) then - if(alt>r12) then - repe_gps=-0.685627_r_kind+0.377174_r_kind*alt-0.00421934_r_kind*alt**2 + if ((data(isatid,i) > 749).and.(data(isatid,i) < 756)) then + if ((data(ilate,i)> r40).or.(data(ilate,i)< -r40)) then + if (alt.le.8.0_r_kind) then + repe_gps=-1.0304261_r_kind+0.3203316_r_kind*alt+0.0141337_r_kind*alt**2 + elseif (alt.gt.8.0_r_kind.and.alt.le.r12) then + repe_gps=2.1750271_r_kind+0.0431177_r_kind*alt-0.0008567_r_kind*alt**2 + else + repe_gps=-0.3447429_r_kind+0.2829981_r_kind*alt-0.0028545_r_kind*alt**2 + endif else - repe_gps=-3.27737_r_kind+1.20003_r_kind*alt-0.0558024_r_kind*alt**2 + if (alt.le.4.0_r_kind) then + repe_gps=0.7285212_r_kind-1.1138755_r_kind*alt+0.2311123_r_kind*alt**2 + elseif (alt.le.r18.and.alt.gt.4.0_r_kind) then + repe_gps=-3.3878629_r_kind+0.8691249_r_kind*alt-0.0297196_r_kind*alt**2 + else + repe_gps=-2.3875749_r_kind+0.3667211_r_kind*alt-0.0037542_r_kind*alt**2 + endif endif else - if(alt>r18) then - repe_gps=-2.73867_r_kind+0.447663_r_kind*alt-0.00475603_r_kind*alt**2 + if((data(ilate,i)> r40).or.(data(ilate,i)< -r40)) then + if(alt>r12) then + repe_gps=-0.685627_r_kind+0.377174_r_kind*alt-0.00421934_r_kind*alt**2 + else + repe_gps=-3.27737_r_kind+1.20003_r_kind*alt-0.0558024_r_kind*alt**2 + endif else - repe_gps=-3.45303_r_kind+0.908216_r_kind*alt-0.0293331_r_kind*alt**2 + if(alt>r18) then + repe_gps=-2.73867_r_kind+0.447663_r_kind*alt-0.00475603_r_kind*alt**2 + else + repe_gps=-3.45303_r_kind+0.908216_r_kind*alt-0.0293331_r_kind*alt**2 + endif endif - endif + endif + endif repe_gps=exp(repe_gps) ! one/modified error in (rad-1*1E3) @@ -763,15 +795,27 @@ subroutine setupbend(obsLL,odiagLL, & else ! Statistics QC check if obs passed gross error check cutoff=zero - cutoff1=(-4.725_r_kind+0.045_r_kind*alt+0.005_r_kind*alt**2)*two/three + if ((data(isatid,i) > 749).and.(data(isatid,i) < 756)) then + cutoff1=(-4.725_r_kind+0.045_r_kind*alt+0.005_r_kind*alt**2)*one/two + else + cutoff1=(-4.725_r_kind+0.045_r_kind*alt+0.005_r_kind*alt**2)*two/three + end if cutoff2=1.5_r_kind+one*cos(data(ilate,i)*deg2rad) if(trefges<=r240) then cutoff3=two else cutoff3=0.005_r_kind*trefges**2-2.3_r_kind*trefges+266_r_kind endif - cutoff3=cutoff3*two/three - cutoff4=(four+eight*cos(data(ilate,i)*deg2rad))*two/three + if ((data(isatid,i) > 749).and.(data(isatid,i) < 756)) then + cutoff3=cutoff3*one/two + else + cutoff3=cutoff3*two/three + end if + if ((data(isatid,i) > 749).and.(data(isatid,i) < 756)) then + cutoff4=(four+eight*cos(data(ilate,i)*deg2rad))*one/two + else + cutoff4=(four+eight*cos(data(ilate,i)*deg2rad))*two/three + end if cutoff12=((36_r_kind-alt)/two)*cutoff2+& ((alt-34_r_kind)/two)*cutoff1 cutoff23=((eleven-alt)/two)*cutoff3+& @@ -786,7 +830,11 @@ subroutine setupbend(obsLL,odiagLL, & if((alt<=six).and.(alt>four)) cutoff=cutoff34 if(alt<=four) cutoff=cutoff4 - cutoff=three*cutoff*r0_01 + if ((data(isatid,i) > 749).and.(data(isatid,i) < 756)) then + cutoff=two*cutoff*r0_01 + else + cutoff=three*cutoff*r0_01 + end if if(abs(rdiagbuf(5,i)) > cutoff) then qcfail(i)=.true. @@ -1132,9 +1180,28 @@ subroutine setupbend(obsLL,odiagLL, & my_head%jac_p(k)=my_head%jac_p(k)+dbenddxi(j)*dxidp(j,k)+ & dbenddn(j) * dndp(j,k) end do - end do + + if ((abs(my_head%jac_t(k)) > 0.0016_r_kind).or.(abs(my_head%jac_q(k)) > 7.5_r_kind).or. & + (abs(my_head%jac_p(k)) > 0.004_r_kind)) then + qcfail_jac(i) = one + end if + end do my_head%jac_p(nsig+1) = zero + + if (qcfail_jac(i) == one) then + do k=1,nsig + my_head%jac_t(k) = zero + my_head%jac_q(k) = zero + my_head%jac_p(k) = zero + end do + ratio_errors(i) = zero + data(ier,i) = zero + muse(i) = .false. + rdiagbuf(12,i) = -one + rdiagbuf(10,i) = six + end if + if (save_jacobian) then ! fill in the jacobian @@ -1167,7 +1234,11 @@ subroutine setupbend(obsLL,odiagLL, & do j=1,nreal gps_alltail(ibin)%head%rdiag(j)= rdiagbuf(j,i) end do - endif ! (last_pass) + gps_alltail(ibin)%head%ratio_err= ratio_errors(i) + gps_alltail(ibin)%head%obserr = data(ier,i) + gps_alltail(ibin)%head%dataerr = data(ier,i)*data(igps,i) + gps_alltail(ibin)%head%muse = muse(i) ! logical + endif ! (last_pass) end do ! i=1,nobs deallocate(ddnj,grid_s,ref_rad_s) ! Release memory of local guess arrays diff --git a/src/gsi/setupspd.f90 b/src/gsi/setupspd.f90 index ff01bf5ac6..1e740fdd25 100644 --- a/src/gsi/setupspd.f90 +++ b/src/gsi/setupspd.f90 @@ -141,7 +141,7 @@ subroutine setupspd(obsLL,odiagLL,lunin,mype,bwork,awork,nele,nobs,is,conv_diags ! apply only to the regional forecast models (e.g., HWRF); Henry ! R. Winterbottom (henry.winterbottom@noaa.gov). - use obsmod, only: uv_doe_a_292,uv_doe_b_292 + use obsmod, only: uv_doe_a_213,uv_doe_b_213 implicit none @@ -381,9 +381,9 @@ subroutine setupspd(obsLL,odiagLL,lunin,mype,bwork,awork,nele,nobs,is,conv_diags z_height = .false. ! if ( nty == 260 .or. nty == 261) z_height = .true. -! nty == 292 is temporarily assigned to SFMR retrieved wind speed from recon +! nty == 213 is temporarily assigned to SFMR retrieved wind speed from recon ! and is subjet to change in the future - if ( nty == 260 .or. nty == 261 .or. nty == 292) z_height = .true. + if ( nty == 260 .or. nty == 261 .or. nty == 213) z_height = .true. ! Process observations reported with height differently than those ! reported with pressure. Type 260=nacelle 261=tower wind spd are @@ -528,8 +528,8 @@ subroutine setupspd(obsLL,odiagLL,lunin,mype,bwork,awork,nele,nobs,is,conv_diags ddiff = spdob-spdges if (aircraft_recon) then - if ( nty == 292 ) then - ratio_errors=error/(uv_doe_a_292*abs(ddiff)+uv_doe_b_292) + if ( nty == 213 ) then + ratio_errors=error/(uv_doe_a_213*abs(ddiff)+uv_doe_b_213) if (spdob < 10._r_kind) ratio_errors=zero endif endif diff --git a/src/gsi/setupt.f90 b/src/gsi/setupt.f90 index 960b73897c..f9a5de3b95 100644 --- a/src/gsi/setupt.f90 +++ b/src/gsi/setupt.f90 @@ -1620,6 +1620,7 @@ subroutine contents_netcdf_diag_(odiag) call nc_diag_metadata("Obs_Minus_Forecast_unadjusted", sngl(tob-tges) ) if (aircraft_t_bc_pof .or. aircraft_t_bc .or. aircraft_t_bc_ext) then call nc_diag_metadata("Data_Pof", sngl(data(ipof,i)) ) + call nc_diag_metadata("Data_Vertical_Velocity", sngl(data(ivvlc,i)) ) if (npredt .gt. one) then call nc_diag_data2d("Bias_Correction_Terms", sngl(predbias) ) else if (npredt .eq. one) then @@ -1627,6 +1628,7 @@ subroutine contents_netcdf_diag_(odiag) endif else call nc_diag_metadata("Data_Pof", missing ) + call nc_diag_metadata("Data_Vertical_Velocity", missing ) if (npredt .gt. one) then do j=1,npredt predbias(j) = missing diff --git a/src/gsi/tcv_mod.f90 b/src/gsi/tcv_mod.f90 index dfec6e05b5..ab3e8c6372 100644 --- a/src/gsi/tcv_mod.f90 +++ b/src/gsi/tcv_mod.f90 @@ -148,7 +148,7 @@ subroutine get_storminfo(lunin) iret = 0 return else - write(6,*)'GET_STORMINFO: ***ERROR*** num storms to be processed <= 0' + write(6,*)'GET_STORMINFO: ***WARNING*** num storms to be processed <= 0' write(6,*)'GET_STORMINFO: Check file assigned to unit lucard=',lucard iret = 99 return @@ -255,7 +255,7 @@ subroutine read_tcv_card(nums,storm,lucard,stswitch,slonfg,slatfg,centerid,stid, iret = 0 return else - write(6,*)'READ_TCV_CARD: ***ERROR*** num storms to be processed <=0 ' + write(6,*)'READ_TCV_CARD: ***WARNING*** num storms to be processed <=0 ' write(6,*)'READ_TCV_CARD: Check file assigned to unit lucard=',lucard iret = 99 return diff --git a/src/ncdiag/CMakeLists.txt b/src/ncdiag/CMakeLists.txt index a3166d7b06..117ebff844 100644 --- a/src/ncdiag/CMakeLists.txt +++ b/src/ncdiag/CMakeLists.txt @@ -16,11 +16,11 @@ if(BUILD_NCDIAG) LIST(REMOVE_ITEM NCDIAG_SRC ${CMAKE_CURRENT_SOURCE_DIR}/nc_diag_cat.F90 ) add_library(ncdiag STATIC ${NCDIAG_SRC}) add_executable(test_nc_unlimdims.x ${CMAKE_CURRENT_SOURCE_DIR}/test_nc_unlimdims.F90 ) - add_executable(nc_diag_cat.x ${CMAKE_CURRENT_SOURCE_DIR}/nc_diag_cat.F90 ) - target_link_libraries(nc_diag_cat.x ncdiag ${NETCDF_LIBRARIES} ${HDF5_HL_LIBRARIES} ${HDF5_LIBRARIES} ${ZLIB_LIBRARIES} ${MPI_Fortran_LIBRARIES}) + add_executable(ncdiag_cat_mpi.x ${CMAKE_CURRENT_SOURCE_DIR}/nc_diag_cat.F90 ) + target_link_libraries(ncdiag_cat_mpi.x ncdiag ${NETCDF_LIBRARIES} ${HDF5_HL_LIBRARIES} ${HDF5_LIBRARIES} ${ZLIB_LIBRARIES} ${MPI_Fortran_LIBRARIES}) target_link_libraries(test_nc_unlimdims.x ncdiag ${NETCDF_LIBRARIES} ${HDF5_HL_LIBRARIES} ${HDF5_LIBRARIES} ${ZLIB_LIBRARIES} ${MPI_Fortran_LIBRARIES}) # set_target_properties(test_nc_unlimdims.x PROPERTIES Fortran_MODULE_DIRECTORY ${NCDIAG_INCS} ) -# set_target_properties(nc_diag_cat.x PROPERTIES Fortran_MODULE_DIRECTORY ${NCDIAG_INCS} ${MPI_Fortran_INCLUDE_PATH}) +# set_target_properties(ncdiag_cat_mpi.x PROPERTIES Fortran_MODULE_DIRECTORY ${NCDIAG_INCS} ${MPI_Fortran_INCLUDE_PATH}) endif(BUILD_NCDIAG) diff --git a/src/ncdiag/ncdw_chaninfo.F90 b/src/ncdiag/ncdw_chaninfo.F90 index ec28f1d65a..843a23162a 100644 --- a/src/ncdiag/ncdw_chaninfo.F90 +++ b/src/ncdiag/ncdw_chaninfo.F90 @@ -706,7 +706,7 @@ subroutine nc_diag_chaninfo_load_def call nclayer_error("NetCDF4 type invalid!") end if - print *, trim(tmp_var_name), "rel index", rel_index +! print *, trim(tmp_var_name), "rel index", rel_index ! Now add a relative position... based on the next position! diff --git a/src/ncdiag/ncdw_data2d.F90 b/src/ncdiag/ncdw_data2d.F90 index 80aea43182..8e5efc458d 100644 --- a/src/ncdiag/ncdw_data2d.F90 +++ b/src/ncdiag/ncdw_data2d.F90 @@ -365,7 +365,7 @@ subroutine nc_diag_data2d_load_def diag_data2d_store%max_lens(diag_data2d_store%total) = tmp_var_dim_sizes(1) end if - print *, trim(tmp_var_name), "rel index", rel_index +! print *, trim(tmp_var_name), "rel index", rel_index ! Now add a relative position... based on the next position! diff --git a/src/ncdiag/serial/CMakeLists.txt b/src/ncdiag/serial/CMakeLists.txt index 4cf5f386cc..3c453abff6 100644 --- a/src/ncdiag/serial/CMakeLists.txt +++ b/src/ncdiag/serial/CMakeLists.txt @@ -19,10 +19,10 @@ if(BUILD_NCDIAG) LIST(REMOVE_ITEM NCDIAG_SRC ${CMAKE_CURRENT_SOURCE_DIR}/nc_diag_cat.F90 ) add_library(ncdiag_serial STATIC ${NCDIAG_SRC}) set_target_properties( ncdiag_serial PROPERTIES Fortran_MODULE_DIRECTORY ${NCDIAG_SERIAL_MODULE_DIR} ) - add_executable(nc_diag_cat_serial.x ${CMAKE_CURRENT_SOURCE_DIR}/../nc_diag_cat.F90 ) - set_target_properties( nc_diag_cat_serial.x PROPERTIES COMPILE_FLAGS ${NCDIAG_Fortran_FLAGS} ) - set_target_properties( nc_diag_cat_serial.x PROPERTIES Fortran_MODULE_DIRECTORY ${NCDIAG_SERIAL_MODULE_DIR} ) - target_link_libraries(nc_diag_cat_serial.x ncdiag_serial ${NETCDF_LIBRARIES} ${HDF5_HL_LIBRARIES} ${HDF5_LIBRARIES} ${ZLIB_LIBRARIES} ${MPI_Fortran_LIBRARIES} ) + add_executable(ncdiag_cat.x ${CMAKE_CURRENT_SOURCE_DIR}/../nc_diag_cat.F90 ) + set_target_properties( ncdiag_cat.x PROPERTIES COMPILE_FLAGS ${NCDIAG_Fortran_FLAGS} ) + set_target_properties( ncdiag_cat.x PROPERTIES Fortran_MODULE_DIRECTORY ${NCDIAG_SERIAL_MODULE_DIR} ) + target_link_libraries(ncdiag_cat.x ncdiag_serial ${NETCDF_LIBRARIES} ${HDF5_HL_LIBRARIES} ${HDF5_LIBRARIES} ${ZLIB_LIBRARIES} ${MPI_Fortran_LIBRARIES} ) endif(BUILD_NCDIAG_SERIAL) endif( NOT USE_BASELIBS ) endif(BUILD_NCDIAG) diff --git a/ush/EnKF/drive_gfs b/ush/EnKF/drive_gfs index beb25ae25f..27c9347271 100755 --- a/ush/EnKF/drive_gfs +++ b/ush/EnKF/drive_gfs @@ -35,7 +35,7 @@ export NET=$RUN # SENDCOM - Copy Files From TMPDIR to $DATOUT # SENDDBN - Issue DBNet Client Calls # RERUN - Rerun fcst from beginning (default no) -# VERBOSE - Specify Verbose Output in exglobal_fcst.sh.sms +# VERBOSE - Specify Verbose Output in exglobal_fcst.sh #################################### export SENDSMS=YES export SENDCOM=YES diff --git a/ush/EnKF/drive_gsi b/ush/EnKF/drive_gsi index 8b83434c13..ade5ccff6f 100755 --- a/ush/EnKF/drive_gsi +++ b/ush/EnKF/drive_gsi @@ -56,7 +56,7 @@ export pgmerr=$logdir/errfile # SENDSMS - Flag Events on SMS # SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls -# VERBOSE - Specify Verbose Output in exglobal_fcst.sh.sms +# VERBOSE - Specify Verbose Output in exglobal_fcst.sh #################################### export SENDSMS=YES export SENDCOM=YES @@ -325,7 +325,7 @@ sh ${homedir}/run_gsi #poe rm /tmp/mplog* ########## -# NOTES: 1) script exglobal_analysis.sh.sms compresses the contents of +# NOTES: 1) script exglobal_analysis.sh compresses the contents of # RADSTAT, PCPSTAT, OZNSTAT, and CNVSTAT. These stat files # files are tarballs of compressed files. # 2) SFCANL, SIGANL are input to the GFS forecast following the analysis diff --git a/ush/build_all_cmake.sh b/ush/build_all_cmake.sh index a50ec1bb03..ceaf91d9c7 100755 --- a/ush/build_all_cmake.sh +++ b/ush/build_all_cmake.sh @@ -80,7 +80,7 @@ else fi if [ $build_type = PRODUCTION -o $build_type = DEBUG ] ; then - cmake -DBUILD_UTIL=ON -DMPI3FLAG=-DMPI3 -DMPI3=ON -DBUILD_NCDIAG_SERIAL=ON -DCMAKE_BUILD_TYPE=$build_type -DBUILD_CORELIBS=OFF .. + cmake -DBUILD_UTIL=ON -DBUILD_NCDIAG_SERIAL=ON -DCMAKE_BUILD_TYPE=$build_type -DBUILD_CORELIBS=OFF .. else cmake .. fi diff --git a/ush/calcanl_gfs.py b/ush/calcanl_gfs.py index 2dac8928ed..79c29efda0 100755 --- a/ush/calcanl_gfs.py +++ b/ush/calcanl_gfs.py @@ -12,367 +12,340 @@ from collections import OrderedDict import datetime + # function to calculate analysis from a given increment file and background -def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, ASuffix, - FixDir, atmges_ens_mean, RunDir, NThreads, NEMSGet, IAUHrs, - ExecCMD, ExecCMDMPI, ExecAnl, ExecChgresGes, ExecChgresInc, Cdump): - print('calcanl_gfs beginning at: ',datetime.datetime.utcnow()) +def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, ASuffix, + ComIn_Ges, GPrefix, GSuffix, + FixDir, atmges_ens_mean, RunDir, NThreads, NEMSGet, IAUHrs, + ExecCMD, ExecCMDMPI, ExecAnl, ExecChgresInc, Cdump): + print('calcanl_gfs beginning at: ',datetime.datetime.utcnow()) - IAUHH = IAUHrs - if Cdump == "gfs": - IAUHH = list(map(int,'6')) - else: IAUHH = IAUHrs - - ######## copy and link files - if DoIAU and l4DEnsVar and Write4Danl: - for fh in IAUHH: - if fh == 6: + if Cdump == "gfs": + IAUHH = list(map(int,'6')) + else: + IAUHH = IAUHrs + + ######## copy and link files + if DoIAU and l4DEnsVar and Write4Danl: + for fh in IAUHH: + if fh == 6: + # for full res analysis + CalcAnlDir = RunDir+'/calcanl_'+format(fh, '02') + if not os.path.exists(CalcAnlDir): + gsi_utils.make_dir(CalcAnlDir) + gsi_utils.copy_file(ExecAnl, CalcAnlDir+'/calc_anl.x') + gsi_utils.link_file(RunDir+'/siginc.nc', CalcAnlDir+'/siginc.nc.06') + gsi_utils.link_file(RunDir+'/sigf06', CalcAnlDir+'/ges.06') + gsi_utils.link_file(RunDir+'/siganl', CalcAnlDir+'/anl.06') + gsi_utils.copy_file(ExecChgresInc, CalcAnlDir+'/chgres_inc.x') + # for ensemble res analysis + if Cdump == "gdas": + CalcAnlDir = RunDir+'/calcanl_ensres_'+format(fh, '02') + if not os.path.exists(CalcAnlDir): + gsi_utils.make_dir(CalcAnlDir) + gsi_utils.copy_file(ExecAnl, CalcAnlDir+'/calc_anl.x') + gsi_utils.link_file(RunDir+'/siginc.nc', CalcAnlDir+'/siginc.nc.06') + gsi_utils.link_file(ComOut+'/'+APrefix+'atmanl.ensres'+ASuffix, CalcAnlDir+'/anl.ensres.06') + gsi_utils.link_file(ComIn_Ges+'/'+GPrefix+'atmf006.ensres'+GSuffix, CalcAnlDir+'/ges.ensres.06') + gsi_utils.link_file(RunDir+'/sigf06', CalcAnlDir+'/ges.06') + else: + if os.path.isfile('sigi'+format(fh, '02')+'.nc'): + # for full res analysis + CalcAnlDir = RunDir+'/calcanl_'+format(fh, '02') + CalcAnlDir6 = RunDir+'/calcanl_'+format(6, '02') + if not os.path.exists(CalcAnlDir): + gsi_utils.make_dir(CalcAnlDir) + if not os.path.exists(CalcAnlDir6): + gsi_utils.make_dir(CalcAnlDir6) + gsi_utils.link_file(ComOut+'/'+APrefix+'atma'+format(fh, '03')+ASuffix, + CalcAnlDir6+'/anl.'+format(fh, '02')) + gsi_utils.link_file(RunDir+'/siga'+format(fh, '02'), + CalcAnlDir6+'/anl.'+format(fh, '02')) + gsi_utils.link_file(RunDir+'/sigi'+format(fh, '02')+'.nc', + CalcAnlDir+'/siginc.nc.'+format(fh, '02')) + gsi_utils.link_file(CalcAnlDir6+'/inc.fullres.'+format(fh, '02'), + CalcAnlDir+'/inc.fullres.'+format(fh, '02')) + gsi_utils.link_file(RunDir+'/sigf'+format(fh, '02'), + CalcAnlDir6+'/ges.'+format(fh, '02')) + gsi_utils.link_file(RunDir+'/sigf'+format(fh, '02'), + CalcAnlDir+'/ges.'+format(fh, '02')) + gsi_utils.copy_file(ExecChgresInc, CalcAnlDir+'/chgres_inc.x') + # for ensemble res analysis + CalcAnlDir = RunDir+'/calcanl_ensres_'+format(fh, '02') + CalcAnlDir6 = RunDir+'/calcanl_ensres_'+format(6, '02') + if not os.path.exists(CalcAnlDir): + gsi_utils.make_dir(CalcAnlDir) + if not os.path.exists(CalcAnlDir6): + gsi_utils.make_dir(CalcAnlDir6) + gsi_utils.link_file(ComOut+'/'+APrefix+'atma'+format(fh, '03')+'.ensres'+ASuffix, + CalcAnlDir6+'/anl.ensres.'+format(fh, '02')) + gsi_utils.link_file(RunDir+'/sigi'+format(fh, '02')+'.nc', + CalcAnlDir6+'/siginc.nc.'+format(fh, '02')) + gsi_utils.link_file(ComIn_Ges+'/'+GPrefix+'atmf'+format(fh, '03')+'.ensres'+GSuffix, + CalcAnlDir6+'/ges.ensres.'+format(fh, '02')) + + + else: # for full res analysis - CalcAnlDir = RunDir+'/calcanl_'+format(fh, '02') + CalcAnlDir = RunDir+'/calcanl_'+format(6, '02') if not os.path.exists(CalcAnlDir): - os.makedirs(CalcAnlDir) - shutil.copy(ExecAnl, CalcAnlDir+'/calc_anl.x') + gsi_utils.make_dir(CalcAnlDir) + gsi_utils.copy_file(ExecAnl, CalcAnlDir+'/calc_anl.x') gsi_utils.link_file(RunDir+'/siginc.nc', CalcAnlDir+'/siginc.nc.06') gsi_utils.link_file(RunDir+'/sigf06', CalcAnlDir+'/ges.06') gsi_utils.link_file(RunDir+'/siganl', CalcAnlDir+'/anl.06') - shutil.copy(ExecChgresInc, CalcAnlDir+'/chgres_inc.x') + gsi_utils.copy_file(ExecChgresInc, CalcAnlDir+'/chgres_inc.x') # for ensemble res analysis - CalcAnlDir = RunDir+'/calcanl_ensres_'+format(fh, '02') + CalcAnlDir = RunDir+'/calcanl_ensres_'+format(6, '02') if not os.path.exists(CalcAnlDir): - os.makedirs(CalcAnlDir) - shutil.copy(ExecAnl, CalcAnlDir+'/calc_anl.x') + gsi_utils.make_dir(CalcAnlDir) + gsi_utils.copy_file(ExecAnl, CalcAnlDir+'/calc_anl.x') gsi_utils.link_file(RunDir+'/siginc.nc', CalcAnlDir+'/siginc.nc.06') gsi_utils.link_file(ComOut+'/'+APrefix+'atmanl.ensres'+ASuffix, CalcAnlDir+'/anl.ensres.06') - gsi_utils.link_file(RunDir+'/sigf06', CalcAnlDir+'/ges.06') - shutil.copy(ExecChgresGes, CalcAnlDir+'/chgres_ges.x') - - else: - if os.path.isfile('sigi'+format(fh, '02')+'.nc'): - # for full res analysis - CalcAnlDir = RunDir+'/calcanl_'+format(fh, '02') - CalcAnlDir6 = RunDir+'/calcanl_'+format(6, '02') - if not os.path.exists(CalcAnlDir): - os.makedirs(CalcAnlDir) - if not os.path.exists(CalcAnlDir6): - os.makedirs(CalcAnlDir6) - gsi_utils.link_file(ComOut+'/'+APrefix+'atma'+format(fh, '03')+ASuffix, CalcAnlDir6+'/anl.'+format(fh, '02')) - gsi_utils.link_file(RunDir+'/siga'+format(fh, '02'), CalcAnlDir6+'/anl.'+format(fh, '02')) - gsi_utils.link_file(RunDir+'/sigi'+format(fh, '02')+'.nc', CalcAnlDir+'/siginc.nc.'+format(fh, '02')) - gsi_utils.link_file(CalcAnlDir6+'/inc.fullres.'+format(fh, '02'),CalcAnlDir+'/inc.fullres.'+format(fh, '02')) - gsi_utils.link_file(RunDir+'/sigf'+format(fh, '02'), CalcAnlDir6+'/ges.'+format(fh, '02')) - shutil.copy(ExecChgresInc, CalcAnlDir+'/chgres_inc.x') - # for ensemble res analysis - CalcAnlDir = RunDir+'/calcanl_ensres_'+format(fh, '02') - CalcAnlDir6 = RunDir+'/calcanl_ensres_'+format(6, '02') - if not os.path.exists(CalcAnlDir): - os.makedirs(CalcAnlDir) - if not os.path.exists(CalcAnlDir6): - os.makedirs(CalcAnlDir6) - gsi_utils.link_file(ComOut+'/'+APrefix+'atma'+format(fh, '03')+'.ensres'+ASuffix, CalcAnlDir6+'/anl.ensres.'+format(fh, '02')) - gsi_utils.link_file(RunDir+'/sigi'+format(fh, '02')+'.nc', CalcAnlDir6+'/siginc.nc.'+format(fh, '02')) - gsi_utils.link_file(RunDir+'/sigf'+format(fh, '02'), CalcAnlDir+'/ges.'+format(fh, '02')) - gsi_utils.link_file(CalcAnlDir6+'/ges.ensres.'+format(fh, '02'),CalcAnlDir+'/ges.ensres.'+format(fh, '02')) - shutil.copy(ExecChgresGes, CalcAnlDir+'/chgres_ges.x') - - - else: - # for full res analysis - CalcAnlDir = RunDir+'/calcanl_'+format(6, '02') - if not os.path.exists(CalcAnlDir): - os.makedirs(CalcAnlDir) - shutil.copy(ExecAnl, CalcAnlDir+'/calc_anl.x') - gsi_utils.link_file(RunDir+'/siginc.nc', CalcAnlDir+'/siginc.nc.06') - gsi_utils.link_file(RunDir+'/sigf06', CalcAnlDir+'/ges.06') - gsi_utils.link_file(RunDir+'/siganl', CalcAnlDir+'/anl.06') - shutil.copy(ExecChgresInc, CalcAnlDir+'/chgres_inc.x') - # for ensemble res analysis - CalcAnlDir = RunDir+'/calcanl_ensres_'+format(6, '02') - if not os.path.exists(CalcAnlDir): - os.makedirs(CalcAnlDir) - shutil.copy(ExecAnl, CalcAnlDir+'/calc_anl.x') - gsi_utils.link_file(RunDir+'/siginc.nc', CalcAnlDir+'/siginc.nc.06') - gsi_utils.link_file(ComOut+'/'+APrefix+'atmanl.ensres'+ASuffix, CalcAnlDir+'/anl.ensres.06') - gsi_utils.link_file(RunDir+'/sigf06', CalcAnlDir+'/ges.06') - shutil.copy(ExecChgresGes, CalcAnlDir+'/chgres_ges.x') + gsi_utils.link_file(ComIn_Ges+'/'+GPrefix+'atmf006.ensres'+GSuffix, CalcAnlDir+'/ges.ensres.06') - # determine if the analysis is to be written in netCDF or NEMSIO - if ASuffix == ".nc": - nemsanl = ".false." - else: - nemsanl = ".true." + ######## get dimension information from background and increment files + AnlDims = gsi_utils.get_ncdims('siginc.nc') + if ASuffix == ".nc": + GesDims = gsi_utils.get_ncdims('sigf06') + else: + GesDims = gsi_utils.get_nemsdims('sigf06',NEMSGet) - ######## get dimension information from background and increment files - AnlDims = gsi_utils.get_ncdims('siginc.nc') - if ASuffix == ".nc": - GesDims = gsi_utils.get_ncdims('sigf06') - else: - GesDims = gsi_utils.get_nemsdims('sigf06',NEMSGet) + levs = AnlDims['lev'] + LonA = AnlDims['lon'] + LatA = AnlDims['lat'] + LonB = GesDims['grid_xt'] + LatB = GesDims['grid_yt'] - levs = AnlDims['lev'] - LonA = AnlDims['lon'] - LatA = AnlDims['lat'] - LonB = GesDims['grid_xt'] - LatB = GesDims['grid_yt'] + # vertical coordinate info + levs2 = levs + 1 + siglevel = FixDir+'/global_hyblev.l'+str(levs2)+'.txt' - # vertical coordinate info - levs2 = levs + 1 - siglevel = FixDir+'/global_hyblev.l'+str(levs2)+'.txt' + ####### determine how many forecast hours to process + nFH=0 + for fh in IAUHH: + # first check to see if increment file exists + CalcAnlDir = RunDir+'/calcanl_'+format(fh, '02') + if (os.path.isfile(CalcAnlDir+'/siginc.nc.'+format(fh, '02'))): + print('will process increment file: '+CalcAnlDir+'/siginc.nc.'+format(fh, '02')) + nFH+=1 + else: + print('Increment file: '+CalcAnlDir+'/siginc.nc.'+format(fh, '02')+' does not exist. Skipping.') - ####### determine how many forecast hours to process - nFH=0 - for fh in IAUHH: - # first check to see if increment file exists - CalcAnlDir = RunDir+'/calcanl_'+format(fh, '02') - if (os.path.isfile(CalcAnlDir+'/siginc.nc.'+format(fh, '02'))): - print('will process increment file: '+CalcAnlDir+'/siginc.nc.'+format(fh, '02')) - nFH+=1 - else: - print('Increment file: '+CalcAnlDir+'/siginc.nc.'+format(fh, '02')+' does not exist. Skipping.') - - sys.stdout.flush() - ######## need to gather information about runtime environment - ExecCMD = ExecCMD.replace("$ncmd","1") - os.environ['OMP_NUM_THREADS'] = str(NThreads) - os.environ['ncmd'] = str(nFH) - ExecCMDMPI1 = ExecCMDMPI.replace("$ncmd",str(1)) - ExecCMDMPI = ExecCMDMPI.replace("$ncmd",str(nFH)) - ExecCMDLevs = ExecCMDMPI.replace("$ncmd",str(levs)) - ExecCMDMPI10 = ExecCMDMPI.replace("$ncmd",str(10)) + sys.stdout.flush() + ######## need to gather information about runtime environment + ExecCMD = ExecCMD.replace("$ncmd","1") + os.environ['OMP_NUM_THREADS'] = str(NThreads) + os.environ['ncmd'] = str(nFH) + ExecCMDMPI1 = ExecCMDMPI.replace("$ncmd",str(1)) + ExecCMDMPI = ExecCMDMPI.replace("$ncmd",str(nFH)) + ExecCMDLevs = ExecCMDMPI.replace("$ncmd",str(levs)) + ExecCMDMPI10 = ExecCMDMPI.replace("$ncmd",str(10)) - # are we using mpirun with lsf, srun, or aprun with Cray? - launcher = ExecCMDMPI.split(' ')[0] - if launcher == 'mpirun': - hostfile = os.getenv('LSB_DJOB_HOSTFILE','') - with open(hostfile) as f: - hosts_tmp = f.readlines() - hosts_tmp = [x.strip() for x in hosts_tmp] - hosts = [] - [hosts.append(x) for x in hosts_tmp if x not in hosts] - nhosts = len(hosts) - ExecCMDMPI_host = 'mpirun -np '+str(nFH)+' --hostfile hosts' - tasks = int(os.getenv('LSB_DJOB_NUMPROC',1)) - if levs > tasks: - ExecCMDMPILevs_host = 'mpirun -np '+str(tasks)+' --hostfile hosts' - ExecCMDMPILevs_nohost = 'mpirun -np '+str(tasks) - else: - ExecCMDMPILevs_host = 'mpirun -np '+str(levs)+' --hostfile hosts' - ExecCMDMPILevs_nohost = 'mpirun -np '+str(levs) - ExecCMDMPI1_host = 'mpirun -np 1 --hostfile hosts' - ExecCMDMPI10_host = 'mpirun -np 10 --hostfile hosts' - elif launcher == 'srun': - nodes = os.getenv('SLURM_JOB_NODELIST','') - hosts_tmp = subprocess.check_output('scontrol show hostnames '+nodes, shell=True) - if (sys.version_info > (3, 0)): - hosts_tmp = hosts_tmp.decode('utf-8') - hosts_tmp = str(hosts_tmp).splitlines() + # are we using mpirun with lsf, srun, or aprun with Cray? + launcher = ExecCMDMPI.split(' ')[0] + if launcher == 'mpirun': + hostfile = os.getenv('LSB_DJOB_HOSTFILE','') + with open(hostfile) as f: + hosts_tmp = f.readlines() hosts_tmp = [x.strip() for x in hosts_tmp] - else: - hosts_tmp = hosts_tmp.strip() - hosts_tmp = str(hosts_tmp).splitlines() + hosts = [] + [hosts.append(x) for x in hosts_tmp if x not in hosts] + nhosts = len(hosts) + ExecCMDMPI_host = 'mpirun -np '+str(nFH)+' --hostfile hosts' + tasks = int(os.getenv('LSB_DJOB_NUMPROC',1)) + if levs > tasks: + ExecCMDMPILevs_host = 'mpirun -np '+str(tasks)+' --hostfile hosts' + ExecCMDMPILevs_nohost = 'mpirun -np '+str(tasks) + else: + ExecCMDMPILevs_host = 'mpirun -np '+str(levs)+' --hostfile hosts' + ExecCMDMPILevs_nohost = 'mpirun -np '+str(levs) + ExecCMDMPI1_host = 'mpirun -np 1 --hostfile hosts' + ExecCMDMPI10_host = 'mpirun -np 10 --hostfile hosts' + elif launcher == 'srun': + nodes = os.getenv('SLURM_JOB_NODELIST','') + hosts_tmp = subprocess.check_output('scontrol show hostnames '+nodes, shell=True) + if (sys.version_info > (3, 0)): + hosts_tmp = hosts_tmp.decode('utf-8') + hosts_tmp = str(hosts_tmp).splitlines() + hosts_tmp = [x.strip() for x in hosts_tmp] + else: + hosts_tmp = hosts_tmp.strip() + hosts_tmp = str(hosts_tmp).splitlines() + hosts_tmp = [x.strip() for x in hosts_tmp] + hosts = [] + [hosts.append(x) for x in hosts_tmp if x not in hosts] + nhosts = len(hosts) + ExecCMDMPI_host = 'srun -n '+str(nFH)+' --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' + # need to account for when fewer than LEVS tasks are available + tasks = int(os.getenv('SLURM_NPROCS',1)) + if levs > tasks: + ExecCMDMPILevs_host = 'srun -n '+str(tasks)+' --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' + ExecCMDMPILevs_nohost = 'srun -n '+str(tasks)+' --verbose --export=ALL' + else: + ExecCMDMPILevs_host = 'srun -n '+str(levs)+' --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' + ExecCMDMPILevs_nohost = 'srun -n '+str(levs)+' --verbose --export=ALL' + ExecCMDMPI1_host = 'srun -n 1 --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' + ExecCMDMPI10_host = 'srun -n 10 --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' + elif launcher == 'aprun': + hostfile = os.getenv('LSB_DJOB_HOSTFILE','') + with open(hostfile) as f: + hosts_tmp = f.readlines() hosts_tmp = [x.strip() for x in hosts_tmp] - hosts = [] - [hosts.append(x) for x in hosts_tmp if x not in hosts] - nhosts = len(hosts) - ExecCMDMPI_host = 'srun -n '+str(nFH)+' --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' - # need to account for when fewer than LEVS tasks are available - tasks = int(os.getenv('SLURM_NPROCS',1)) - if levs > tasks: - ExecCMDMPILevs_host = 'srun -n '+str(tasks)+' --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' - ExecCMDMPILevs_nohost = 'srun -n '+str(tasks)+' --verbose --export=ALL' + hosts = [] + [hosts.append(x) for x in hosts_tmp if x not in hosts] + nhosts = len(hosts) + ExecCMDMPI_host = 'aprun -l hosts -d '+str(NThreads)+' -n '+str(nFH) + ExecCMDMPILevs_host = 'aprun -l hosts -d '+str(NThreads)+' -n '+str(levs) + ExecCMDMPILevs_nohost = 'aprun -d '+str(NThreads)+' -n '+str(levs) + ExecCMDMPI1_host = 'aprun -l hosts -d '+str(NThreads)+' -n 1' + ExecCMDMPI10_host = 'aprun -l hosts -d '+str(NThreads)+' -n 10' else: - ExecCMDMPILevs_host = 'srun -n '+str(levs)+' --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' - ExecCMDMPILevs_nohost = 'srun -n '+str(levs)+' --verbose --export=ALL' - ExecCMDMPI1_host = 'srun -n 1 --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' - ExecCMDMPI10_host = 'srun -n 10 --verbose --export=ALL -c 1 --distribution=arbitrary --cpu-bind=cores' - elif launcher == 'aprun': - hostfile = os.getenv('LSB_DJOB_HOSTFILE','') - with open(hostfile) as f: - hosts_tmp = f.readlines() - hosts_tmp = [x.strip() for x in hosts_tmp] - hosts = [] - [hosts.append(x) for x in hosts_tmp if x not in hosts] - nhosts = len(hosts) - ExecCMDMPI_host = 'aprun -l hosts -d '+str(NThreads)+' -n '+str(nFH) - ExecCMDMPILevs_host = 'aprun -l hosts -d '+str(NThreads)+' -n '+str(levs) - ExecCMDMPILevs_nohost = 'aprun -d '+str(NThreads)+' -n '+str(levs) - ExecCMDMPI1_host = 'aprun -l hosts -d '+str(NThreads)+' -n 1' - ExecCMDMPI10_host = 'aprun -l hosts -d '+str(NThreads)+' -n 10' - else: - print('unknown MPI launcher. Failure.') - sys.exit(1) - - ####### generate the full resolution analysis - interp_jobs = [] - ihost = 0 - ### interpolate increment to full background resolution - for fh in IAUHH: - # first check to see if increment file exists - CalcAnlDir = RunDir+'/calcanl_'+format(fh, '02') - if (os.path.isfile(CalcAnlDir+'/siginc.nc.'+format(fh, '02'))): - # set up the namelist - namelist = OrderedDict() - namelist["setup"] = {"lon_out": LonB, - "lat_out": LatB, - "lev": levs, - "infile": "'siginc.nc."+format(fh, '02')+"'", - "outfile": "'inc.fullres."+format(fh, '02')+"'", - } - gsi_utils.write_nml(namelist, CalcAnlDir+'/fort.43') - - if ihost >= nhosts: - ihost = 0 - with open(CalcAnlDir+'/hosts', 'w') as hostfile: - hostfile.write(hosts[ihost]+'\n') - if launcher == 'srun': # need to write host per task not per node for slurm - for a in range(0,9): # need 9 more of the same host for the 10 tasks for chgres_inc - hostfile.write(hosts[ihost]+'\n') - if launcher == 'srun': - os.environ['SLURM_HOSTFILE'] = CalcAnlDir+'/hosts' - print('interp_inc', fh, namelist) - job = subprocess.Popen(ExecCMDMPI10_host+' '+CalcAnlDir+'/chgres_inc.x', shell=True, cwd=CalcAnlDir) - interp_jobs.append(job) - print(ExecCMDMPI10_host+' '+CalcAnlDir+'/chgres_inc.x submitted on '+hosts[ihost]) - ihost+=1 - - sys.stdout.flush() - exit_codes = [p.wait() for p in interp_jobs] - for ec in exit_codes: - if ec != 0: - print('Error with chgres_inc.x, exit code='+str(ec)) - print(locals()) - sys.exit(ec) + print('unknown MPI launcher. Failure.') + sys.exit(1) - #### generate analysis from interpolated increment - CalcAnlDir6 = RunDir+'/calcanl_'+format(6, '02') - # set up the namelist - namelist = OrderedDict() - namelist["setup"] = {"datapath": "'./'", - "analysis_filename": "'anl'", - "firstguess_filename": "'ges'", - "increment_filename": "'inc.fullres'", - "fhr": 6, - } - - gsi_utils.write_nml(namelist, CalcAnlDir6+'/calc_analysis.nml') - - # run the executable - if ihost >= nhosts-1: + ####### generate the full resolution analysis + interp_jobs = [] ihost = 0 - if launcher == 'srun': - del os.environ['SLURM_HOSTFILE'] - print('fullres_calc_anl', namelist) - fullres_anl_job = subprocess.Popen(ExecCMDMPILevs_nohost+' '+CalcAnlDir6+'/calc_anl.x', shell=True, cwd=CalcAnlDir6) - print(ExecCMDMPILevs_nohost+' '+CalcAnlDir6+'/calc_anl.x submitted') - - sys.stdout.flush() - exit_fullres = fullres_anl_job.wait() - sys.stdout.flush() - if exit_fullres != 0: - print('Error with calc_analysis.x for deterministic resolution, exit code='+str(exit_fullres)) - print(locals()) - sys.exit(exit_fullres) - - - ######## run chgres to get background on ensemble resolution - if Cdump == "gdas": - chgres_jobs = [] + ### interpolate increment to full background resolution for fh in IAUHH: - # first check to see if guess file exists - CalcAnlDir = RunDir+'/calcanl_ensres_'+format(fh, '02') - if (os.path.isfile(CalcAnlDir+'/ges.'+format(fh, '02'))): - # set up the namelist - namelist = OrderedDict() - namelist["chgres_setup"] = {"i_output": str(LonA), - "j_output": str(LatA), - "input_file": "'ges."+format(fh, '02')+"'", - "output_file": "'ges.ensres."+format(fh, '02')+"'", - "terrain_file": "'"+atmges_ens_mean+"'", - "vcoord_file": "'"+siglevel+"'", - } - - gsi_utils.write_nml(namelist, CalcAnlDir+'/chgres_nc_gauss.nml') - - # run the executable - if ihost >= nhosts-1: - ihost = 0 - with open(CalcAnlDir+'/hosts', 'w') as hostfile: - hostfile.write(hosts[ihost]+'\n') - if launcher == 'srun': - os.environ['SLURM_HOSTFILE'] = CalcAnlDir+'/hosts' - print('chgres_nc_gauss', fh, namelist) - job = subprocess.Popen(ExecCMDMPI1_host+' '+CalcAnlDir+'/chgres_ges.x', shell=True, cwd=CalcAnlDir) - chgres_jobs.append(job) - print(ExecCMDMPI1_host+' '+CalcAnlDir+'/chgres_ges.x submitted on '+hosts[ihost]) - ihost+=1 + # first check to see if increment file exists + CalcAnlDir = RunDir+'/calcanl_'+format(fh, '02') + if (os.path.isfile(CalcAnlDir+'/siginc.nc.'+format(fh, '02'))): + print('Interpolating increment for f'+format(fh, '03')) + # set up the namelist + namelist = OrderedDict() + namelist["setup"] = {"lon_out": LonB, + "lat_out": LatB, + "lev": levs, + "infile": "'siginc.nc."+format(fh, '02')+"'", + "outfile": "'inc.fullres."+format(fh, '02')+"'", + } + gsi_utils.write_nml(namelist, CalcAnlDir+'/fort.43') + if ihost >= nhosts: + ihost = 0 + with open(CalcAnlDir+'/hosts', 'w') as hostfile: + hostfile.write(hosts[ihost]+'\n') + if launcher == 'srun': # need to write host per task not per node for slurm + for a in range(0,9): # need 9 more of the same host for the 10 tasks for chgres_inc + hostfile.write(hosts[ihost]+'\n') + if launcher == 'srun': + os.environ['SLURM_HOSTFILE'] = CalcAnlDir+'/hosts' + print('interp_inc', fh, namelist) + job = subprocess.Popen(ExecCMDMPI10_host+' '+CalcAnlDir+'/chgres_inc.x', shell=True, cwd=CalcAnlDir) + interp_jobs.append(job) + print(ExecCMDMPI10_host+' '+CalcAnlDir+'/chgres_inc.x submitted on '+hosts[ihost]) + ihost+=1 + else: + print('f'+format(fh, '03')+' is in $IAUFHRS but increment file is missing. Skipping.') sys.stdout.flush() - exit_codes = [p.wait() for p in chgres_jobs] + exit_codes = [p.wait() for p in interp_jobs] for ec in exit_codes: - if ec != 0: - print('Error with chgres_ges.x, exit code='+str(ec)) - print(locals()) - sys.exit(ec) + if ec != 0: + print('Error with chgres_inc.x, exit code='+str(ec)) + print(locals()) + sys.exit(ec) - sys.stdout.flush() - ######## generate ensres analysis from interpolated background - if launcher == 'srun': - del os.environ['SLURM_HOSTFILE'] - for fh in IAUHH: - CalcAnlDir6 = RunDir+'/calcanl_ensres_'+format(6, '02') - # set up the namelist - namelist = OrderedDict() - namelist["setup"] = {"datapath": "'./'", - "analysis_filename": "'anl.ensres'", - "firstguess_filename": "'ges.ensres'", - "increment_filename": "'siginc.nc'", - "fhr": fh, + #### generate analysis from interpolated increment + CalcAnlDir6 = RunDir+'/calcanl_'+format(6, '02') + # set up the namelist + namelist = OrderedDict() + namelist["setup"] = {"datapath": "'./'", + "analysis_filename": "'anl'", + "firstguess_filename": "'ges'", + "increment_filename": "'inc.fullres'", + "fhr": 6, } - - gsi_utils.write_nml(namelist, CalcAnlDir6+'/calc_analysis.nml') + gsi_utils.write_nml(namelist, CalcAnlDir6+'/calc_analysis.nml') - # run the executable - if ihost > nhosts-1: + # run the executable + if ihost >= nhosts-1: ihost = 0 - print('ensres_calc_anl', namelist) - ensres_anl_job = subprocess.Popen(ExecCMDMPILevs_nohost+' '+CalcAnlDir6+'/calc_anl.x', shell=True, cwd=CalcAnlDir6) - print(ExecCMDMPILevs_nohost+' '+CalcAnlDir6+'/calc_anl.x submitted') + if launcher == 'srun': + del os.environ['SLURM_HOSTFILE'] + print('fullres_calc_anl', namelist) + fullres_anl_job = subprocess.Popen(ExecCMDMPILevs_nohost+' '+CalcAnlDir6+'/calc_anl.x', shell=True, cwd=CalcAnlDir6) + print(ExecCMDMPILevs_nohost+' '+CalcAnlDir6+'/calc_anl.x submitted') - sys.stdout.flush() - ####### check on analysis steps - exit_ensres = ensres_anl_job.wait() - if exit_ensres != 0: - print('Error with calc_analysis.x for ensemble resolution, exit code='+str(exit_ensres)) + sys.stdout.flush() + exit_fullres = fullres_anl_job.wait() + sys.stdout.flush() + if exit_fullres != 0: + print('Error with calc_analysis.x for deterministic resolution, exit code='+str(exit_fullres)) print(locals()) - sys.exit(exit_ensres) + sys.exit(exit_fullres) + + + ######## compute determinstic analysis on ensemble resolution + if Cdump == "gdas": + chgres_jobs = [] + for fh in IAUHH: + # first check to see if guess file exists + CalcAnlDir6 = RunDir+'/calcanl_ensres_06' + print(CalcAnlDir6+'/ges.ensres.'+format(fh, '02')) + if (os.path.isfile(CalcAnlDir6+'/ges.ensres.'+format(fh, '02'))): + print('Calculating analysis on ensemble resolution for f'+format(fh, '03')) + ######## generate ensres analysis from interpolated background + # set up the namelist + namelist = OrderedDict() + namelist["setup"] = {"datapath": "'./'", + "analysis_filename": "'anl.ensres'", + "firstguess_filename": "'ges.ensres'", + "increment_filename": "'siginc.nc'", + "fhr": fh, + } - print('calcanl_gfs successfully completed at: ',datetime.datetime.utcnow()) - print(locals()) + gsi_utils.write_nml(namelist, CalcAnlDir6+'/calc_analysis.nml') + + # run the executable + if ihost > nhosts-1: + ihost = 0 + print('ensres_calc_anl', namelist) + ensres_anl_job = subprocess.Popen(ExecCMDMPILevs_nohost+' '+CalcAnlDir6+'/calc_anl.x', shell=True, cwd=CalcAnlDir6) + print(ExecCMDMPILevs_nohost+' '+CalcAnlDir6+'/calc_anl.x submitted') + + sys.stdout.flush() + ####### check on analysis steps + exit_ensres = ensres_anl_job.wait() + if exit_ensres != 0: + print('Error with calc_analysis.x for ensemble resolution, exit code='+str(exit_ensres)) + print(locals()) + sys.exit(exit_ensres) + else: + print('f'+format(fh, '03')+' is in $IAUFHRS but ensemble resolution guess file is missing. Skipping.') + + print('calcanl_gfs successfully completed at: ',datetime.datetime.utcnow()) + print(locals()) # run the function if this script is called from the command line if __name__ == '__main__': - DoIAU = gsi_utils.isTrue(os.getenv('DOIAU', 'NO')) - l4DEnsVar = gsi_utils.isTrue(os.getenv('l4densvar', 'NO')) - Write4Danl = gsi_utils.isTrue(os.getenv('lwrite4danl', 'NO')) - ComOut = os.getenv('COMOUT', './') - APrefix = os.getenv('APREFIX', '') - ASuffix= os.getenv('ASUFFIX', '') - NThreads = os.getenv('NTHREADS_CHGRES', 1) - FixDir = os.getenv('FIXgsm', './') - atmges_ens_mean = os.getenv('ATMGES_ENSMEAN', './atmges_ensmean') - RunDir = os.getenv('DATA', './') - ExecCMD = os.getenv('APRUN_CALCANL', '') - ExecCMDMPI = os.getenv('APRUN_CALCINC', '') - ExecAnl = os.getenv('CALCANLEXEC', './calc_analysis.x') - ExecChgresGes = os.getenv('CHGRESNCEXEC', './chgres_nc_gauss.exe') - ExecChgresInc = os.getenv('CHGRESINCEXEC', './chgres_increment.exe') - NEMSGet = os.getenv('NEMSIOGET','nemsio_get') - IAUHrs = list(map(int,os.getenv('IAUFHRS','6').split(','))) - Cdump = os.getenv('CDUMP', 'gdas') + DoIAU = gsi_utils.isTrue(os.getenv('DOIAU', 'NO')) + l4DEnsVar = gsi_utils.isTrue(os.getenv('l4densvar', 'NO')) + Write4Danl = gsi_utils.isTrue(os.getenv('lwrite4danl', 'NO')) + ComIn_Ges = os.getenv('COMIN_GES', './') + GPrefix = os.getenv('GPREFIX', './') + GSuffix = os.getenv('GSUFFIX', './') + ComOut = os.getenv('COMOUT', './') + APrefix = os.getenv('APREFIX', '') + ASuffix= os.getenv('ASUFFIX', '') + NThreads = os.getenv('NTHREADS_CHGRES', 1) + FixDir = os.getenv('FIXgsm', './') + atmges_ens_mean = os.getenv('ATMGES_ENSMEAN', './atmges_ensmean') + RunDir = os.getenv('DATA', './') + ExecCMD = os.getenv('APRUN_CALCANL', '') + ExecCMDMPI = os.getenv('APRUN_CALCINC', '') + ExecAnl = os.getenv('CALCANLEXEC', './calc_analysis.x') + ExecChgresInc = os.getenv('CHGRESINCEXEC', './interp_inc.x') + NEMSGet = os.getenv('NEMSIOGET','nemsio_get') + IAUHrs = list(map(int,os.getenv('IAUFHRS','6').split(','))) + Cdump = os.getenv('CDUMP', 'gdas') - print(locals()) - calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, ASuffix, - FixDir, atmges_ens_mean, RunDir, NThreads, NEMSGet, IAUHrs, - ExecCMD, ExecCMDMPI, ExecAnl, ExecChgresGes, ExecChgresInc, - Cdump) + print(locals()) + calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, ASuffix, + ComIn_Ges, GPrefix, GSuffix, + FixDir, atmges_ens_mean, RunDir, NThreads, NEMSGet, IAUHrs, + ExecCMD, ExecCMDMPI, ExecAnl, ExecChgresInc, + Cdump) diff --git a/ush/gsi_utils.py b/ush/gsi_utils.py index 4916f1ed5c..79c6e627e0 100644 --- a/ush/gsi_utils.py +++ b/ush/gsi_utils.py @@ -1,123 +1,138 @@ ### gsi_utils.py ### a collection of functions, classes, etc. -### used for the GSI global analysis +### used for the GSI global analysis def isTrue(str_in): - """ isTrue(str_in) - - function to translate shell variables to python logical variables + """ isTrue(str_in) + - function to translate shell variables to python logical variables - input: str_in - string (should be like 'YES', 'TRUE', etc.) - returns: status (logical True or False) + input: str_in - string (should be like 'YES', 'TRUE', etc.) + returns: status (logical True or False) - """ - str_in = str_in.upper() - if str_in in ['YES','.TRUE.']: - status = True - else: - status = False - return status + """ + str_in = str_in.upper() + if str_in in ['YES','.TRUE.']: + status = True + else: + status = False + return status def link_file(from_file, to_file): - """ link_file(from_file, to_file) - - function to check if a path exists, and if not, make a symlink - input: from_file - string path - to_file - string path - """ - import os - if not os.path.exists(to_file): - if not os.path.islink(to_file): - os.symlink(from_file, to_file) + """ link_file(from_file, to_file) + - function to check if a path exists, and if not, make a symlink + input: from_file - string path + to_file - string path + """ + import os + if not os.path.exists(to_file): + if not os.path.islink(to_file): + os.symlink(from_file, to_file) + else: + print(to_file+" exists, unlinking.") + os.unlink(to_file) + os.symlink(from_file, to_file) + print("ln -s "+from_file+" "+to_file) + +def copy_file(from_file, to_file): + import shutil + shutil.copy(from_file, to_file) + print("cp "+from_file+" "+to_file) + +def make_dir(directory): + import os + os.makedirs(directory) + print("mkdir -p "+directory) def write_nml(nml_dict, nml_file): - """ write_nml(nml_dict, nml_file) - - function to write out namelist dictionary nml_dict to file nml_file - input: nml_dict - dictionary of dictionaries - first dictionary is &nml, second is nmlvar='value' - NOTE: this shoudl be an OrderedDict or else it might fail - nml_file - string path to write namelist file to - """ - nfile = open(nml_file, 'w') + """ write_nml(nml_dict, nml_file) + - function to write out namelist dictionary nml_dict to file nml_file + input: nml_dict - dictionary of dictionaries + first dictionary is &nml, second is nmlvar='value' + NOTE: this shoudl be an OrderedDict or else it might fail + nml_file - string path to write namelist file to + """ + nfile = open(nml_file, 'w') - for nml, nmlvars in nml_dict.items(): - nfile.write('&'+nml+'\n') - for var, val in nmlvars.items(): - nfile.write(' '+str(var)+' = '+str(val)+'\n') - nfile.write('/\n\n') - nfile.close() + for nml, nmlvars in nml_dict.items(): + nfile.write('&'+nml+'\n') + for var, val in nmlvars.items(): + nfile.write(' '+str(var)+' = '+str(val)+'\n') + nfile.write('/\n\n') + nfile.close() def get_ncdims(ncfile): - """ get_ncdims(ncfile) - - function to return dictionary of netCDF file dimensions and their lengths - input: ncfile - string to path to netCDF file - output: ncdims - dictionary where key is the name of a dimension and the - value is the length of that dimension + """ get_ncdims(ncfile) + - function to return dictionary of netCDF file dimensions and their lengths + input: ncfile - string to path to netCDF file + output: ncdims - dictionary where key is the name of a dimension and the + value is the length of that dimension + + ex: ncdims['pfull'] = 127 + """ + try: + import netCDF4 as nc + except ImportError: + print("Python Error!") + print("netCDF4 Python module not available. Do you have the proper Python available in your environment?") + print("Hera: module use -a /contrib/modulefiles && module load anaconda/2.3.0") + print("Dell: module load python/3.6.3") + print(" ") + ncf = nc.Dataset(ncfile) + ncdims = {} + for d in ncf.dimensions.keys(): + ncdims[d] = int(len(ncf.dimensions[d])) + ncf.close() - ex: ncdims['pfull'] = 127 - """ - try: - import netCDF4 as nc - except ImportError: - print("Python Error!") - print("netCDF4 Python module not available. Do you have the proper Python available in your environment?") - print("Hera: module use -a /contrib/modulefiles && module load anaconda/2.3.0") - print("Dell: module load python/3.6.3") - print(" ") - ncf = nc.Dataset(ncfile) - ncdims = {} - for d in ncf.dimensions.keys(): - ncdims[d] = int(len(ncf.dimensions[d])) - ncf.close() - - return ncdims + return ncdims def get_nemsdims(nemsfile,nemsexe): - """ get_nemsdims(nemsfile,nemsexe) - - function to return dictionary of NEMSIO file dimensions for use - input: nemsfile - string to path nemsio file - nemsexe - string to path nemsio_get executable - output: nemsdims - dictionary where key is the name of a dimension and the - value is the length of that dimension - ex: nemsdims['pfull'] = 127 - """ - import subprocess - ncdims = { - 'dimx': 'grid_xt', - 'dimy': 'grid_yt', - 'dimz': 'pfull', - } - nemsdims = {} - for dim in ['dimx','dimy','dimz']: - out = subprocess.Popen([nemsexe,nemsfile,dim],stdout=subprocess.PIPE,stderr=subprocess.STDOUT) - stdout, stderr = out.communicate() - nemsdims[ncdims[dim]] = int(stdout.split(' ')[-1].rstrip()) - return nemsdims + """ get_nemsdims(nemsfile,nemsexe) + - function to return dictionary of NEMSIO file dimensions for use + input: nemsfile - string to path nemsio file + nemsexe - string to path nemsio_get executable + output: nemsdims - dictionary where key is the name of a dimension and the + value is the length of that dimension + ex: nemsdims['pfull'] = 127 + """ + import subprocess + ncdims = { + 'dimx': 'grid_xt', + 'dimy': 'grid_yt', + 'dimz': 'pfull', + } + nemsdims = {} + for dim in ['dimx','dimy','dimz']: + out = subprocess.Popen([nemsexe,nemsfile,dim],stdout=subprocess.PIPE,stderr=subprocess.STDOUT) + stdout, stderr = out.communicate() + nemsdims[ncdims[dim]] = int(stdout.split(' ')[-1].rstrip()) + return nemsdims def get_timeinfo(ncfile): - """ get_timeinfo(ncfile) - - function to return datetime objects of initialized time and valid time - input: ncfile - string to path to netCDF file - returns: inittime, validtime - datetime objects - nfhour - integer forecast hour - """ - try: - import netCDF4 as nc - except ImportError: - print("Python Error!") - print("netCDF4 Python module not available. Do you have the proper Python available in your environment?") - print("Hera: module use -a /contrib/modulefiles && module load anaconda/2.3.0") - print("Dell: module load python/3.6.3") - print(" ") - import datetime as dt - import re - ncf = nc.Dataset(ncfile) - time_units = ncf['time'].units - date_str = time_units.split('since ')[1] - date_str = re.sub("[^0-9]", "", date_str) - initstr = date_str[0:10] - inittime = dt.datetime.strptime(initstr,"%Y%m%d%H") - nfhour = int(ncf['time'][0]) - validtime = inittime + dt.timedelta(hours=nfhour) - ncf.close() + """ get_timeinfo(ncfile) + - function to return datetime objects of initialized time and valid time + input: ncfile - string to path to netCDF file + returns: inittime, validtime - datetime objects + nfhour - integer forecast hour + """ + try: + import netCDF4 as nc + except ImportError: + print("Python Error!") + print("netCDF4 Python module not available. Do you have the proper Python available in your environment?") + print("Hera: module use -a /contrib/modulefiles && module load anaconda/2.3.0") + print("Dell: module load python/3.6.3") + print(" ") + import datetime as dt + import re + ncf = nc.Dataset(ncfile) + time_units = ncf['time'].units + date_str = time_units.split('since ')[1] + date_str = re.sub("[^0-9]", "", date_str) + initstr = date_str[0:10] + inittime = dt.datetime.strptime(initstr,"%Y%m%d%H") + nfhour = int(ncf['time'][0]) + validtime = inittime + dt.timedelta(hours=nfhour) + ncf.close() - return inittime, validtime, nfhour + return inittime, validtime, nfhour diff --git a/ush/refactor_4nco_global.sh b/ush/refactor_4nco_global.sh index e57e2eb237..90bf44dc8d 100644 --- a/ush/refactor_4nco_global.sh +++ b/ush/refactor_4nco_global.sh @@ -78,11 +78,11 @@ done # Create and populate gdas scripts $svnmkdirp $target_gdas/scripts -flist="exglobal_enkf_innovate_obs.sh.ecf" +flist="exglobal_enkf_innovate_obs.sh" for file in $flist; do $svncopy $source_path/scripts/$file $target_gdas/scripts/ done -flist="exglobal_enkf_fcst.sh.ecf exglobal_enkf_inflate_recenter.sh.ecf exglobal_enkf_post.sh.ecf exglobal_enkf_update.sh.ecf" +flist="exglobal_enkf_fcst.sh exglobal_enkf_inflate_recenter.sh exglobal_enkf_post.sh exglobal_enkf_update.sh" for file in $flist; do $svncopy $source_path/scripts/EnKF/scripts_ncep/$file $target_gdas/scripts/ done @@ -138,7 +138,7 @@ done # Create and populate global_shared scripts $svnmkdirp $target_shared/scripts -flist="exglobal_analysis.sh.ecf" +flist="exglobal_analysis.sh" for file in $flist; do $svncopy $source_path/scripts/$file $target_shared/scripts/ done diff --git a/util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/JGDAS_VMINMON b/util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/JGDAS_ATMOS_VMINMON similarity index 91% rename from util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/JGDAS_VMINMON rename to util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/JGDAS_ATMOS_VMINMON index 3c584893fb..2e0ffac0fd 100755 --- a/util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/JGDAS_VMINMON +++ b/util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/JGDAS_ATMOS_VMINMON @@ -7,11 +7,11 @@ echo `date` $0 `date -u` begin export PS4='$SECONDS + ' ############################### -# Specify NET and RUN name +# Specify NET, RUN, and COMPONENT name ############################## export NET=${NET:-gfs} export RUN=${RUN:-gdas} - +export COMPONENT=${COMPONENT:-atmos} ########################################################### # obtain unique process id (pid) and make temp directories @@ -70,11 +70,11 @@ export p_cyc=`echo ${cdate} | cut -c9-10` export COM_IN=${COM_IN:-${COMROOT}/${NET}/${envir}} M_TANKverf=${M_TANKverf:-${COM_IN}} -M_TANKverfM0=${M_TANKverfM0:-${M_TANKverf}/${RUN}.${PDY}/${cyc}/minmon} -export M_TANKverfM1=${M_TANKverfM1:-${M_TANKverf}/${RUN}.${P_PDY}/${p_cyc}/minmon} +M_TANKverfM0=${M_TANKverfM0:-${M_TANKverf}/${RUN}.${PDY}/${cyc}/$COMPONENT/minmon} +export M_TANKverfM1=${M_TANKverfM1:-${M_TANKverf}/${RUN}.${P_PDY}/${p_cyc}/$COMPONENT/minmon} export M_TANKverf=$M_TANKverfM0 -export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}/${cyc}} +export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}/${cyc}/$COMPONENT} mkdir -p -m 775 $M_TANKverf @@ -89,7 +89,7 @@ export gsistat=${gsistat:-${COMIN}/gdas.t${cyc}z.gsistat} ######################################################## # Execute the script. -${GMONSH:-$SCRgfs/exgdas_vrfminmon.sh.ecf} ${PDY} ${cyc} +${GMONSH:-$SCRgfs/exgdas_atmos_vminmon.sh} ${PDY} ${cyc} err=$? [[ $err -ne 0 ]] && exit $err diff --git a/util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/exgdas_vrfminmon.sh.ecf b/util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/exgdas_atmos_vminmon.sh similarity index 95% rename from util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/exgdas_vrfminmon.sh.ecf rename to util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/exgdas_atmos_vminmon.sh index f55d494fb7..af3e338151 100755 --- a/util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/exgdas_vrfminmon.sh.ecf +++ b/util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/exgdas_atmos_vminmon.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exgdas_vrfminmon.sh.ecf +# Script name: exgdas_vrfminmon.sh # Script description: Runs data extract/validation for GSI normalization diag data # # Author: Ed Safford Org: NP23 Date: 2015-04-10 @@ -26,7 +26,7 @@ then set -x fi -export scr=exgdas_vrfyminmon.sh.ecf +export scr=exgdas_vrfyminmon.sh export RUN_ENVIR=${RUN_ENVIR:-nco} @@ -60,7 +60,7 @@ export MINMON_SUFFIX=${MINMON_SUFFIX:-GDAS} export PDATE=${PDY}${cyc} export NCP=${NCP:-/bin/cp} export NDATE=${NDATE:-/nwprod/util/exec/ndate} -export pgm=exgdas_vrfminmon.sh.ecf +export pgm=exgdas_vrfminmon.sh if [[ ! -d ${DATA} ]]; then mkdir $DATA @@ -118,7 +118,7 @@ elif [[ $rc_reduct -ne 0 ]]; then fi if [[ "$VERBOSE" = "YES" ]]; then - echo "end exgdas_vrfminmon.sh.ecf, exit value = ${err}" + echo "end exgdas_vrfminmon.sh, exit value = ${err}" fi diff --git a/util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/JGFS_VMINMON b/util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/JGFS_ATMOS_VMINMON similarity index 93% rename from util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/JGFS_VMINMON rename to util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/JGFS_ATMOS_VMINMON index bdc78268c1..a0d3503ef3 100755 --- a/util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/JGFS_VMINMON +++ b/util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/JGFS_ATMOS_VMINMON @@ -11,6 +11,7 @@ export PS4='$SECONDS + ' ############################## export NET=${NET:-gfs} export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-atmos} ########################################################### @@ -76,11 +77,11 @@ TANK_USE_RUN=${TANK_USE_RUN:-1} export COM_IN=${COM_IN:-${COMROOT}/${NET}/${envir}} M_TANKverf=${M_TANKverf:-${COM_IN}} -M_TANKverfM0=${M_TANKverfM0:-${M_TANKverf}/${RUN}.${PDY}/${cyc}/minmon} -export M_TANKverfM1=${M_TANKverfM1:-${M_TANKverf}/${RUN}.${P_PDY}/${p_cyc}/minmon} +M_TANKverfM0=${M_TANKverfM0:-${M_TANKverf}/${RUN}.${PDY}/${cyc}/$COMPONENT/minmon} +export M_TANKverfM1=${M_TANKverfM1:-${M_TANKverf}/${RUN}.${P_PDY}/${p_cyc}/$COMPONENT/minmon} export M_TANKverf=$M_TANKverfM0 -export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}/${cyc}} +export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}/${cyc}/$COMPONENT} mkdir -p -m 775 $M_TANKverf @@ -94,7 +95,7 @@ export gsistat=${gsistat:-${COMIN}/gfs.t${cyc}z.gsistat} ######################################################## # Execute the script. -${GMONSH:-$SCRgfs/exgfs_vrfminmon.sh.ecf} ${PDY} ${cyc} +${GMONSH:-$SCRgfs/exgfs_atmos_vminmon.sh} ${PDY} ${cyc} err=$? [[ $err -ne 0 ]] && exit $err diff --git a/util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/exgfs_vrfminmon.sh.ecf b/util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/exgfs_atmos_vminmon.sh similarity index 95% rename from util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/exgfs_vrfminmon.sh.ecf rename to util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/exgfs_atmos_vminmon.sh index 1a182f9fc3..98e33c708d 100755 --- a/util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/exgfs_vrfminmon.sh.ecf +++ b/util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/exgfs_atmos_vminmon.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exgfs_vrfminmon.sh.ecf +# Script name: exgfs_vrfminmon.sh # Script description: Runs data extract/validation for GSI normalization diag data # # Author: Ed Safford Org: NP23 Date: 2015-04-10 @@ -26,7 +26,7 @@ then set -x fi -export scr=exgfs_vrfyminmon.sh.ecf +export scr=exgfs_vrfyminmon.sh export RUN_ENVIR=${RUN_ENVIR:-nco} export NET=${NET:-gfs} @@ -59,7 +59,7 @@ export MINMON_SUFFIX=${MINMON_SUFFIX:-GFS} export PDATE=${PDY}${cyc} export NCP=${NCP:-/bin/cp} export NDATE=${NDATE:-/nwprod/util/exec/ndate} -export pgm=exgfs_vrfminmon.sh.ecf +export pgm=exgfs_vrfminmon.sh @@ -119,7 +119,7 @@ elif [[ $rc_reduct -ne 0 ]]; then fi if [[ "$VERBOSE" = "YES" ]]; then - echo "end exgfs_vrfminmon.sh.ecf, exit value = ${err}" + echo "end exgfs_vrfminmon.sh, exit value = ${err}" fi diff --git a/util/Ozone_Monitor/CMakeLists.txt b/util/Ozone_Monitor/CMakeLists.txt index b8f928a61d..03f5129cfc 100644 --- a/util/Ozone_Monitor/CMakeLists.txt +++ b/util/Ozone_Monitor/CMakeLists.txt @@ -1,9 +1,9 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 2.8) if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) # I am top-level project. if( NOT DEFINED ENV{CC} ) find_path( crayComp "ftn" ) -# find_path( wcossIntel "mpfort" ) + find_path( wcossIntel "mpfort" ) find_path( intelComp "ifort" ) find_path( pgiComp "pgf90" ) if( crayComp ) @@ -22,7 +22,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) message("Setting env for wcoss intel") set(ENV{CC} "mpcc") set(ENV{CXX} "mpCC") -# set(ENV{FC} "mpfort") + set(ENV{FC} "mpfort") endif() if( pgiComp ) set(ENV{CC} "pgcc") @@ -32,8 +32,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) endif() project(COV_Calc) enable_language (Fortran) -# find_package(OpenMP) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../../cmake/Modules/") + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib") include(${CMAKE_SOURCE_DIR}/../../cmake/Modules/setPlatformVariables.cmake) include(${CMAKE_SOURCE_DIR}/../../cmake/Modules/setIntelFlags.cmake) include(${CMAKE_SOURCE_DIR}/../../cmake/Modules/setGNUFlags.cmake) @@ -64,20 +64,40 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) message("Setting PGI flags") setPGI() endif() + + cmake_policy(SET CMP0009 NEW) + find_package(OpenMP) + message("found openmp with flag ${OPENMP_Fortran_FLAGS}") + +# Set Host specific flags and options setHOST() + + if(FIND_HDF5_HL) + find_package(HDF5 COMPONENTS C HL Fortran_HL ) + elseif(FIND_HDF5) + find_package(HDF5) + endif() + find_package(MPI REQUIRED) + message("MPI version is ${MPI_Fortran_VERSION}") + message("MPI f90 version is ${MPI_Fortran_HAVE_F90_MODULE}") + message("MPI f08 version is ${MPI_Fortran_HAVE_F08_MODULE}") + add_definitions(${MPI_Fortran_COMPILE_FLAGS}) include_directories(${MPI_Fortran_INCLUDE_DIRS} ${MPI_INCLUDE_PATH} "./" ${CMAKE_INCLUDE_OUTPUT_DIRECTORY}) link_directories(${MPI_Fortran_LIBRARIES} ${ARCHIVE_OUTPUT_PATH} ) find_package( NetCDF REQUIRED) - if(FIND_HDF5_HL) - find_package(HDF5 COMPONENTS C HL Fortran_HL ) - elseif(FIND_HDF5) - find_package(HDF5) + if(NETCDF4) + if(CMAKE_MAJOR_VERSION GREATER 2) + find_package( ZLIB ) + endif() + find_package( CURL ) endif() + find_package( W3NCO ) - set(NCDIAG_INCS "${PROJECT_BINARY_DIR}/libsrc/ncdiag") + set(BUILD_NCDIAG ON) + set(NCDIAG_INCS "${PROJECT_BINARY_DIR}/libsrc/ncdiag") add_subdirectory(${PROJECT_SOURCE_DIR}/../../src/ncdiag ${PROJECT_BINARY_DIR}/libsrc/ncdiag) set(NCDIAG_LIBRARIES ncdiag ) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) @@ -86,4 +106,3 @@ endif() add_subdirectory(nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd) add_subdirectory(nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd) add_subdirectory(data_xtrct/sorc/make_base.fd) - diff --git a/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/fix/gdas_oznmon_base.tar b/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/fix/gdas_oznmon_base.tar new file mode 100644 index 0000000000000000000000000000000000000000..0526bd1b1e89ef0376d2957a0fae43fe0fb4c944 GIT binary patch literal 30720 zcmeI4S+d+j7KZ)IDzpGlCzU5Fs|sJ*NPy@lJ=mp^ zD)ZNwC*3#i-oAeM_Vq9Ce*WfZ{qE_*>leo#h9iaW!Wb7!vixs?^X-4RbVmw*3nmN%0C zEcb_~c%Pj6oS>)pqne))R&@amI( zeEY*sCLRc4|*{Qo5y`&^9l@c+L}qlf?h60`NV_aF+qd;7!7r;qRdu-so@ zO0xDp=l@b4us*~`{(lgMpI>HC0Z@m3^Z)GX&f)(T3Po`>sptPows{T3;bYnnQXbU- z@khagBwzH))~&{sQ2MD`U5Pc4GPi@3a!qbrwQH=ww5y-_fiX%*dSi%W{g zZGajAS;fUN5OV76noBUX0g$y;??TbF1g~}DYAI_n)#EId<#UJxZmD^VvFdZVV%89f zo|ZLO7yWoH>tl0J3Zbqprl5DnwRmT9?pN!Yy)Bjux*a@hNiH+NZGD7hCvj| zCVqPmu0o@nYi)bTD%NCpJh&F%cVL^g<6_oos}D{gK<+^4uwPwxa=2KZMI=8h2JTy{ zKjRtJ6zdR_w7TTCJsKic8Xq?ZOIlMgb&?}%B68WU`Za~@lFE@StNkq+2}`ZxQBqYJ zi6mEuJr;GtN+gw z`0(AwPwwSUXyYGL{D*kY`~MJgFx3A;w)6s!$>#s9dF20phTJVf0K^pB9Zs#ITsepT z|AP8CR`Lt(e*R{$xO&V)!8(7z9)A=f_0@v#9EjA3od=P+!t)?fZ`=_r-VlbRtS;P@ zHCjBrT;_1j41X`u=p_suF_Kxm3DK4wzoZq5N;lPi`;9?d&Fbj95|y@!b_93#d_~bj?!o^Jpwl?ZA?$$~%*eR}!49})49DH`q@ z0#btM+}XfsE_UEG#I=0kMocOQ`|s>^g{IFG;0eBWdnP zn8@KX5F5#6L^n2jAELBo7XcxU&0#Tuq`~^oo}|5)kw1}mTM)IYGa~(UTY-P}SV*!+ zcI>GtYmw{6l&gjp(1--?qHE{@m5ZiYGa}W+LlD)~r&LGI=~iqL>LhD(;BX4Eu3RCn zEh*YN8mZ*VPj>5?HEXJ_>YkJvqQPRy+8j~*Tu!R}4ugbb-`OL*E<-m zvtK(0A~o?MN9RDKx_BN$s+t`U^;$eM(WabpRO-<wK#u!X9?EY^BH%5Mh2OK8~Q# z)|`hIp>%4aBc{~IKbM?RX(XAnf6=XFdy(>eh_FUP`&~APO{y!kgbjknX@IsQMHC3v zoV&G0SGmZ3L_TKOQy#BH{+R$tT`P{Z5_YG$A;N?^Jn!aIW*W_YZ9k%zYGw3R5#jl1 zV+@|!LRW71Ey8X`m0dQyiXr>$ZH@his-=msF+yk*ED57JUJ`+92`QBZM3^DE%?VC4 zy2?fNBg(E)rW{=JzIcaJ%E+E%M2d(262VprNLiqenKUNOh;D55K1B3m z$cIKTlW@tFtO*(bBa(fI{KFbz*h1hLks_Ao*egd8w-zKx*Cfu)(GQ|XqEBH$xkhzf zY(t~qjHr{e5%vH?g!V3~)rCfx#-pk;O-j0)qhBXoN}})ve@3LgK7>Yj#s3%;<)!7( z#IfyhC0VlGW3Tj-%Mq_5r!yjr!{z(kG@>9!eQ5Mi>5SGGjY1&za2Oz^fsbpY#&)M` zYOfAKlviKjlS%?9qazV{slt>VwXMNUd2%v{*)Xs3hvwn6VU{R;U+7U8D^%tQxNUsxRWi z(T48GA`?DD_F*I+%?)ou6)nO{(y?evn(Wb4E+R6u4-p2C8dkTEi7+-5g8MDhk3<4B zQis%B#7o6}D{#$-X1}%{5#bq8ZMP^ii!38Snk-SBDfm3wa}lO*Vs>E*?`A}5@sHtJ zW{`^!8(FMnM?{oGLje*2Lkc-!6+&QUiMElX3DH$wWG{_~YGGUQ0}<~sB1z*k5DJWD z95+|GZQIQ=q8ppNOO6PLC{UYi&`D^NVvZLr0Rqi7?JP;aSyOKh&WLVo_FhDIbD~D& z8qo%P(T65w4B3p)wzv`p#OHI7-CU#9kt6Fu(}ZbUNC7t>ZWXFbZpSfgRvn9D-dv_rXgN)x$vmS#jZHhUk}sIdD=>fdSPS1J#H z>Zbs7(%tH(jHscATWT^RQsXSQ?WYkrS+1j`4igPArHU#vLbOM+M4Q|*8P^Qrj7a0X zV-Qi`qK2hb7b{H#zn`8p3GwO1X{!d$vEQ`KjqR#0vLBHI{^1g5LlXw^J3t1c0&NiOnutZu^pQDhfJNSuvBp@`m@NbJ;F+iC#`aw!Skb+fK=k-dm`Y$9n!0~JxMynCSi zeguaZ2s>y*JSR<)TN;h9ToyS1Q6@>eAPU5c(RaT_%19lzxA@o%M5g3TX(q|m`GxjW z2OtWGqI%a~=^Z8Bin(Yaa$cf(2?XDf1Gm!|(T&aCrE74FY^`d2Sc2|~_IFFd$QCt# z9uPqR%BY#yqDH|PQRn$FG-Bq7y6B}5!n7kj3AJs4m)B3!0%8qhhNF>WMs#Dd_tA(5 zsA6S?WEX;^NzjYH)r^f>G{#5vKyh7;^3A3GElan;J}Vq!qgMR0l{levM3DX~aBsO}+~Tf*z?DscjIO z4U_LXHA=%yqZ35_{dw9`VVh2XXr|FQ5Y2w=9EfJWb`C_K7{@sf&3;YLF&7}Ec{Sxy zSv2Gq9koPRb1o9LKSD7gAWHmkyhcq8jUH$Yd22fqX&f`zD_scI!(ifZ7yyu^Cwp|2 zi|j|l+YZw0*zgnTQ@r7wz;Q|&87sM+V&M5R0qL%neU*#sMI@Wh4btv9Mw+tTD5{YN zFhoX`za!$!gOvIV$4sNyuN{GioKStKI5OtuwP3_4qX6VX9g%nuDB1u{h|~?XyAD9a zXy1tKnJ~z-wk}-5k1>y}B1-a1Hn&9vGol-ty-Tujo{myyxJZhG_LrA6Wccth?UQ(U zgY@#&_p6^ihDI{FLgK9Y+uryetr_Au{xBvGJJ)!@9x>XA1T&3P&g8b;T*Fi_?K9dA zKn5k?czLbSK$^!gAXIG@_d}rHqUt&_L@)B7Y&GKjUwRJ@$A| q;6Z^01s)W5P~bs<2L&D!cu?R$fd>U16nIeJL4gMa9uzn)1^x@z^uX%? literal 0 HcmV?d00001 diff --git a/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/JGDAS_VERFOZN b/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/JGDAS_ATMOS_VERFOZN similarity index 91% rename from util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/JGDAS_VERFOZN rename to util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/JGDAS_ATMOS_VERFOZN index cc0754954b..13f71e21b1 100755 --- a/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/JGDAS_VERFOZN +++ b/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/JGDAS_ATMOS_VERFOZN @@ -7,10 +7,11 @@ echo `date` $0 `date -u` begin export PS4='$SECONDS + ' ############################### -# Specify NET and RUN name +# Specify NET, RUN, and COMPONENT name ############################## export NET=${NET:-gfs} export RUN=${RUN:-gdas} +export COMPONENT=${COMPONENT:-atmos} ########################################################### # obtain unique process id (pid) and make temp directories @@ -75,10 +76,10 @@ export p_cyc=`echo ${cdate} | cut -c9-10` # OZN_TANKDIR - WHERE OUTPUT DATA WILL RESIDE # echo "pre-assignment, OZN_TANKDIR = $OZN_TANKDIR" -export TANKverf_ozn=${TANKverf_ozn:-${OZN_TANKDIR}/${RUN}.${PDY}/${cyc}/oznmon} -export TANKverf_oznM1=${TANKverf_oznM1:-${OZN_TANKDIR}/${RUN}.${P_PDY}/${p_cyc}/oznmon} +export TANKverf_ozn=${TANKverf_ozn:-${OZN_TANKDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT/oznmon} +export TANKverf_oznM1=${TANKverf_oznM1:-${OZN_TANKDIR}/${RUN}.${P_PDY}/${p_cyc}/$COMPONENT/oznmon} export COM_IN=${COM_IN:-${COMROOT}/${NET}/${envir}} -export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}} +export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}/$COMPONENT} if [[ ! -d ${TANKverf_ozn} ]]; then mkdir -p -m 775 $TANKverf_ozn @@ -102,7 +103,7 @@ export oznstat=${oznstat:-$COMIN/gdas.t${cyc}z.oznstat} #------------------------------------------------------- # Execute the script. # -${OZNMONSH:-${SCRgdas_ozn}/exgdas_vrfyozn.sh.ecf} ${PDY} ${cyc} +${OZNMONSH:-${SCRgdas_ozn}/exgdas_atmos_verfozn.sh} ${PDY} ${cyc} err=$? [[ $err -ne 0 ]] && exit $err diff --git a/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/exgdas_vrfyozn.sh.ecf b/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/exgdas_atmos_verfozn.sh similarity index 93% rename from util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/exgdas_vrfyozn.sh.ecf rename to util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/exgdas_atmos_verfozn.sh index 8a937e1be8..f28d91db45 100755 --- a/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/exgdas_vrfyozn.sh.ecf +++ b/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/exgdas_atmos_verfozn.sh @@ -5,7 +5,7 @@ set -ax ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exgdas_vrfyozn.sh.ecf +# Script name: exgdas_vrfyozn.sh # Script description: Runs data extract/validation for global ozone diag data # # Author: Ed Safford Org: NP23 Date: 2012-01-18 @@ -32,7 +32,7 @@ set -ax # >0 - some problem encountered # ################################################################################ -export scr=exgdas_vrfyozn.sh.ecf +export scr=exgdas_vrfyozn.sh err=0 @@ -43,6 +43,7 @@ export RUN_ENVIR=${RUN_ENVIR:-nco} export NET=${NET:-gfs} export RUN=${RUN:-gdas} export envir=${envir:-prod} +export COMPONENT=${COMPONENT:-atmos} # Command line arguments export PDY=${1:-${PDY:?}} @@ -51,7 +52,7 @@ export cyc=${2:-${cyc:?}} # Directories export OZN_WORK_DIR=${OZN_WORK_DIR:-$(pwd)} export COM_IN=${COM_IN:-${COMROOT}/${NET}/${envir}} -export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}} +export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}/${cyc}/$COMPONENT} export HOMEgdas_ozn=${HOMEgdas_ozn:-${NWROOT}/gdas.${gdas_oznmon_ver}} export FIXgdas_ozn=${FIXgdas_ozn:-$HOMEgdas/fix} @@ -128,7 +129,7 @@ fi if [[ "$VERBOSE" = "YES" ]]; then - echo "end exgdas_vrfyozn.sh.ecf, exit value = ${err}" + echo "end exgdas_vrfyozn.sh, exit value = ${err}" fi diff --git a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/horiz.f90 b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/horiz.f90 index 60744fdde2..497fc1802f 100644 --- a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/horiz.f90 +++ b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/horiz.f90 @@ -1,5 +1,5 @@ program horiz - use read_diag + use oznmon_read_diag implicit none integer ntype, mls2_levs,mls3_levs diff --git a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/read_diag.f90 b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/oznmon_read_diag.f90 similarity index 90% rename from util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/read_diag.f90 rename to util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/oznmon_read_diag.f90 index 7e592d3a5e..b2c59e9bb8 100644 --- a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/read_diag.f90 +++ b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd/oznmon_read_diag.f90 @@ -1,27 +1,18 @@ !$$$ subprogram documentation block ! . . . . -! subprogram: read_diag read ozone diag file -! prgmmr: hliu org: np20 date: 2009-04-15 +! subprogram: oznmon_read_diag read ozone diag file ! ! abstract: This module contains code to process ozone ! diagnostic files. The module defines structures ! to contain information from the ozone ! diagnostic files and then provides two routines -! to access contents of the file. +! to access contents of the file. Both binary +! and NetCDF formats are supported. ! -! program history log: -! -! contains -! read_ozndiag_header - read ozone diagnostic file header -! read_ozndiag_data - read ozone diagnostic file data -! set_netcdf_read - call set_netcdf_read(.true.) to use nc4 hooks, -! otherwise read file as binary format -! open_ozndiag - open a diag file for reading -! close_ozndiag - close an open diag file !------------------------------------------------------------ -! -module read_diag + +module oznmon_read_diag !--- use ---! @@ -299,19 +290,19 @@ subroutine read_ozndiag_header( ftin, header_fix, header_nlev, new_hdr, istatus call read_ozndiag_header_bin( ftin, header_fix, header_nlev, new_hdr, istatus ) endif - print*, 'ftin = ', ftin - print*, 'header_fix%isis = ', header_fix%isis - print*, 'header_fix%id = ', header_fix%id - print*, 'header_fix%obstype = ', header_fix%obstype - print*, 'header_fix%jiter = ', header_fix%jiter - print*, 'header_fix%nlevs = ', header_fix%nlevs - print*, 'header_fix%ianldate = ', header_fix%ianldate - print*, 'header_fix%iint = ', header_fix%iint - print*, 'header_fix%ireal = ', header_fix%ireal - print*, 'header_fix%iextra = ', header_fix%iextra - - print*, 'istatus = ', istatus - print*, '' + write(6,*) 'ftin = ', ftin + write(6,*) 'header_fix%isis = ', header_fix%isis + write(6,*) 'header_fix%id = ', header_fix%id + write(6,*) 'header_fix%obstype = ', header_fix%obstype + write(6,*) 'header_fix%jiter = ', header_fix%jiter + write(6,*) 'header_fix%nlevs = ', header_fix%nlevs + write(6,*) 'header_fix%ianldate = ', header_fix%ianldate + write(6,*) 'header_fix%iint = ', header_fix%iint + write(6,*) 'header_fix%ireal = ', header_fix%ireal + write(6,*) 'header_fix%iextra = ', header_fix%iextra + + write(6,*) 'istatus = ', istatus + write(6,*) '' end subroutine read_ozndiag_header @@ -349,9 +340,9 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat !--- get global attr ! ! This may look like overkill with a check on each variable - ! name, but due to the genius of the ncdiag library, a - ! failure on these read operations is fatal, because, reasons - ! I guess. Thus, this abundance of caution. + ! name, but a failure on these nc library read operations + ! is fatal. Thus, this abundance of caution verifying the + ! variable exists before attempting to retreive it. ! if( verify_var_name_nc( "date_time" ) ) then call nc_diag_read_get_global_attr(ftin, "date_time", idate) @@ -377,12 +368,6 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat write(6,*) 'WARNING: unable to read global var Observation_type from file ' end if - if( verify_var_name_nc( "Number_of_state_vars" ) ) then - call nc_diag_read_get_global_attr(ftin, "Number_of_state_vars", nsdim ) - else - write(6,*) 'WARNING: unable to read global var Number_of_state_vars from file ' - end if - if( verify_var_name_nc( "pobs" ) ) then call nc_diag_read_get_global_attr(ftin, "pobs", pobs ) else @@ -401,7 +386,6 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat write(6,*) 'WARNING: unable to read global var tnoise from file ' end if - !------------------------------------------------------------------- ! The Anaysis_Use_Flag in the netcdf file resides in the ! obs data rather than global (equivalent of binary file header @@ -438,6 +422,8 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat !--- allocate if necessary + write(6,*) 'header_fix%nlevs, nlevs_last = ', header_fix%nlevs, nlevs_last + if( header_fix%nlevs /= nlevs_last )then if( nlevs_last > 0 )then deallocate( header_nlev ) @@ -455,8 +441,10 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat header_nlev(k)%iouse = iuse_flag(k) end do - deallocate( pobs,gross,tnoise,iuse_flag ) - + if( allocated( pobs )) deallocate( pobs ) + if( allocated( gross )) deallocate( gross ) + if( allocated( tnoise )) deallocate( tnoise ) + if( allocated( iuse_flag )) deallocate( iuse_flag ) end subroutine read_ozndiag_header_nc @@ -511,8 +499,8 @@ subroutine read_ozndiag_header_bin( ftin, header_fix, header_nlev, new_hdr, ista if( header_fix%ireal /= IREAL_RESERVE ) then - print *, '### ERROR: UNEXPECTED DATA RECORD FORMAT' - print *, 'ireal =', header_fix%ireal + write(6,*) '### ERROR: UNEXPECTED DATA RECORD FORMAT' + write(6,*) 'ireal =', header_fix%ireal stop 99 endif @@ -524,6 +512,7 @@ subroutine read_ozndiag_header_bin( ftin, header_fix, header_nlev, new_hdr, ista !--- allocate if necessary + write(6,*) 'header_fix%nlevs, nlevs_last = ', header_fix%nlevs, nlevs_last if( header_fix%nlevs /= nlevs_last )then if( nlevs_last > 0 )then deallocate( header_nlev ) @@ -545,7 +534,11 @@ subroutine read_ozndiag_header_bin( ftin, header_fix, header_nlev, new_hdr, ista header_nlev(k)%err = err(k) header_nlev(k)%iouse = iouse(k) end do - deallocate (pob,grs,err,iouse) + + if( allocated( pob )) deallocate( pob ) + if( allocated( grs )) deallocate( grs ) + if( allocated( err )) deallocate( err ) + if( allocated( iouse )) deallocate( iouse ) end subroutine read_ozndiag_header_bin @@ -628,7 +621,7 @@ subroutine read_ozndiag_data_nc( ftin, header_fix, data_fix, data_nlev, data_ext logical :: test cur_idx = ncdiag_open_id( nopen_ncdiag ) - + !---------------------------------------------------------- ! The binary file read (the original version of the file ! read) is designed to be called in a loop, as it reads @@ -715,12 +708,13 @@ subroutine read_ozndiag_data_nc( ftin, header_fix, data_fix, data_nlev, data_ext data_fix(ii)%obstime = obstime(ii + ((ii-1)*nlevs) ) end do - deallocate( lat, lon, obstime ) + if( allocated( lat )) deallocate( lat ) + if( allocated( lon )) deallocate( lon ) + if( allocated( obstime )) deallocate( obstime ) !--------------------------------- ! load data_nlev structure ! - allocate( data_nlev( header_fix%nlevs,nrecords ) ) allocate( ozobs(nrecords) ) allocate( ozone_inv(nrecords) ) allocate( varinv(nrecords) ) @@ -769,23 +763,23 @@ subroutine read_ozndiag_data_nc( ftin, header_fix, data_fix, data_nlev, data_ext ! All vars used to read the file are dimensioned ! to nrecord, which is nobs * nlevs ! - do jj=0,ntobs-1 + do jj=1,ntobs-1 do ii=1,header_fix%nlevs - data_nlev(ii,jj)%ozobs = ozobs( ii + (jj * nlevs) ) - data_nlev(ii,jj)%ozone_inv = ozone_inv( ii + (jj * nlevs) ) - data_nlev(ii,jj)%varinv = varinv( ii + (jj * nlevs) ) - data_nlev(ii,jj)%sza = sza( ii + (jj * nlevs) ) - data_nlev(ii,jj)%fovn = fovn( ii + (jj * nlevs) ) - data_nlev(ii,jj)%toqf = toqf( ii + (jj * nlevs) ) + data_nlev(ii,jj)%ozobs = ozobs( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%ozone_inv = ozone_inv( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%varinv = varinv( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%sza = sza( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%fovn = fovn( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%toqf = toqf( ii + ((jj-1) * nlevs) ) end do end do - deallocate( ozobs ) - deallocate( ozone_inv ) - deallocate( varinv ) - deallocate( sza ) - deallocate( fovn ) - deallocate( toqf ) + if( allocated( ozobs )) deallocate( ozobs ) + if( allocated( ozone_inv )) deallocate( ozone_inv ) + if( allocated( varinv )) deallocate( varinv ) + if( allocated( sza )) deallocate( sza ) + if( allocated( fovn )) deallocate( fovn ) + if( allocated( toqf )) deallocate( toqf ) ncdiag_open_status(cur_idx)%nc_read = .true. @@ -831,6 +825,7 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex read(ftin,IOSTAT=iflag) ntobs write(6,*) ' READ 1, ntobs, iflag = ', ntobs, iflag + write(6,*) 'header_fix%nlevs, nlevs_last = ', header_fix%nlevs, nlevs_last if( header_fix%nlevs /= nlevs_last )then if( nlevs_last > 0 )then write(6,*) ' DEALLOCATING data_nlev, data_fix, data_mpi' @@ -845,8 +840,9 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex nlevs_last = header_fix%nlevs endif + write(6,*) 'iextra_last = ', iextra_last if (iextra_last > 0) then - deallocate (data_extra) + deallocate ( data_extra ) endif allocate( data_extra(header_fix%iextra,ntobs) ) @@ -869,7 +865,7 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex end do end do - deallocate(tmp_extra) + if( allocated( tmp_extra )) deallocate( tmp_extra ) endif do j=1,ntobs @@ -877,7 +873,7 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex data_fix(j)%lon = tmp_fix(2,j) data_fix(j)%obstime = tmp_fix(3,j) end do - deallocate(tmp_fix) + if( allocated( tmp_fix )) deallocate( tmp_fix ) do j=1,ntobs do i=1,header_fix%nlevs @@ -889,7 +885,7 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex data_nlev(i,j)%toqf = tmp_nlev(6,i,j) end do end do - deallocate(tmp_nlev) + if( allocated( tmp_nlev )) deallocate( tmp_nlev ) nlevs_last = -1 @@ -966,5 +962,5 @@ logical function verify_var_name_nc( test_name ) end function verify_var_name_nc -end module read_diag +end module oznmon_read_diag diff --git a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/read_diag.f90 b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/oznmon_read_diag.f90 similarity index 90% rename from util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/read_diag.f90 rename to util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/oznmon_read_diag.f90 index 7e592d3a5e..b2c59e9bb8 100644 --- a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/read_diag.f90 +++ b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/oznmon_read_diag.f90 @@ -1,27 +1,18 @@ !$$$ subprogram documentation block ! . . . . -! subprogram: read_diag read ozone diag file -! prgmmr: hliu org: np20 date: 2009-04-15 +! subprogram: oznmon_read_diag read ozone diag file ! ! abstract: This module contains code to process ozone ! diagnostic files. The module defines structures ! to contain information from the ozone ! diagnostic files and then provides two routines -! to access contents of the file. +! to access contents of the file. Both binary +! and NetCDF formats are supported. ! -! program history log: -! -! contains -! read_ozndiag_header - read ozone diagnostic file header -! read_ozndiag_data - read ozone diagnostic file data -! set_netcdf_read - call set_netcdf_read(.true.) to use nc4 hooks, -! otherwise read file as binary format -! open_ozndiag - open a diag file for reading -! close_ozndiag - close an open diag file !------------------------------------------------------------ -! -module read_diag + +module oznmon_read_diag !--- use ---! @@ -299,19 +290,19 @@ subroutine read_ozndiag_header( ftin, header_fix, header_nlev, new_hdr, istatus call read_ozndiag_header_bin( ftin, header_fix, header_nlev, new_hdr, istatus ) endif - print*, 'ftin = ', ftin - print*, 'header_fix%isis = ', header_fix%isis - print*, 'header_fix%id = ', header_fix%id - print*, 'header_fix%obstype = ', header_fix%obstype - print*, 'header_fix%jiter = ', header_fix%jiter - print*, 'header_fix%nlevs = ', header_fix%nlevs - print*, 'header_fix%ianldate = ', header_fix%ianldate - print*, 'header_fix%iint = ', header_fix%iint - print*, 'header_fix%ireal = ', header_fix%ireal - print*, 'header_fix%iextra = ', header_fix%iextra - - print*, 'istatus = ', istatus - print*, '' + write(6,*) 'ftin = ', ftin + write(6,*) 'header_fix%isis = ', header_fix%isis + write(6,*) 'header_fix%id = ', header_fix%id + write(6,*) 'header_fix%obstype = ', header_fix%obstype + write(6,*) 'header_fix%jiter = ', header_fix%jiter + write(6,*) 'header_fix%nlevs = ', header_fix%nlevs + write(6,*) 'header_fix%ianldate = ', header_fix%ianldate + write(6,*) 'header_fix%iint = ', header_fix%iint + write(6,*) 'header_fix%ireal = ', header_fix%ireal + write(6,*) 'header_fix%iextra = ', header_fix%iextra + + write(6,*) 'istatus = ', istatus + write(6,*) '' end subroutine read_ozndiag_header @@ -349,9 +340,9 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat !--- get global attr ! ! This may look like overkill with a check on each variable - ! name, but due to the genius of the ncdiag library, a - ! failure on these read operations is fatal, because, reasons - ! I guess. Thus, this abundance of caution. + ! name, but a failure on these nc library read operations + ! is fatal. Thus, this abundance of caution verifying the + ! variable exists before attempting to retreive it. ! if( verify_var_name_nc( "date_time" ) ) then call nc_diag_read_get_global_attr(ftin, "date_time", idate) @@ -377,12 +368,6 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat write(6,*) 'WARNING: unable to read global var Observation_type from file ' end if - if( verify_var_name_nc( "Number_of_state_vars" ) ) then - call nc_diag_read_get_global_attr(ftin, "Number_of_state_vars", nsdim ) - else - write(6,*) 'WARNING: unable to read global var Number_of_state_vars from file ' - end if - if( verify_var_name_nc( "pobs" ) ) then call nc_diag_read_get_global_attr(ftin, "pobs", pobs ) else @@ -401,7 +386,6 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat write(6,*) 'WARNING: unable to read global var tnoise from file ' end if - !------------------------------------------------------------------- ! The Anaysis_Use_Flag in the netcdf file resides in the ! obs data rather than global (equivalent of binary file header @@ -438,6 +422,8 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat !--- allocate if necessary + write(6,*) 'header_fix%nlevs, nlevs_last = ', header_fix%nlevs, nlevs_last + if( header_fix%nlevs /= nlevs_last )then if( nlevs_last > 0 )then deallocate( header_nlev ) @@ -455,8 +441,10 @@ subroutine read_ozndiag_header_nc( ftin, header_fix, header_nlev, new_hdr, istat header_nlev(k)%iouse = iuse_flag(k) end do - deallocate( pobs,gross,tnoise,iuse_flag ) - + if( allocated( pobs )) deallocate( pobs ) + if( allocated( gross )) deallocate( gross ) + if( allocated( tnoise )) deallocate( tnoise ) + if( allocated( iuse_flag )) deallocate( iuse_flag ) end subroutine read_ozndiag_header_nc @@ -511,8 +499,8 @@ subroutine read_ozndiag_header_bin( ftin, header_fix, header_nlev, new_hdr, ista if( header_fix%ireal /= IREAL_RESERVE ) then - print *, '### ERROR: UNEXPECTED DATA RECORD FORMAT' - print *, 'ireal =', header_fix%ireal + write(6,*) '### ERROR: UNEXPECTED DATA RECORD FORMAT' + write(6,*) 'ireal =', header_fix%ireal stop 99 endif @@ -524,6 +512,7 @@ subroutine read_ozndiag_header_bin( ftin, header_fix, header_nlev, new_hdr, ista !--- allocate if necessary + write(6,*) 'header_fix%nlevs, nlevs_last = ', header_fix%nlevs, nlevs_last if( header_fix%nlevs /= nlevs_last )then if( nlevs_last > 0 )then deallocate( header_nlev ) @@ -545,7 +534,11 @@ subroutine read_ozndiag_header_bin( ftin, header_fix, header_nlev, new_hdr, ista header_nlev(k)%err = err(k) header_nlev(k)%iouse = iouse(k) end do - deallocate (pob,grs,err,iouse) + + if( allocated( pob )) deallocate( pob ) + if( allocated( grs )) deallocate( grs ) + if( allocated( err )) deallocate( err ) + if( allocated( iouse )) deallocate( iouse ) end subroutine read_ozndiag_header_bin @@ -628,7 +621,7 @@ subroutine read_ozndiag_data_nc( ftin, header_fix, data_fix, data_nlev, data_ext logical :: test cur_idx = ncdiag_open_id( nopen_ncdiag ) - + !---------------------------------------------------------- ! The binary file read (the original version of the file ! read) is designed to be called in a loop, as it reads @@ -715,12 +708,13 @@ subroutine read_ozndiag_data_nc( ftin, header_fix, data_fix, data_nlev, data_ext data_fix(ii)%obstime = obstime(ii + ((ii-1)*nlevs) ) end do - deallocate( lat, lon, obstime ) + if( allocated( lat )) deallocate( lat ) + if( allocated( lon )) deallocate( lon ) + if( allocated( obstime )) deallocate( obstime ) !--------------------------------- ! load data_nlev structure ! - allocate( data_nlev( header_fix%nlevs,nrecords ) ) allocate( ozobs(nrecords) ) allocate( ozone_inv(nrecords) ) allocate( varinv(nrecords) ) @@ -769,23 +763,23 @@ subroutine read_ozndiag_data_nc( ftin, header_fix, data_fix, data_nlev, data_ext ! All vars used to read the file are dimensioned ! to nrecord, which is nobs * nlevs ! - do jj=0,ntobs-1 + do jj=1,ntobs-1 do ii=1,header_fix%nlevs - data_nlev(ii,jj)%ozobs = ozobs( ii + (jj * nlevs) ) - data_nlev(ii,jj)%ozone_inv = ozone_inv( ii + (jj * nlevs) ) - data_nlev(ii,jj)%varinv = varinv( ii + (jj * nlevs) ) - data_nlev(ii,jj)%sza = sza( ii + (jj * nlevs) ) - data_nlev(ii,jj)%fovn = fovn( ii + (jj * nlevs) ) - data_nlev(ii,jj)%toqf = toqf( ii + (jj * nlevs) ) + data_nlev(ii,jj)%ozobs = ozobs( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%ozone_inv = ozone_inv( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%varinv = varinv( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%sza = sza( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%fovn = fovn( ii + ((jj-1) * nlevs) ) + data_nlev(ii,jj)%toqf = toqf( ii + ((jj-1) * nlevs) ) end do end do - deallocate( ozobs ) - deallocate( ozone_inv ) - deallocate( varinv ) - deallocate( sza ) - deallocate( fovn ) - deallocate( toqf ) + if( allocated( ozobs )) deallocate( ozobs ) + if( allocated( ozone_inv )) deallocate( ozone_inv ) + if( allocated( varinv )) deallocate( varinv ) + if( allocated( sza )) deallocate( sza ) + if( allocated( fovn )) deallocate( fovn ) + if( allocated( toqf )) deallocate( toqf ) ncdiag_open_status(cur_idx)%nc_read = .true. @@ -831,6 +825,7 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex read(ftin,IOSTAT=iflag) ntobs write(6,*) ' READ 1, ntobs, iflag = ', ntobs, iflag + write(6,*) 'header_fix%nlevs, nlevs_last = ', header_fix%nlevs, nlevs_last if( header_fix%nlevs /= nlevs_last )then if( nlevs_last > 0 )then write(6,*) ' DEALLOCATING data_nlev, data_fix, data_mpi' @@ -845,8 +840,9 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex nlevs_last = header_fix%nlevs endif + write(6,*) 'iextra_last = ', iextra_last if (iextra_last > 0) then - deallocate (data_extra) + deallocate ( data_extra ) endif allocate( data_extra(header_fix%iextra,ntobs) ) @@ -869,7 +865,7 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex end do end do - deallocate(tmp_extra) + if( allocated( tmp_extra )) deallocate( tmp_extra ) endif do j=1,ntobs @@ -877,7 +873,7 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex data_fix(j)%lon = tmp_fix(2,j) data_fix(j)%obstime = tmp_fix(3,j) end do - deallocate(tmp_fix) + if( allocated( tmp_fix )) deallocate( tmp_fix ) do j=1,ntobs do i=1,header_fix%nlevs @@ -889,7 +885,7 @@ subroutine read_ozndiag_data_bin( ftin, header_fix, data_fix, data_nlev, data_ex data_nlev(i,j)%toqf = tmp_nlev(6,i,j) end do end do - deallocate(tmp_nlev) + if( allocated( tmp_nlev )) deallocate( tmp_nlev ) nlevs_last = -1 @@ -966,5 +962,5 @@ logical function verify_var_name_nc( test_name ) end function verify_var_name_nc -end module read_diag +end module oznmon_read_diag diff --git a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/time.f90 b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/time.f90 index d6402196aa..d9010cdbd9 100755 --- a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/time.f90 +++ b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd/time.f90 @@ -1,5 +1,5 @@ program main - use read_diag + use oznmon_read_diag use valid use kinds, only: i_kind diff --git a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/ush/ozn_xtrct.sh b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/ush/ozn_xtrct.sh index 5ee05253fe..f05b0081b3 100755 --- a/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/ush/ozn_xtrct.sh +++ b/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/ush/ozn_xtrct.sh @@ -75,7 +75,7 @@ fi # validate=".FALSE." if [[ $VALIDATE_DATA -eq 1 ]]; then - if [[ ! -e $ozn_val_file ]]; then + if [[ ! -e $ozn_val_file && ! -h $ozn_val_file ]]; then echo "WARNING: VALIDATE_DATA set to 1, but unable to locate $ozn_val_file" echo " Setting VALIDATE_DATA to 0/OFF" VALIDATE_DATA=0 @@ -153,8 +153,7 @@ else #--------------------------------------------------------------------------- - # NOTE: If ges && anl are to be processed then add an outer for loop on - # $ozn_ptype + # Outer loop over $ozn_ptype (default values 'ges', 'anl') # echo "ozn_ptype = $ozn_ptype" for ptype in ${ozn_ptype}; do diff --git a/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/JGDAS_VERFRAD b/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/JGDAS_ATMOS_VERFRAD similarity index 92% rename from util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/JGDAS_VERFRAD rename to util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/JGDAS_ATMOS_VERFRAD index c7f4cd45c0..d73146f8c8 100755 --- a/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/JGDAS_VERFRAD +++ b/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/JGDAS_ATMOS_VERFRAD @@ -7,10 +7,11 @@ echo `date` $0 `date -u` begin export PS4='$SECONDS + ' ############################### -# Specify NET and RUN name +# Specify NET, RUN, and COMPONENT name ############################## export NET=${NET:-gfs} export RUN=${RUN:-gdas} +export COMPONENT=${COMPONENT:-atmos} ########################################################### # obtain unique process id (pid) and make temp directories @@ -77,10 +78,10 @@ export p_cyc=`echo ${cdate} | cut -c9-10` # TANKverf - WHERE OUTPUT DATA WILL RESIDE ############################################# export TANKverf=${TANKverf:-${COMROOT}/${NET}/${envir}} -export TANKverf_rad=${TANKverf_rad:-${TANKverf}/${RUN}.${PDY}/${cyc}/radmon} -export TANKverf_radM1=${TANKverf_radM1:-${TANKverf}/${RUN}.${P_PDY}/${p_cyc}/radmon} +export TANKverf_rad=${TANKverf_rad:-${TANKverf}/${RUN}.${PDY}/${cyc}/$COMPONENT/radmon} +export TANKverf_radM1=${TANKverf_radM1:-${TANKverf}/${RUN}.${P_PDY}/${p_cyc}/$COMPONENT/radmon} export COM_IN=${COM_IN:-${COMROOT}/${NET}/${envir}} -export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}} +export COMIN=${COMIN:-${COM_IN}/${RUN}.${PDY}/${cyc}/$COMPONENT} mkdir -p -m 775 $TANKverf_rad @@ -101,7 +102,7 @@ echo " " ######################################################## # Execute the script. -${RADMONSH:-${SCRgfs}/exgdas_vrfyrad.sh.ecf} ${PDY} ${cyc} +${RADMONSH:-${SCRgfs}/exgdas_atmos_verfrad.sh} ${PDY} ${cyc} err=$? if [[ $err -ne 0 ]] ; then diff --git a/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_vrfyrad.sh.ecf b/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_atmos_verfrad.sh similarity index 96% rename from util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_vrfyrad.sh.ecf rename to util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_atmos_verfrad.sh index 771a5a549e..2afbc7e5d0 100755 --- a/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_vrfyrad.sh.ecf +++ b/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_atmos_verfrad.sh @@ -2,7 +2,7 @@ ################################################################################ #### UNIX Script Documentation Block # . . -# Script name: exgdas_vrfyrad.sh.ecf +# Script name: exgdas_vrfyrad.sh # Script description: Runs data extract/validation for global radiance diag data # # Author: Ed Safford Org: NP23 Date: 2012-01-18 @@ -15,7 +15,7 @@ # >0 - some problem encountered # ################################################################################ -export scr=exgdas_vrfyrad.sh.ecf +export scr=exgdas_vrfyrad.sh msg="${scr} HAS STARTED" postmsg "$jlogfile" "$msg" @@ -34,6 +34,7 @@ export RUN_ENVIR=${RUN_ENVIR:-nco} export NET=${NET:-gfs} export RUN=${RUN:-gdas} export envir=${envir:-prod} +export COMPONENT=${COMPONENT:-atmos} # Command line arguments export PDY=${1:-${PDY:?}} @@ -42,7 +43,7 @@ export cyc=${2:-${cyc:?}} # Directories export DATA=${DATA:-$(pwd)} export COM_IN=${COMROOT}/${NET}/${envir} -export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}} +export COMIN=${COMIN:-$COM_IN/${RUN}.${PDY}/${cyc}/$COMPONENT} # Filenames @@ -232,7 +233,7 @@ elif [[ $rc_time -ne 0 ]]; then fi if [[ "$VERBOSE" = "YES" ]]; then - echo "end exgdas_vrfyrad.sh.ecf, exit value = ${err}" + echo "end exgdas_vrfyrad.sh, exit value = ${err}" fi echo "${scr} HAS ENDED" From 87946df29d2e32ef5d864f2db0c181fbe466278a Mon Sep 17 00:00:00 2001 From: jswhit2 Date: Fri, 6 Nov 2020 20:20:32 +0000 Subject: [PATCH 2/4] merge from upstream master --- src/gsi/read_satwnd.f90 | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/gsi/read_satwnd.f90 b/src/gsi/read_satwnd.f90 index b7c53f2c67..1bc4f1b8dc 100644 --- a/src/gsi/read_satwnd.f90 +++ b/src/gsi/read_satwnd.f90 @@ -362,19 +362,6 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis itype=254 endif endif - else if(trim(subset) == 'NC005067' .or. trim(subset) == 'NC005068' .or.& - trim(subset) == 'NC005069') then ! read new EUM BURF - if( hdrdat(1) = r50) then !the range of EUMETSAT satellite IDS - if(hdrdat(9) == one) then ! IR winds - itype=253 - else if(hdrdat(9) == two) then ! visible winds - itype=243 - else if(hdrdat(9) == three) then ! WV cloud top - itype=254 - else if(hdrdat(9) >= four) then ! WV deep layer, monitored - itype=254 - endif - endif else if(trim(subset) == 'NC005044' .or. trim(subset) == 'NC005045' .or. & trim(subset) == 'NC005046') then if( hdrdat(1) >=r100 .and. hdrdat(1) <=r199 ) then ! the range of JMA satellite IDS @@ -502,8 +489,6 @@ subroutine read_satwnd(nread,ndata,nodata,infile,obstype,lunout,gstime,twind,sis if ( itype == -1 ) cycle loop_report ! unassigned itype - if ( itype == -1 ) cycle loop_report ! unassigned itype - ! Match ob to proper convinfo type ncsave=0 matchloop:do ncx=1,ntmatch From a297111b3e3f0ceff025eea661736410c71a6e39 Mon Sep 17 00:00:00 2001 From: jswhit2 Date: Wed, 10 Nov 2021 20:32:31 +0000 Subject: [PATCH 3/4] remove unneeded files --- .../Testing/Temporary/CTestCostData.txt | 1 - cmake/Modules/Testing/Temporary/LastTest.log | 3 -- cmake/Modules/comp_src.pl | 15 ------ modulefiles/modulefile.ProdGSI.wcoss | 47 ------------------- 4 files changed, 66 deletions(-) delete mode 100644 cmake/Modules/Testing/Temporary/CTestCostData.txt delete mode 100644 cmake/Modules/Testing/Temporary/LastTest.log delete mode 100755 cmake/Modules/comp_src.pl delete mode 100644 modulefiles/modulefile.ProdGSI.wcoss diff --git a/cmake/Modules/Testing/Temporary/CTestCostData.txt b/cmake/Modules/Testing/Temporary/CTestCostData.txt deleted file mode 100644 index ed97d539c0..0000000000 --- a/cmake/Modules/Testing/Temporary/CTestCostData.txt +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/cmake/Modules/Testing/Temporary/LastTest.log b/cmake/Modules/Testing/Temporary/LastTest.log deleted file mode 100644 index 811fffbb04..0000000000 --- a/cmake/Modules/Testing/Temporary/LastTest.log +++ /dev/null @@ -1,3 +0,0 @@ -Start testing: Apr 08 18:46 UTC ----------------------------------------------------------- -End testing: Apr 08 18:46 UTC diff --git a/cmake/Modules/comp_src.pl b/cmake/Modules/comp_src.pl deleted file mode 100755 index 510be2504f..0000000000 --- a/cmake/Modules/comp_src.pl +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/perl - - @list = @ARGV; - foreach(@list) { - $file = $_; - $compfile = "../../../P2/cmake/Modules/".$file; - $diffs = `diff $file $compfile`; - if($diffs != '') { - print "------------------------------------\n"; - print "$file\n"; - print "$diffs\n"; - print "------------------------------------\n"; - } - } - diff --git a/modulefiles/modulefile.ProdGSI.wcoss b/modulefiles/modulefile.ProdGSI.wcoss deleted file mode 100644 index 951a91efea..0000000000 --- a/modulefiles/modulefile.ProdGSI.wcoss +++ /dev/null @@ -1,47 +0,0 @@ -#%Module###################################################################### -## NOAA-EMC/GSI -##_____________________________________________________ -proc ModulesHelp { } { -puts stderr "Set environment variables for NOAA-EMC/GSI" -puts stderr "This module initializes the environment " -puts stderr "for the Intel Compiler Suite $version\n" -} -module-whatis " NOAA-EMC/GSI whatis description" - -setenv COMP ifort -setenv COMP_MP mpfort -setenv COMP_MPI mpiifort - -setenv C_COMP icc -setenv C_COMP_MP mpcc - -setenv FFLAGS_COM "-fp-model source" -setenv LDFLAGS_COM "-mkl" - -set WRF_SHARED_VER v1.1.0 -set WRF_SHARED_ROOT /nwprod/sorc/wrf_shared.fd -setenv WRF_SHARED_PATH ${WRF_SHARED_ROOT} - -# Known conflicts - -# Loading Intel Compiler Suite -module load ics/15.0.3 - -# Loading ibmpe -module load ibmpe -module load lsf - -# Loading nceplibs modules -module load NetCDF/4.2 -module load bufr/v11.0.0 -module load nemsio/v2.2.1 -module load sfcio/v1.0.0 -module load sigio/v2.1.0 -module load sp/v2.0.2 -module load w3nco/v2.0.6 -module load w3emc/v2.2.0 -module load crtm/v2.2.3 -module load bacio/v2.0.2 - -module use /usrx/local/dev/modulefiles -module load cmake From ca24cef4b1f3c2eb18369669d7e735d8a03fbe90 Mon Sep 17 00:00:00 2001 From: Jeffrey S Whitaker Date: Wed, 20 Sep 2023 11:19:17 -0500 Subject: [PATCH 4/4] fix for zero reference pressure for total ozone (causes Inf in log(p)) --- src/enkf/enkf_obsmod.f90 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/enkf/enkf_obsmod.f90 b/src/enkf/enkf_obsmod.f90 index ba4b2946b1..ea8f6446fb 100644 --- a/src/enkf/enkf_obsmod.f90 +++ b/src/enkf/enkf_obsmod.f90 @@ -262,7 +262,6 @@ subroutine readobs() allocate(corrlengthsq(nobstot),lnsigl(nobstot),obtimel(nobstot)) lnsigl=1.e10 do nob=1,nobstot - oblnp(nob) = -log(obpress(nob)) ! distance measured in log(p) units if (obloclon(nob) < zero) obloclon(nob) = obloclon(nob) + 360._r_single radlon=deg2rad*obloclon(nob) radlat=deg2rad*obloclat(nob) @@ -283,6 +282,13 @@ subroutine readobs() lnsigl(nob)=latval(deglat,lnsigcutoffnh,lnsigcutofftr,lnsigcutoffsh) end if endif + ! total column ozone has pressure set to zero, set to 0.001Pa + ! and turn vertical localization off (no effect if modelspace_vloc=T) + if (obpress(nob) < 0.001 .and. obtype(nob)(1:3) .eq. ' oz') then + lnsigl(nob) = 1.e30 ! turn ob-space vert localization off + obpress(nob) = 0.001 ! set to a non-zero value + endif + oblnp(nob) = -log(obpress(nob)) ! distance measured in log(p) units corrlengthsq(nob)=latval(deglat,corrlengthnh,corrlengthtr,corrlengthsh)**2 if ( (obtype(nob)(1:3) == 'dbz' .or. obtype(nob)(1:3) == ' rw') .and. l_use_enkf_directZDA ) then corrlengthsq(nob)=latval(deglat,corrlengthrdrnh,corrlengthrdrtr,corrlengthrdrsh)**2