From f56d8b05ba570b5968b9289b810dba099a76ad42 Mon Sep 17 00:00:00 2001 From: Shelley Melchior Date: Mon, 25 Apr 2022 18:08:04 +0000 Subject: [PATCH 01/78] Squashed commit of the following: commit cfc992f5f347c04b1856ce0aef6fff78254d4155 Merge: 2b39440 4e238c5 Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Fri Apr 15 14:02:16 2022 -0400 Merge pull request #7 from NOAA-EMC/feature/prepobs.SATEM.fix feature/prepobs.SATEM.fix corrects JDATE and IDSAT types for WCOSS2 compiler commit 4e238c5a30c233a734341a3c8992438606e082ca Author: Iliana Genkova Date: Fri Apr 15 16:54:49 2022 +0000 Added comments commit a8bd7d7c728e6ace977d1dbe5020e3037604ed88 Author: Iliana Genkova Date: Fri Apr 15 14:17:26 2022 +0000 Changed variable type and definitions,JDATE and IDSAT, b/c WCOSS2 compiler commit 211f42ce0c0469ffaf9afd9f9dade652682637eb Author: Iliana Genkova Date: Fri Apr 15 03:09:43 2022 +0000 Fixes for including ATOVS (SATEMP) in cdas prepbufr commit d10b79e4bc6e19aaff3bc6743154cf08e28e9a64 Merge: 13bbcc0 2b39440 Author: iliana Genkova <59100254+ilianagenkova@users.noreply.github.com> Date: Thu Apr 7 18:54:29 2022 -0500 Merge pull request #5 from NOAA-EMC/release/prepobs.v1.0.0 Release/prepobs.v1.0.0 commit 2b394401d61923db3940bb55bf2b3d64800f3447 Merge: 7467fe6 c562d0f Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Tue Mar 29 20:24:21 2022 -0400 Merge pull request #3 from NOAA-EMC/feature/rel_prepobs.v1.0.0_div0 Comment compute/print of "nave" as nonessential that causes division by zero commit c562d0f9426bd9cf6d2569bdfdd0d56af1b3cc90 Author: Iliana Genkova Date: Fri Mar 18 21:35:54 2022 +0000 Comment compute/print of nave as it's nonessential --- sorc/prepobs_prepdata.fd/prepdata.f | 8 ++++++-- sorc/prepobs_prepdata.fd/w3xtovseds.f | 7 +++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/prepdata.f b/sorc/prepobs_prepdata.fd/prepdata.f index a38ca76..885f323 100644 --- a/sorc/prepobs_prepdata.fd/prepdata.f +++ b/sorc/prepobs_prepdata.fd/prepdata.f @@ -1335,6 +1335,8 @@ C 2020-09-14 S. Melchior -- In subroutine PREP, added ability to C process new WMO BUFR sequence Meteosat AMV data from subsets: C 005067, 005068, 005069. +C 2022-05-15 I. Genkova -- In subroutine SATEDS, updated IDSAT(4) to +C IDSAT(8) to accomodate WCOSS2 compiler C C C USAGE: @@ -3106,7 +3108,7 @@ PROGRAM PREPOBS_PREPDATA $ FLACMS,IACFTH,SUBSKP,JPGPSD,GWINDO,RASS,TWINDO,JPWDSD,IWWNDO, $ FLDMFR,WRMISS,SKGP45,JPASCD,IAWNDO,npkrpt,SKGNSS NAMELIST/PARM/IUNIT - CALL W3TAGB('PREPOBS_PREPDATA',2021,0175,0050,'EMC') + CALL W3TAGB('PREPOBS_PREPDATA',2022,0105,0050,'EMC') C DETERMINE MACHINE WORD LENGTH (BYTES) FOR BOTH INTEGERS AND REALS CALL WORDLENGTH(LWI,LWR) PRINT 2213, LWI,LWR @@ -12629,6 +12631,8 @@ SUBROUTINE GETC06(NN,CYCLET,*,*) C - Defined IDSDAT to eliminate Boundary Run-Time Check Failures. C - Modified the code to handle invalid float errors during the C run when the code was compiled with debug options enabled. +C 2022-04-15 I. GENKOVA -- UPDATED IDSAT(4) TO IDSAT(8) TO ACCOMODATE +C WCOSS2 COMPILER C C USAGE: CALL SATEDS C INPUT FILES: @@ -12672,7 +12676,7 @@ SUBROUTINE SATEDS CHARACTER*8 STNPRT,STNID,DSNAME,SUBSET_d LOGICAL SATMST,TR80KM,TOVEDS INTEGER IBUF(140),JRTRV(3),NUMOB(5,4,2,4,4),KEPOB(5,4,2,4), - $ MSTOB(5,4,2,4),IDATA(MAXOBS),KSATOB(3),IDSAT(4),ISAMPLE(2) + $ MSTOB(5,4,2,4),IDATA(MAXOBS),KSATOB(3),IDSAT(8),ISAMPLE(2) INTEGER(8) IDSDAT,IDSDMP_8 REAL(8) BMISS,obs8_8,alon_8,alat_8 COMMON/ADP/ISATOB,PMAND(23),RDATA(MAXOBS),IPRINT diff --git a/sorc/prepobs_prepdata.fd/w3xtovseds.f b/sorc/prepobs_prepdata.fd/w3xtovseds.f index 39624df..6dc89f1 100644 --- a/sorc/prepobs_prepdata.fd/w3xtovseds.f +++ b/sorc/prepobs_prepdata.fd/w3xtovseds.f @@ -68,6 +68,9 @@ C 2020-01-09 J. Dong -- In subroutine W3XTOVSEDS, changed the windowing C decade from 20 to 40 for cases when the year is represented by C 2 digits instead of 4. + +C 2022-05-15 I. GENKOVA -- DEFINED IDSAT AS INTEGER(8) TO ACCOMODATE +C COMPILER ON WCOSS2 C C USAGE : CALL W3XTOVSEDS(IUNIT,IBDATE,IBUFTN,ISATOB,PBOT,DSNAME, C IDSDAT,IDSDMP_8,IERR) @@ -217,8 +220,7 @@ SUBROUTINE W3XTOVSEDS(IUNIT,IBDATE,IBUFTN,ISATOB,PBOT,DSNAME, REAL GEOOPR(18),TLAYER(15),PLAYER(16),RINC(5) INTEGER IBUFTN(140),ISATOB(3),JDATE(5),JDUMP(5),IBIT(2) - - INTEGER(8) IDSDMP_8,JDUMP_8(5),KDATE(8),LDATE(8) + INTEGER(8) IDSDAT, IDSDMP_8,JDUMP_8(5),KDATE(8),LDATE(8) CHARACTER*8 SUBSET,DSNAME DATA NUMLVL/0/,ISTLVL/0/ @@ -289,6 +291,7 @@ SUBROUTINE W3XTOVSEDS(IUNIT,IBDATE,IBUFTN,ISATOB,PBOT,DSNAME, JFIRST = 1 IUNITL = IUNIT CALL DUMPBF(IUNIT,JDATE,JDUMP) + print'(" w3xtovseds output for jdate and jdump ")' print'(" CENTER DATE (JDATE) = ",5(I0,1X))', jdate print'(" DUMP DATE (JDUMP) = ",5(I0,1X))', jdump print'(1X)' From 6303fb733bfaa438b4447ece787f117b80dc64f3 Mon Sep 17 00:00:00 2001 From: Shelley Melchior Date: Sun, 15 May 2022 21:15:07 +0000 Subject: [PATCH 02/78] Squashed commit of the following: commit d10b79e4bc6e19aaff3bc6743154cf08e28e9a64 Merge: 13bbcc0 2b39440 Author: iliana Genkova <59100254+ilianagenkova@users.noreply.github.com> Date: Thu Apr 7 18:54:29 2022 -0500 Merge pull request #5 from NOAA-EMC/release/prepobs.v1.0.0 Release/prepobs.v1.0.0 commit 2b394401d61923db3940bb55bf2b3d64800f3447 Merge: 7467fe6 c562d0f Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Tue Mar 29 20:24:21 2022 -0400 Merge pull request #3 from NOAA-EMC/feature/rel_prepobs.v1.0.0_div0 Comment compute/print of "nave" as nonessential that causes division by zero commit c562d0f9426bd9cf6d2569bdfdd0d56af1b3cc90 Author: Iliana Genkova Date: Fri Mar 18 21:35:54 2022 +0000 Comment compute/print of nave as it's nonessential --- scripts/exprep_post.sh | 361 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 319 insertions(+), 42 deletions(-) diff --git a/scripts/exprep_post.sh b/scripts/exprep_post.sh index 29d17ab..259a3f4 100755 --- a/scripts/exprep_post.sh +++ b/scripts/exprep_post.sh @@ -3,17 +3,20 @@ echo "-------------------------------------------------------------" echo "exprep_post.sh - Runs various post-analysis processing " echo " steps on the PREPBUFR files (removes or " -echo " masks restricted data) " +echo " masks restricted data from both today's " +echo " PREPBUFR files and from AIRCAR and " +echo " AIRCFT Table A entries in 2-day old " +echo " PREPBUFR files). " echo " - GDAS only: Identify TimeTwin duplicate " echo " upper-air (RAOB, PIBAL, DROP) wind " -echo " report parts " +echo " report parts. " echo " - 18Z GDAS only: Reformat GDAS received, " echo " selected, and assimilated data counts " echo " (both satellite and non-satellite) for " echo " all four cycles for today and save the " echo " result in the monthly archive directory " echo " (run monthly summary on the second day " -echo " of the next month and post to web) " +echo " of the next month and post to web). " echo " - 18Z GDAS only: Update the Master Ship " echo " Station List based on any new " echo " info read from the updated VOS ship " @@ -49,6 +52,11 @@ echo " processing (Melchior) " echo " Jul 15 2020 - Modified $path variable to include (or exclude) " echo " $COMPONENT subdir based on GFS version. " echo " Dec 09 2021 - Updated for use on WCOSS2 (Esposito) " +echo " ??? ?? ???? - Added new "remorest" processing to remove restricted " +echo " data from 2-day old PREPBUFR files (Keyser). " +echo " ??? ?? ???? - Added logic to handle PREPBUFR center times that are " +echo " not on the whole hour (needed for new RTMA_RU runs) " +echo " (Keyser). " ############################################################################### # NOTE: NET is gfs for the gdas RUN (as for the gfs RUN) @@ -67,6 +75,8 @@ if [ ! -s break ]; then fi cat break > $pgmout +PROCESS_REMOREST_dm2=${PROCESS_REMOREST_dm2:-NO} + hr_fraction="" set +u if [ -n "$cycM" ]; then @@ -128,53 +138,122 @@ CENTERED ON $cdate10" dot_tmmark=".$tmmark" [ $net = gdas -o $net = gfs -o $net = cdas ] && dot_tmmark="" -######################################################## -# Remove or mask restricted data from PREPUFR files -######################################################## +############################################################## +# Remove or mask restricted data from today's PREPBUFR files +############################################################## + +# If either the restriction indicator (mnemonic RSRD) is set for a report, or +# the report is in a Table A entry pre-determined to contain only restricted +# reports, then the report is always restricted {regardless of the time in +# hours for the expiration on restriction (mnemonic EXPRSRD)}. +# ---> Since we are running in near-realtime, there is no need to test on +# the value of EXPRSRD. This will always be > current time difference. +# ---> For all Table A entries listed in parm card namelist switch +# "MSG_RESTR" (see below): +# All reports are considered to be restricted by definition of this +# switch. They will be skipped by program BUFR_REMOREST. +# ---> For all Table A entries listed in parm card namelist switch +# "MSG_MIXED" (see below): +# RSRD may not be set for all reports. Those with RSRD set are +# considered to be restricted regardless of EXPRSRD because +# "DIFF_HR" (the difference in hours between the current UTC wall- +# clock date and the PREPBUFR file center date),is exported as 0 +# into program BUFR_REMOREST (EXPRSRD will always be > actual +# DIFF_HR since we are running in near-realtime). They will be +# skipped by program BUFR_REMOREST. Those reports that do not have +# RSRD set are considered to be non-restricted and will be retained +# by program BUFR_REMOREST. +# ---> For all Table A entries listed in parm card namelist switch +# "MSG_MASKA" (see below): +# All reports with a dump report type listed in namelist switch +# IMASK_T29 (see below) may have RSRD set for some reports. Those +# with RSRD set are considered to be restricted regardless of +# EXPRSRD because "DIFF_HR" (the difference in hours between the +# current UTC wall-clock date and the PREPBUFR file center date), +# is exported as 0 into program BUFR_REMOREST (EXPRSRD will always +# be > actual DIFF_HR since we are running in near-realtime). They +# are not removed, but all occurrences of their ids will be masked +# out by program BUFR_REMOREST. In addition, program BUFR_REMOREST +# re-sets their values for RSRD and EXPRSRD to missing so that the +# reports are no longer considered to be restricted. Reports with a +# dump report type not listed in namelist switch IMASK_T29 are +# considered to be non-restricted and their ids are not masked out +# by program BUFR_REMOREST. +# ----------------------------------------------------------------------------- + + export DIFF_HR=0 -cat <<\EOFparm > bufr_remorest.prepbufr.parm + cat <<\EOFparm > bufr_remorest.prepbufr.parm ========================================================================= - Cards for PREPBUFR Version of BUFR_REMOREST -- Version 15 March 2013 + Cards for PREPBUFR Version of BUFR_REMOREST -- Version ?? ??? 20?? --> GPSIPW can be moved from MSG_RESTR to MSG_MIXED oncw dump interface to PREPDATA can recognize U.S.-provider (ENI) reports which are now restricted &SWITCHES - MSG_RESTR = 'AIRCAR ', ! These are the Table A Entries for - 'MSONET ', ! BUFR messages for which ALL reports - 'GPSIPW ', ! are RESTRICTED and will be REMOVED. - ' ', ! (up to 20) - MSG_MIXED = 'ADPSFC ', ! These are the Table A Entries for - 'AIRCFT ', ! BUFR messages which contain a MIXTURE - ' ', ! of restricted and unrestricted - ' ', ! reports (based on mnemonic "RSRD"). All - ' ', ! restricted reports will be REMOVED. - ' ', ! (up to 20) - MSG_MASKA = 'SFCSHP ', ! These are the Table A Entries for - ' ', ! BUFR messages for which ALL reports - ' ', ! are RESTRICTED if their dump report type is - ' ', ! one of up to 10 possible listed in switch - ' ', ! IMASK_T29 below (each line in IMASK_T29 applies - ' ', ! to the Table A entry in the same line number - ' ', ! here). Restricted reports will not be removed, - ' ', ! but their report ids will be unilaterally - ' ', ! changed to "MASKSTID" - ' ', ! (up to 20) - ' ' - IMASK_T29 = 522,523,8*99999, ! Dump report types restricted in MSG_MASKA(1) - 10*99999, ! Dump report types restricted in MSG_MASKA(2) + MSG_RESTR = 'AIRCAR ', ! These are the Table A Entries for BUFR messages + 'MSONET ', ! for which ALL reports are considered to be + 'GPSIPW ', ! restricted. All reports will be REMOVED by + ' ', ! program BUFR_REMOREST. + ' ', ! (up to 20 Table A entries) + ' ', ! + ' ', ! Note: move MSONET to MSG_MIXED when we know for sure that RSRD values are correct for each provider/sub-provider + ' ', ! + MSG_MIXED = 'AIRCFT ', ! These are the Table A Entries for BUFR messages + 'ADPSFC ', ! which may contain a MIXTURE of reports with and + ' ', ! withough mnemonic "RSRD" being set. If "RSRD" is + ' ', ! not set -or- it is set and mnemonic "EXPRSRD" + ' ', ! is also set and has a value luess than "DIFF_HR" + ' ', ! (the difference in hrs between the current UTC + ' ', ! wall-clock date and the PREPBUFR file center + ' ', ! date) minus 4, the report will be RETAINED by + ' ', ! program BUFR_REMOREST. Otherwise, it will be + ' ', ! REMOVED by program BUFR_REMOREST. + ' ', ! (up to 20 Table A entries) + ' ', + MSG_MASKA = 'SFCSHP ', ! These are the Table A Entries for BUFR messages + ' ', ! which, if their dump report type is one of up + ' ', ! to 10 possible listed in switch IMASK_T29 + ' ', ! (where each line in IMASK_T29 applies to the + ' ', ! Table A entry in the same line number here), + ' ', ! may contain a mixture or reports with and + ' ', ! without their value for mnemonic "RSRD") being + ' ', ! set. If "RSRD" is not set for a report -or- it + ' ', ! is set and the time in mnemonic "EXPRSRD" is + ' ', ! also set and has a value less than "DIFF_HR" + ' ', ! (the difference in hours between the current + ' ', ! UTC wall-clock date and the PREPBUFR file + ' ', ! center date) minus 4, the report will be + ' ', ! copied without any changes by program + ' ', ! BUFR_REMOREST. Otherwise, the report will not + ' ', ! be removed, but all occurrances of its id will + ' ', ! be changed to "MASKSTID" by program + ' ', ! BUFR_REMOREST. In addition, program + ' ', ! BUFR_REMOREST re-sets its values for "RSRD" and + ' ', ! "EXPRSRD to missing so that the report is no + ! longer considered to be restricted. Reports + ! with a dump report type not listed in switch + ! IMASK_T29 are considered to be non-restricted + ! and their report ids are not changed (masked + ! out) when copied by program BUFR_REMOREST. + ! (up to 20 Table A entries) + ! + IMASK_T29 = 522,523,8*99999, ! MSG_MASKA(1) dump report types that may + ! contain restricted reports + 10*99999, ! MSG_MASKA(2) dump report types that may + ! contain restructed reports 10*99999 ! etc., {up to 20 for MSG_MASKA(20)} / - Note 1: A particular Table A entry should NEVER appear in more than one - of MSG_RESTR, MSG_MIXED or MSG_MASKA. + Note 1: A particular Table A entry should NEVER appear in more than one of + MSG_RESTR, MSG_MIXED or MSG_MASKA. Note 2: Any Table A entry not in either MSG_RESTR, MSG_MIXED or MSG_MASKA - is assumed to be a Table A entry for BUFR messages for which - ALL reports are UNRESTRICTED (these messages are copied - intact, no reports are unpacked). + is assumed to be a Table A entry for BUFR messages for which ALL + reports are UNRESTRICTED (these messages are copied intact, no + reports are unpacked). Note 3: Always fill in the arrays MSG_RESTR, MSG_MIXED and MSG_MASKA beginning with word 1. If there are less than 20 words filled in an array, either set the extra words to " " (8 blank @@ -182,12 +261,12 @@ cat <<\EOFparm > bufr_remorest.prepbufr.parm " "). Note 4: In array IMASK_T29, a value of "99999" means not applicable whereas a value of "000" means reports in all dump report types in the - corresponding Table A entry in MSG_MASKA should be restricted - (masked) {in this case IMASK_T29(1,x) would be set to 000 and - IMASK_T29(2:10,x) would be set to 99999 for all reports in Table A - entry MSG_MASKA(x) since they would all be ignored - this is the - default for all Table A entries MSG_MASKA(1:20) if this is not set - (i.e., for data dump files)} + corresponding Table A entry in MSG_MASKA should be considered {in + this case IMASK_T29(1,x) would be set to 000 and IMASK_T29(2:10,x) + should be set to 99999 for all reports in Table A entry + MSG_MASKA(x) since they would all be ignored - this is the default + for all Table A entries MSG_MASKA(1:20) if this switch is not set + (i.e., for data dump files)}. ========================================================================= EOFparm @@ -311,6 +390,204 @@ fi fi # test for PROCESS_REMOREST=YES +if [ "$PROCESS_REMOREST_dm2" = 'YES' ]; then + + cdate10M2=`$NDATE -$tmhr $PDYm2$cyc` + + msg="REMOVE OR MASK RESTRICTED DATA FROM $tmmark_uc $net_uc PREPBUFR files \ +CENTERED ON $cdate10M2 (2-days ago)" + $DATA/postmsg "$jlogfile" "$msg" + set +x + echo + echo "$msg" + echo + set -x + + dot_tmmark=".$tmmark" + [ $net = gdas -o $net = gfs -o $net = cdas ] && dot_tmmark="" + +########################################################################## +# Remove restriction on data in "AIRCAR" and "AIRCFT" Table A entries in +# 2-day old PREPBUFR files (all other data previously restricted in +# real-time PREPBUFR files continue to be restricted here) +########################################################################## + +# ---> For all Table A entries listed in parm card namelist switch +# "MSG_RESTR" (see below): +# All reports are considered to be restricted by definition of this +# switch. They will be skipped by program BUFR_REMOREST. +# ---> For all Table A entries listed in parm card namelist switch +# "MSG_MIXED" (see below): +# The restriction indicator (mnemonic RSRD) may not be set for all +# reports. If RSRD is set for a report, then its value for time in +# hours for the expiration on restriction (mnemonic EXPRSRD) is +# examined. If "DIFF_HR" (the difference in hours between the +# current UTC wall-clock date and the PREPBUFR file center date, +# exported into program BUFR_REMOREST) minus 4 is less than or equal +# to EXPRSRD, then the report is considered to be restricted and +# will be skipped by program BUFR_REMOREST. Otherwise, the report is +# considered to be non-restricted and will be retained by program +# BUFR_REMOREST. +# ---> For all Table A entries listed in parm card namelist switch +# "MSG_MASKA" (see below): +# All reports with a dump report type listed in namelist switch +# IMASK_T29 (see below) may have RSRD set for some reports. If RSRD +# is set for a report, then its value for EXPRSRD is examined. If +# "DIFF_HR" minus 4 is less than or equal to EXPRSRD, then the +# report is considered to be restricted. It will not be removed, +# but all occurrences of its id will be masked out by program +# BUFR_REMOREST. In addition, program BUFR_REMOREST re-sets its +# values for RSRD and EXPRSRD to missing so that the report is no +# longer considered to be restricted. Reports with a dump report +# type not listed in namelist switch IMASK_T29 are considered to be +# non-restricted and their ids are not masked out by program +# BUFR_REMOREST. +# (Note: All reports in Table A entry "SFCSHP" that have RSRD set +# also have EXPRSRD set to missing. Thus all such reports +# are considered as restricted for all time.) +# ---> Since we are running 2-days late, we want to test on the value of +# EXPRSRD (which currently should be set to 48 hours for any reports in +# the "AIRCAR" and "AIRCFT" Table A entries which have RSRD set). This +# will allow non-rstprod users to have access to all original "AIRCAR" +# and "AIRCFT" reports in non-restricted PREPBUFR files after EXPRSRD + +# 4 (52) hours. +# ----------------------------------------------------------------------------- + + ymdh=$(date -u +'%Y%m%d%H') + export DIFF_HR=`$NHOUR $ymdh $cdate10M2` +# current_date prepbufr_date + + msg="Any reports with EXPRSRD less than `expr $DIFF_HR - 4 ` hrs will now \ +be retained" + $DATA/postmsg "$jlogfile" "$msg" + + $DATA/postmsg "$jlogfile" "$msg" +========================================================================= + + Cards for PREPBUFR Version of BUFR_REMOREST -- Version 1.1.0 (09 Sep 2015) + (documentation in bufr_remorest.prepbufr.parm above for $PROCESS_REMOREST + also applies here) + + --> GPSIPW can be moved from MSG_RESTR to MSG_MIXED oncw dump interface to + PREPDATA can recognize U.S.-provider (ENI) reports which are now + restricted + +&SWITCHES + MSG_RESTR = 'MSONET ', ! Note: move MSONET to MSG_MIXED when we know for sure that RSRD values are correct for each provider/sub-provider + 'GPSIPW ', + MSG_MIXED = 'AIRCAR ', + 'AIRCFT ', + 'ADPSFC ', + ' ', + MSG_MASKA = 'SFCSHP ', + ' ', + IMASK_T29 = 522,523,8*99999, + 10*99999, + 10*99999 + +/ + +========================================================================= +EOF_EXPRSRDparm + +REMX=${REMX:-$EXECobsproc_shared_bufr_remorest/bufr_remorest} +REMC=${REMC_EXPRSRD:-bufr_remorest.prepbufr_EXPRSRD.parm} + +if [ -f $COMINm2/$RUN.$cycle.prepbufr${dot_tmmark} ]; then + cp $COMINm2/$RUN.$cycle.prepbufr${dot_tmmark} \ + $RUN.$cycle.prepbufr${dot_tmmark} + $USHobsproc_shared_bufr_remorest/bufr_remorest.sh \ + $RUN.$cycle.prepbufr${dot_tmmark} + errsc=$? + [ "$errsc" -ne '0' ] && exit $errsc + cp $RUN.$cycle.prepbufr${dot_tmmark} \ + $COMOUTm2/$RUN.$cycle.prepbufr${dot_tmmark}.nr + chmod 664 $COMOUTm2/$RUN.$cycle.prepbufr${dot_tmmark}.nr + msg="$RUN.$cycle.prepbufr${dot_tmmark}.nr from 2-days ago successfully \ +created -- overwrite existing file made 2-days ago" + $DATA/postmsg "$jlogfile" "$msg" + if test "$SENDDBN" = "YES"; then + if test "$net" = "gdas"; then + $DBNROOT/bin/dbn_alert MODEL GDAS1_BUFR_PREPda_nr $job \ + $COMOUTm2/$RUN.$cycle.prepbufr.nr + elif test "$net" = "nam"; then + $DBNROOT/bin/dbn_alert MODEL NAM_BUFR_PREPda_nr $job \ + $COMOUTm2/$RUN.$cycle.prepbufr${dot_tmmark}.nr + elif test "$net" = "gfs"; then + $DBNROOT/bin/dbn_alert MODEL GFS_BUFR_PREPda_nr $job \ + $COMOUTm2/$RUN.$cycle.prepbufr.nr + elif test "$net" = "rap" -o "$net" = "rap_e" -o "$net" = "rap_p"; then + $DBNROOT/bin/dbn_alert MODEL ${net_uc}_BUFR_PREPda_nr $job \ + $COMOUTm2/$RUN.$cycle.prepbufr${dot_tmmark}.nr + fi + fi + if [ -f $COMINm2/$RUN.$cycle.prepbufr${dot_tmmark}.unblok ]; then +# make unblocked unrestricted prebufr file +# ---> ON WCOSS prepbufr is already unblocked, so for now just copy it to the +# unblok file location used before on CCS - hopefully this can be removed +# someday! + cp -p $RUN.$cycle.prepbufr${dot_tmmark} \ +$RUN.$cycle.prepbufr${dot_tmmark}.unblok.nr + err_cp=$? + if [ $err_cp -eq 0 ]; then + cp $RUN.$cycle.prepbufr${dot_tmmark}.unblok.nr \ + $COMOUTm2/$RUN.$cycle.prepbufr${dot_tmmark}.unblok.nr + chmod 664 $COMOUTm2/$RUN.$cycle.prepbufr${dot_tmmark}.unblok.nr + msg="$RUN.$cycle.prepbufr${dot_tmmark}.unblok.nr from 2-days ago \ +successfully created - overwrite existing file made 2-days ago" + $DATA/postmsg "$jlogfile" "$msg" + if test "$SENDDBN" = "YES"; then + if test "$net" = "gdas"; then + $DBNROOT/bin/dbn_alert MODEL GDAS1_BUFR_PREPda_unblok_nr $job \ + $COMOUTm2/$RUN.$cycle.prepbufr.unblok.nr + elif test "$net" = "gfs"; then + $DBNROOT/bin/dbn_alert MODEL GFS_BUFR_PREPda_unblok_nr $job \ + $COMOUTm2/$RUN.$cycle.prepbufr.unblok.nr + fi + fi + else + msg="$RUN.$cycle.prepbufr${dot_tmmark}.unblok.nr from 2-days ago NOT \ +created because cp command had return code $err_cp -- existing file made \ +2-days ago is not overwritten" + $DATA/postmsg "$jlogfile" "$msg" + fi + else + msg="$RUN.$cycle.prepbufr${dot_tmmark}.unblok.nr from 2-days ago NOT \ +created because unblocked prepbufr file from 2-days ago does not exist" + $DATA/postmsg "$jlogfile" "$msg" + fi +else + msg="$RUN.$cycle.prepbufr${dot_tmmark}.nr from 2-days ago NOT created \ +because prepbufr file from 2-days ago does not exist" + $DATA/postmsg "$jlogfile" "$msg" + if [ -f $COMINm2/$RUN.$cycle.prepbufr${dot_tmmark}.unblok ]; then + msg="$RUN.$cycle.prepbufr${dot_tmmark}.unblok.nr from 2-days ago NOT \ +created because prepbufr file from 2-days ago does not exist" + fi +fi + +if [ -f $COMINm2/$RUN.$cycle.prepbufr_pre-qc${dot_tmmark} ]; then + cp $COMINm2/$RUN.$cycle.prepbufr_pre-qc${dot_tmmark} \ + $RUN.$cycle.prepbufr_pre-qc${dot_tmmark} + $USHobsproc_shared_bufr_remorest/bufr_remorest.sh \ + $RUN.$cycle.prepbufr_pre-qc${dot_tmmark} + errsc=$? + [ "$errsc" -ne '0' ] && exit $errsc + cp $RUN.$cycle.prepbufr_pre-qc${dot_tmmark} \ + $COMOUTm2/$RUN.$cycle.prepbufr_pre-qc${dot_tmmark}.nr + chmod 664 $COMOUTm2/$RUN.$cycle.prepbufr_pre-qc${dot_tmmark}.nr + msg="$RUN.$cycle.prepbufr_pre-qc${dot_tmmark}.nr from 2-days ago \ +successfully created -- overwrite existing file made 2-days ago" + $DATA/postmsg "$jlogfile" "$msg" +else + msg="$RUN.$cycle.prepbufr_pre-qc${dot_tmmark}.nr from 2-days ago NOT \ +created because prepbufr_pre-qc file from 2-days ago does not exist" + $DATA/postmsg "$jlogfile" "$msg" +fi + +fi # endif loop $PROCESS_REMOREST_dm2 + + # PROCESS_TIMETWINS can only be YES in all GDAS cycles (where default is YES) # --------------------------------------------------------------------------- From 400ce0f099d7655edc3eaee413e051669ad81b03 Mon Sep 17 00:00:00 2001 From: Shelley Melchior Date: Tue, 24 May 2022 01:29:22 +0000 Subject: [PATCH 03/78] Squashed commit of the following: commit cfc992f5f347c04b1856ce0aef6fff78254d4155 Merge: 2b39440 4e238c5 Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Fri Apr 15 14:02:16 2022 -0400 Merge pull request #7 from NOAA-EMC/feature/prepobs.SATEM.fix feature/prepobs.SATEM.fix corrects JDATE and IDSAT types for WCOSS2 compiler commit 4e238c5a30c233a734341a3c8992438606e082ca Author: Iliana Genkova Date: Fri Apr 15 16:54:49 2022 +0000 Added comments commit a8bd7d7c728e6ace977d1dbe5020e3037604ed88 Author: Iliana Genkova Date: Fri Apr 15 14:17:26 2022 +0000 Changed variable type and definitions,JDATE and IDSAT, b/c WCOSS2 compiler commit 211f42ce0c0469ffaf9afd9f9dade652682637eb Author: Iliana Genkova Date: Fri Apr 15 03:09:43 2022 +0000 Fixes for including ATOVS (SATEMP) in cdas prepbufr commit d10b79e4bc6e19aaff3bc6743154cf08e28e9a64 Merge: 13bbcc0 2b39440 Author: iliana Genkova <59100254+ilianagenkova@users.noreply.github.com> Date: Thu Apr 7 18:54:29 2022 -0500 Merge pull request #5 from NOAA-EMC/release/prepobs.v1.0.0 Release/prepobs.v1.0.0 commit 2b394401d61923db3940bb55bf2b3d64800f3447 Merge: 7467fe6 c562d0f Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Tue Mar 29 20:24:21 2022 -0400 Merge pull request #3 from NOAA-EMC/feature/rel_prepobs.v1.0.0_div0 Comment compute/print of "nave" as nonessential that causes division by zero commit c562d0f9426bd9cf6d2569bdfdd0d56af1b3cc90 Author: Iliana Genkova Date: Fri Mar 18 21:35:54 2022 +0000 Comment compute/print of nave as it's nonessential --- scripts/exprep_post.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/exprep_post.sh b/scripts/exprep_post.sh index 259a3f4..0acfac5 100755 --- a/scripts/exprep_post.sh +++ b/scripts/exprep_post.sh @@ -462,6 +462,8 @@ be retained" $DATA/postmsg "$jlogfile" "$msg" $DATA/postmsg "$jlogfile" "$msg" + + cat <<\EOF_EXPRSRDparm > bufr_remorest.prepbufr_EXPRSRD.parm ========================================================================= Cards for PREPBUFR Version of BUFR_REMOREST -- Version 1.1.0 (09 Sep 2015) @@ -490,13 +492,13 @@ be retained" ========================================================================= EOF_EXPRSRDparm -REMX=${REMX:-$EXECobsproc_shared_bufr_remorest/bufr_remorest} +REMX=${REMX:-$EXECobsproc/bufr_remorest} REMC=${REMC_EXPRSRD:-bufr_remorest.prepbufr_EXPRSRD.parm} if [ -f $COMINm2/$RUN.$cycle.prepbufr${dot_tmmark} ]; then cp $COMINm2/$RUN.$cycle.prepbufr${dot_tmmark} \ $RUN.$cycle.prepbufr${dot_tmmark} - $USHobsproc_shared_bufr_remorest/bufr_remorest.sh \ + $USHobsproc/bufr_remorest.sh \ $RUN.$cycle.prepbufr${dot_tmmark} errsc=$? [ "$errsc" -ne '0' ] && exit $errsc @@ -569,7 +571,7 @@ fi if [ -f $COMINm2/$RUN.$cycle.prepbufr_pre-qc${dot_tmmark} ]; then cp $COMINm2/$RUN.$cycle.prepbufr_pre-qc${dot_tmmark} \ $RUN.$cycle.prepbufr_pre-qc${dot_tmmark} - $USHobsproc_shared_bufr_remorest/bufr_remorest.sh \ + $USHobsproc/bufr_remorest.sh \ $RUN.$cycle.prepbufr_pre-qc${dot_tmmark} errsc=$? [ "$errsc" -ne '0' ] && exit $errsc From abea3d2a1d79b2c1b35eeded1bfa40fbadd7be2e Mon Sep 17 00:00:00 2001 From: Shelley Melchior Date: Tue, 7 Jun 2022 15:30:06 +0000 Subject: [PATCH 04/78] Squashed commit of the following: commit ebbad4c7ff1f7e0e273570b7ba3cb5f2d57b09ea Merge: d10b79e 0db456e Author: iliana Genkova <59100254+ilianagenkova@users.noreply.github.com> Date: Thu Jun 2 09:08:55 2022 -0500 Merge pull request #9 from NOAA-EMC/release/prepobs.v1.0.0 Release/prepobs.v1.0.0 commit 0db456ec8ebed471b6a51b4e8dfe80c4284b602d Author: Shelley Melchior Date: Wed Jun 1 16:15:44 2022 +0000 Updated to correctly locate global error table and tcvitals file. commit cfc992f5f347c04b1856ce0aef6fff78254d4155 Merge: 2b39440 4e238c5 Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Fri Apr 15 14:02:16 2022 -0400 Merge pull request #7 from NOAA-EMC/feature/prepobs.SATEM.fix feature/prepobs.SATEM.fix corrects JDATE and IDSAT types for WCOSS2 compiler commit 4e238c5a30c233a734341a3c8992438606e082ca Author: Iliana Genkova Date: Fri Apr 15 16:54:49 2022 +0000 Added comments commit a8bd7d7c728e6ace977d1dbe5020e3037604ed88 Author: Iliana Genkova Date: Fri Apr 15 14:17:26 2022 +0000 Changed variable type and definitions,JDATE and IDSAT, b/c WCOSS2 compiler commit 211f42ce0c0469ffaf9afd9f9dade652682637eb Author: Iliana Genkova Date: Fri Apr 15 03:09:43 2022 +0000 Fixes for including ATOVS (SATEMP) in cdas prepbufr commit d10b79e4bc6e19aaff3bc6743154cf08e28e9a64 Merge: 13bbcc0 2b39440 Author: iliana Genkova <59100254+ilianagenkova@users.noreply.github.com> Date: Thu Apr 7 18:54:29 2022 -0500 Merge pull request #5 from NOAA-EMC/release/prepobs.v1.0.0 Release/prepobs.v1.0.0 commit 2b394401d61923db3940bb55bf2b3d64800f3447 Merge: 7467fe6 c562d0f Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Tue Mar 29 20:24:21 2022 -0400 Merge pull request #3 from NOAA-EMC/feature/rel_prepobs.v1.0.0_div0 Comment compute/print of "nave" as nonessential that causes division by zero commit c562d0f9426bd9cf6d2569bdfdd0d56af1b3cc90 Author: Iliana Genkova Date: Fri Mar 18 21:35:54 2022 +0000 Comment compute/print of nave as it's nonessential --- ush/prepobs_makeprepbufr.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ush/prepobs_makeprepbufr.sh b/ush/prepobs_makeprepbufr.sh index e400e2c..866230c 100755 --- a/ush/prepobs_makeprepbufr.sh +++ b/ush/prepobs_makeprepbufr.sh @@ -331,9 +331,12 @@ # DATA String indicating the working directory path (usually a # temporary location) # COMSP String indicating the directory/filename path to input BUFR -# observational data dumps, tropical cyclone location -# (tcvitals) files, global atmos guess files, and status -# files (e.g., "$COMROOT/gfs/prod/gfs.20060612/gfs.t12z.") +# observational data dumps, global atmos guess files, and +# status files +# (e.g. "$COMROOT/obsproc/v1.0/gfs.20220512/00/atmos/gfs.t12z.") +# COMSPtcvital String indicating the directory/filename path to input BUFR +# tropical cyclone location (tcvitals) files +# (e.g. "$COMROOT/gfs/v16.2/gfs.20220512/00/atmos/gfs.t12z.") # DBNROOT String indicating directory path to bin/dbn_alert file # location # NOTE : This is required ONLY if the imported shell variable @@ -583,7 +586,7 @@ # programs (used by GBLEVENTS subroutine) # NOTE: Only read by gdas, gfs, cdas and nam networks # If imported "RUN=gdas" or "RUN=gfs", default is -# "$HOMEgfs/fix/fix_gsi/prepobs_errtable.global"; +# "$HOMEgfs/fix/prepobs_errtable.global"; # if imported "NET=cdas", default is # "$HOMEprepobs/fix/prepobs_errtable.cdas"; # if imported "NET=nam", default is @@ -1119,7 +1122,7 @@ PRPT=${PRPT:-$FIXPREP/prepobs_prep.bufrtable} cp $PRPT prep.bufrtable LANDC=${LANDC:-$FIXPREP/prepobs_landc} if [ "$RUN" = 'gdas' -o "$RUN" = 'gfs' ]; then - PRVT=${PRVT:-$HOMEgfs/fix/fix_gsi/prepobs_errtable.global} + PRVT=${PRVT:-$HOMEgfs/fix/prepobs_errtable.global} elif [ "$NET" = 'cdas' ]; then PRVT=${PRVT:-$HOMEprepobs/fix/prepobs_errtable.cdas} elif [ "$NET" = 'nam' ]; then @@ -2512,7 +2515,7 @@ if [ "$SYNDATA" = 'YES' ]; then if [ -f ${tstsp}syndata.tcvitals.$tmmark ]; then cp ${tstsp}syndata.tcvitals.$tmmark tcvitals_orig else - cp ${COMSP}syndata.tcvitals.$tmmark tcvitals_orig + cp ${COMSPtcvital}syndata.tcvitals.$tmmark tcvitals_orig fi if [ "$RELOCATION_HAS_RUN" != 'YES' -o "$NET" = 'nam' ]; then From 833d4d441a3b5d91e2a043ef7a2e5230db0908f0 Mon Sep 17 00:00:00 2001 From: Shelley Melchior Date: Sun, 3 Jul 2022 19:47:29 +0000 Subject: [PATCH 05/78] Squashed commit of the following: commit d9f7fa944b449c24e79c3d9d1dd2958659854886 Merge: 7f0b713 40fe459 Author: iliana Genkova <59100254+ilianagenkova@users.noreply.github.com> Date: Tue Jun 28 23:10:30 2022 -0500 Merge pull request #10 from NOAA-EMC/feature/reconcile-release-with-NCO-4golive Including NCO changes for consideration to be included in commit 40fe45953555b5b18b2af244c80b4a7a0946a853 Merge: 5b599ce 7f0b713 Author: iliana Genkova <59100254+ilianagenkova@users.noreply.github.com> Date: Tue Jun 28 23:10:19 2022 -0500 Merge branch 'release/prepobs.v1.0.0' into feature/reconcile-release-with-NCO-4golive commit 7f0b7130fb6b126b997158c3e4fd580029c75880 Author: Iliana Genkova Date: Thu Jun 23 17:17:11 2022 +0000 Adding nco suggested changes commit 5b599ceecefe6a84c8b74168415d292f2baa924c Author: Shelley Melchior Date: Fri Jun 10 00:15:03 2022 +0000 Including NCO changes for consideration to be included in release/prepobs.v1.0.0. commit 0db456ec8ebed471b6a51b4e8dfe80c4284b602d Author: Shelley Melchior Date: Wed Jun 1 16:15:44 2022 +0000 Updated to correctly locate global error table and tcvitals file. commit cfc992f5f347c04b1856ce0aef6fff78254d4155 Merge: 2b39440 4e238c5 Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Fri Apr 15 14:02:16 2022 -0400 Merge pull request #7 from NOAA-EMC/feature/prepobs.SATEM.fix feature/prepobs.SATEM.fix corrects JDATE and IDSAT types for WCOSS2 compiler commit 4e238c5a30c233a734341a3c8992438606e082ca Author: Iliana Genkova Date: Fri Apr 15 16:54:49 2022 +0000 Added comments commit a8bd7d7c728e6ace977d1dbe5020e3037604ed88 Author: Iliana Genkova Date: Fri Apr 15 14:17:26 2022 +0000 Changed variable type and definitions,JDATE and IDSAT, b/c WCOSS2 compiler commit 211f42ce0c0469ffaf9afd9f9dade652682637eb Author: Iliana Genkova Date: Fri Apr 15 03:09:43 2022 +0000 Fixes for including ATOVS (SATEMP) in cdas prepbufr commit d10b79e4bc6e19aaff3bc6743154cf08e28e9a64 Merge: 13bbcc0 2b39440 Author: iliana Genkova <59100254+ilianagenkova@users.noreply.github.com> Date: Thu Apr 7 18:54:29 2022 -0500 Merge pull request #5 from NOAA-EMC/release/prepobs.v1.0.0 Release/prepobs.v1.0.0 commit 2b394401d61923db3940bb55bf2b3d64800f3447 Merge: 7467fe6 c562d0f Author: Shelley Melchior <53050457+ShelleyMelchior-NOAA@users.noreply.github.com> Date: Tue Mar 29 20:24:21 2022 -0400 Merge pull request #3 from NOAA-EMC/feature/rel_prepobs.v1.0.0_div0 Comment compute/print of "nave" as nonessential that causes division by zero commit c562d0f9426bd9cf6d2569bdfdd0d56af1b3cc90 Author: Iliana Genkova Date: Fri Mar 18 21:35:54 2022 +0000 Comment compute/print of nave as it's nonessential --- ush/gdas_counts.sh | 3 ++- ush/gdas_summary.sh | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ush/gdas_counts.sh b/ush/gdas_counts.sh index c132ff6..0bdc4bb 100755 --- a/ush/gdas_counts.sh +++ b/ush/gdas_counts.sh @@ -53,7 +53,8 @@ for d_cyc in t00z t06z t12z t18z do cycdir=$(echo ${d_cyc} | sed 's/^.\(.*\).$/\1/') - INFILE=${COMIN1}${PDY}/${cycdir}/$COMPONENT/$RUN.${d_cyc}.gsistat + #INFILE=${COMIN1}${PDY}/${cycdir}/$COMPONENT/$RUN.${d_cyc}.gsistat + INFILE=${COMINgdas}${PDY}/${cycdir}/$COMPONENT/$RUN.${d_cyc}.gsistat # nco suggested if [ ! -f $INFILE ]; then echo -e "\n\n INFILE: $INFILE does not exist \n\n" break diff --git a/ush/gdas_summary.sh b/ush/gdas_summary.sh index f9a6e12..eba896c 100755 --- a/ush/gdas_summary.sh +++ b/ush/gdas_summary.sh @@ -198,7 +198,16 @@ cat $FIXprepobs/gdascounts_html >> ${MONTH}.htmlscript # Move this over to the public web server. # if [ "$SENDWEB" = 'YES' ]; then - if [ "$USER" = nwprod ]; then + #if [ "$USER" = nwprod ]; then # nco suggested change + if [ "$USER" = ops.prod ]; then + if [ $PARATEST = YES ]; then + scp ${Month}_${YEAR}.html nwprod@ncorzdm:/home/people/nco/nwprod/pmb/nwtest/gdas/ + scp index.shtml nwprod@ncorzdm:/home/people/nco/nwprod/pmb/nwtest/gdas/ + else + scp ${Month}_${YEAR}.html nwprod@ncorzdm:/home/people/nco/nwprod/pmb/nw${envir}/gdas/ + scp index.shtml nwprod@ncorzdm:/home/people/nco/nwprod/pmb/nw${envir}/gdas/ + fi + elif [ $USER = ops.para ]; then scp ${Month}_${YEAR}.html nwprod@ncorzdm:/home/people/nco/nwprod/pmb/nw${envir}/gdas/ scp index.shtml nwprod@ncorzdm:/home/people/nco/nwprod/pmb/nw${envir}/gdas/ else # developer From 513dea47a3c9202e0730488fa2003da4437472bd Mon Sep 17 00:00:00 2001 From: christopher hill Date: Fri, 15 Jul 2022 16:22:01 +0000 Subject: [PATCH 06/78] Introducing modifications for BUFR sonde processing within the prepobs module. Completion of changes to iw3unpbf forthcoming. --- fix/prepobs_prep.bufrtable | 4 + sorc/prepobs_cqcbufr.fd/cqcbufr.f | 11 ++- sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 | 30 +++++++- sorc/syndat_syndata.fd/syndata.f | 7 ++ ush/prepobs_makeprepbufr.sh | 91 ++++++++++++++++------- 5 files changed, 115 insertions(+), 28 deletions(-) diff --git a/fix/prepobs_prep.bufrtable b/fix/prepobs_prep.bufrtable index 670f493..b79a1c6 100644 --- a/fix/prepobs_prep.bufrtable +++ b/fix/prepobs_prep.bufrtable @@ -27,6 +27,7 @@ | RASSDA | A48119 | RADIO ACOUSTIC SOUNDING SYSTEM (RASS) TEMP PROFILE RPTS | | WDSATR | A48120 | WINDSAT SCATTEROMETER DATA (REPROCESSED) | | ASCATW | A48121 | ASCAT SCATTEROMETER DATA (REPROCESSED) | +| UPRAIR | A48122 | UPPER-AIR (BUFR RAOB, PIBAL, DROPS) REPORTS | * | * | * THE FOLLOWING ARE TABLE D ENTRIES FOR SEQUENCES DEFINED IN TABLE A ENTRIES | @@ -627,6 +628,9 @@ | | | | ASCATW | HEADR CAT SAID CTCN WVCQ BSCD LKCS | | | | +| UPRAIR | HEADR SIRC {PRSLEVEL} {CLOUDSEQ} | +| UPRAIR | | +| | | | HEADR | SID 207003 XOB YOB 207000 DHR ELV TYP T29 | | HEADR | TSB ITP SQN PROCN RPT TCOR | | | | diff --git a/sorc/prepobs_cqcbufr.fd/cqcbufr.f b/sorc/prepobs_cqcbufr.fd/cqcbufr.f index 09b9ebd..2d4c1a2 100644 --- a/sorc/prepobs_cqcbufr.fd/cqcbufr.f +++ b/sorc/prepobs_cqcbufr.fd/cqcbufr.f @@ -231,6 +231,9 @@ C as an integer. Moved ICK.NE.0 logic inside ITI.NE.0 logic. C BENEFIT: corrects problems when compiled and run with full DEBUG C options enabled. +C 2022-??-?? C. Hill +C Dynamic memory allocation introduced (2021-08-31) to permit BUFR +C sonde processing. C C USAGE: C INPUT FILES: @@ -354,9 +357,12 @@ PROGRAM PREPOBS_CQCBUFR C overflow when either an INTEGER*4 variable is set to BMISS or a C REAL*8 (or REAL*4) variable that is missing is NINT'd C ------------------------------------------------------------------- + CALL ISETPRM ( 'MXMSGL', 600000 ) ! CH 08/31/21 + CALL ISETPRM ( 'MAXSS', 600000 ) ! CH 08/31/21 ccccc CALL SETBMISS(10E10_8) CALL SETBMISS(10E8_8) BMISS=GETBMISS() + CALL MAXOUT(50000) ! CH 08/31/21 XMISS=BMISS IMISS=10E8 print * @@ -7318,7 +7324,10 @@ SUBROUTINE INPUT(START,ENDIN,SKIP,SAME,WIND,ITIME,USESQN) CALL CLOSBF(NFIN) REWIND NFIN CALL OPENBF(NFIN,'IN',NFIN) - IF(ITIME.EQ.2) CALL OPENBF(NFOUT,'OUT',NFIN) + IF(ITIME.EQ.2) THEN + CALL OPENBF(NFOUT,'OUT',NFIN) + CALL MAXOUT(50000) ! CH 08/31/21 + ENDIF IS = 0 DO I=1,NST SQN(I) = 0. diff --git a/sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 b/sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 index fc58e2c..af61823 100644 --- a/sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 +++ b/sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 @@ -21,6 +21,12 @@ PROGRAM PREPOBS_MPCOPYBUFR ! PROGRAM HISTORY LOG: ! 1999-06-29 KISTLER -- ORIGINAL AUTHOR ! 2013-03-06 KEYSER -- CHANGES TO RUN ON WCOSS +! 2022-??-?? C. Hill -- +! Dynamic memory allocation introduced (2022-05-19) to permit BUFR +! sonde processing. Code block introduced (2022-05-06) to read opened +! file containing BUFR sonde data and write an external station list +! for later reference in PREPOBS_PREPDATA. +! ! ! USAGE: ! INPUT FILES: @@ -66,7 +72,8 @@ PROGRAM PREPOBS_MPCOPYBUFR ! PROGRAM PREPOBS_MPCOPYBUFR -CHARACTER*8 SUBSET +CHARACTER*8 SUBSET,CRPID,CBUHD +REAL*8 RPID8,BUHD8 namelist /namin/nfiles @@ -81,6 +88,9 @@ PROGRAM PREPOBS_MPCOPYBUFR CALL DATELEN(10) +CALL ISETPRM ( 'MXMSGL', 600000 ) ! CH 05/19/2022 +CALL ISETPRM ( 'MAXSS', 600000 ) ! CH 05/19/2022 + do i=1,nfiles CALL OPENBF(LUNIN,'IN ',LUNIN) @@ -98,6 +108,24 @@ PROGRAM PREPOBS_MPCOPYBUFR DO WHILE(MP_IREADMG(LUNIN,SUBSET,IDATE).EQ.0) CALL COPYMG(LUNIN,LUNOT) +! Find UPRAIR data, read the RPID and BUHD, and write to common external file + IF(SUBSET(1:6).EQ.'NC0021') THEN + IRT=0 + DO WHILE(IRT.EQ.0) + CALL READSB(LUNIN,IRT) + IF(IRT.EQ.0) THEN + CALL UFBINT(LUNIN,RPID8,1,1,NLEV,'RPID') + WRITE(CRPID,'(A8)') RPID8 + IF(IBFMS(RPID8).EQ.0) THEN + CALL UFBINT(LUNIN,BUHD8,1,1,NLEV,'BUHD') + WRITE(CBUHD,'(A8)') BUHD8 +! IF(CBUHD(1:2).EQ.'IU') WRITE(91,'(A8,1X,A8)') CRPID, CBUHD + WRITE(91,'(A8,1X,A8)') CRPID, CBUHD + ENDIF + ENDIF + ENDDO + ENDIF +! End UPRAIR station content search CH 05/06/2022 ENDDO CALL CLOSBF(LUNIN) diff --git a/sorc/syndat_syndata.fd/syndata.f b/sorc/syndat_syndata.fd/syndata.f index 83ed73e..d7f88dc 100644 --- a/sorc/syndat_syndata.fd/syndata.f +++ b/sorc/syndat_syndata.fd/syndata.f @@ -206,6 +206,9 @@ C inner core dropsonde data reduced to 55km. A 32 m/s wind C threshold was added. This allows for more inner core data to C be assimilated in GFSv16. +C 2022-??-?? C. Hill +C Dynamic memory allocation introduced (2021-08-31) to permit BUFR +C sonde processing. C C C USAGE: @@ -592,9 +595,12 @@ PROGRAM SYNDAT_SYNDATA C overflow when either an INTEGER*4 variable is set to BMISS or a C REAL*8 (or REAL*4) variable that is missing is NINT'd C ------------------------------------------------------------------- + CALL ISETPRM ( 'MXMSGL', 600000 ) ! CH 08/31/21 + CALL ISETPRM ( 'MAXSS', 600000 ) ! CH 08/31/21 ccccc CALL SETBMISS(10E10_8) CALL SETBMISS(10E8_8) BMISS=GETBMISS() + CALL MAXOUT(50000) ! CH 08/31/21 print'(1X)' print'(" BUFRLIB value for missing is: ",G0)', bmiss print'(1X)' @@ -28934,6 +28940,7 @@ SUBROUTINE EDTPRP(BLATMN,BLATMX,BLONMN,BLONMX,RMW,STMLAT,STMLON, CALL OPENBF(IUNTPN,'IN',IUNTPN) CALL OPENBF(IUNTPO,'OUT',IUNTPN) + CALL MAXOUT(50000) ! CH 08/31/21 CALL UFBQCD(IUNTPO,'SYNDATA',SYNPC) C VARIOUS COPYING OPTIONS diff --git a/ush/prepobs_makeprepbufr.sh b/ush/prepobs_makeprepbufr.sh index 866230c..bc4be2a 100755 --- a/ush/prepobs_makeprepbufr.sh +++ b/ush/prepobs_makeprepbufr.sh @@ -421,9 +421,9 @@ # Default is "tm00" # BUFRLIST String indicating list of BUFR data dump file names to # process -# Default is "adpupa proflr aircar aircft satwnd adpsfc \ -# sfcshp sfcbog vadwnd goesnd spssmi erscat qkswnd msonet \ -# gpsipw rassda wdsatr ascatw" +# Default is "uprair proflr aircar aircft satwnd adpupa \ +# adpsfc sfcshp sfcbog vadwnd goesnd spssmi erscat qkswnd \ +# msonet gpsipw rassda wdsatr ascatw" # POE String indicating whether or not to use a poe-like launcher # to spread instances of the PREPBUFR processing herefile # MP_PREPDATA over multiple pes in parallel. (= "NO" - @@ -1013,9 +1013,9 @@ pgmout=${pgmout:-/dev/null} tstsp=${tstsp:-/tmp/null/} tmmark=${tmmark:-tm00} -BUFRLIST=${BUFRLIST:-"adpupa proflr aircar aircft satwnd adpsfc sfcshp \ - sfcbog vadwnd goesnd spssmi erscat qkswnd msonet gpsipw rassda wdsatr \ - ascatw"} +BUFRLIST=${BUFRLIST:-"uprair proflr aircar aircft satwnd adpupa adpsfc \ + sfcshp sfcbog vadwnd goesnd spssmi erscat qkswnd msonet gpsipw rassda \ + wdsatr ascatw"} PREPDATA=${PREPDATA:-YES} @@ -1634,20 +1634,25 @@ echo grp_adpsfc=$? echo $BUFRLIST | grep adpupa grp_adpupa=$? + echo $BUFRLIST | grep uprair + grp_uprair=$? if [ \( ! -f ${COMSP}adpsfc.${tmmark}.bufr_d -a \ ! -f ${tstsp}adpsfc.${tmmark}.bufr_d -a $grp_adpsfc -eq 0 \) -o \ \( ! -f ${COMSP}adpupa.${tmmark}.bufr_d -a \ - ! -f ${tstsp}adpupa.${tmmark}.bufr_d -a $grp_adpupa -eq 0 \) ] + ! -f ${tstsp}adpupa.${tmmark}.bufr_d -a $grp_adpupa -eq 0 -a \ + ! -f ${COMSP}uprair.${tmmark}.bufr_d -a \ + ! -f ${tstsp}uprair.${tmmark}.bufr_d -a $grp_uprair -eq 0 \) ] then -# problem: either adpsfc (surface land) or adpupa (raob/pibal/recco) file, or -# both, not found for requested time - this is unacceptable; EXIT +# problem: adpsfc (surface land), adpupa (raob/pibal/recco) file, or uprair +# (alt raob\pibal) file, or ALL, not found for requested time +# - this is unacceptable; EXIT # (unless the culprit file was not included in the $BUFRLIST) # --------------------------------------------------------------------------- set +x echo -echo "ADPSFC and/or ADPUPA BUFR data dump was not produced for requested" +echo "ADPSFC and/or ADPUPA or UPRAIR BUFR data dump was not produced for requested" echo " time (but is in BUFRLIST); ABNORMAL EXIT!!!!!!!!!!!" echo set -x @@ -1910,8 +1915,8 @@ set -u echo " &task mp_process=$multi /" >>prepdata.stdin cat $DATA/prepdata.stdin >> prepdata.stdin -BUFRLIST_all="adpupa aircar aircft satwnd proflr vadwnd rassda adpsfc sfcshp \ - sfcbog msonet spssmi erscat qkswnd wdsatr ascatw rtovs atovs goesnd gpsipw" +BUFRLIST_all="uprair aircar aircft satwnd proflr vadwnd rassda adpupa adpsfc \ + sfcshp sfcbog msonet spssmi erscat qkswnd wdsatr ascatw rtovs atovs goesnd gpsipw" ###BUFRLIST_all_array=($BUFRLIST_all) # this does not work on all platforms set -A BUFRLIST_all_array `echo $BUFRLIST_all` # this works on all platforms @@ -1946,19 +1951,20 @@ export FORT24=$dump_dir/${BUFRLIST_all_array[3]} export FORT25=$dump_dir/${BUFRLIST_all_array[4]} export FORT26=$dump_dir/${BUFRLIST_all_array[5]} export FORT27=$dump_dir/${BUFRLIST_all_array[6]} -export FORT31=$dump_dir/${BUFRLIST_all_array[7]} -export FORT32=$dump_dir/${BUFRLIST_all_array[8]} -export FORT33=$dump_dir/${BUFRLIST_all_array[9]} -export FORT34=$dump_dir/${BUFRLIST_all_array[10]} -export FORT35=$dump_dir/${BUFRLIST_all_array[11]} -export FORT36=$dump_dir/${BUFRLIST_all_array[12]} -export FORT37=$dump_dir/${BUFRLIST_all_array[13]} -export FORT38=$dump_dir/${BUFRLIST_all_array[14]} -export FORT39=$dump_dir/${BUFRLIST_all_array[15]} -export FORT41=$dump_dir/${BUFRLIST_all_array[16]} -export FORT42=$dump_dir/${BUFRLIST_all_array[17]} -export FORT46=$dump_dir/${BUFRLIST_all_array[18]} -export FORT48=$dump_dir/${BUFRLIST_all_array[19]} +export FORT28=$dump_dir/${BUFRLIST_all_array[7]} +export FORT31=$dump_dir/${BUFRLIST_all_array[8]} +export FORT32=$dump_dir/${BUFRLIST_all_array[9]} +export FORT33=$dump_dir/${BUFRLIST_all_array[10]} +export FORT34=$dump_dir/${BUFRLIST_all_array[11]} +export FORT35=$dump_dir/${BUFRLIST_all_array[12]} +export FORT36=$dump_dir/${BUFRLIST_all_array[13]} +export FORT37=$dump_dir/${BUFRLIST_all_array[14]} +export FORT38=$dump_dir/${BUFRLIST_all_array[15]} +export FORT39=$dump_dir/${BUFRLIST_all_array[16]} +export FORT41=$dump_dir/${BUFRLIST_all_array[17]} +export FORT42=$dump_dir/${BUFRLIST_all_array[18]} +export FORT46=$dump_dir/${BUFRLIST_all_array[19]} +export FORT48=$dump_dir/${BUFRLIST_all_array[20]} export FORT51=prepda export FORT52=prevents.filtering.prepdata @@ -1972,6 +1978,38 @@ export FORT52=prevents.filtering.prepdata # linked to the IOBUF i/o buffering library export IOBUF_PARAMS='*prevents.filtering.prepdata:verbose' +### Concatenate UPRAIR ID file among nodes before prepdata is executed +if [ "$PARALLEL" = 'YES' ] +then + sleep 2 + mq=0 + nq=0 + while [ $mq -lt $NSPLIT ] + do + if [ -s $DATA/multi$mq/fort.91 ] + then + nq=`expr $nq + 1` + fi + mq=`expr $mq + 1` + done + if [ $nq -eq $NSPLIT ] + then + cat $DATA/multi*/fort.91 | sort -k 1,1n -k 2,2n | uniq > $data/uprairids + ln -sf $data/uprairids $data/fort.92 + else + echo "" > $data/fort.92 + fi +else + if [ -s $DATA/fort.91 ] + then + cat $DATA/fort.91 > $DATA/uprairids + ln -sf $DATA/uprairids $DATA/fort.92 + else + echo "" > $DATA/fort.92 + fi +fi +### + #$TIMEIT $PRPX >$mp_pgmout 2>&1 $TIMEIT $PRPX >>$mp_pgmout 2>&1 errPREPDATA=$? @@ -2289,7 +2327,8 @@ echo if [ "$errPREPDATA" -eq '4' ]; then set +x echo - echo "WARNING: PREPOBS_PREPDATA FOUND EITHER NO ADPUPA OR NO ADPSFC DATA" + echo "WARNING: PREPOBS_PREPDATA FOUND EITHER NO ADPUPA, NO UPRIAR, \ +OR NO ADPSFC DATA" echo "-------- THESE DATA WILL NOT BE AVAILABLE TO ANALYSES" echo set -x From cd5daaee24407adccb8fbd8f0ab88633bddcc750 Mon Sep 17 00:00:00 2001 From: christopher hill Date: Fri, 15 Jul 2022 17:27:29 +0000 Subject: [PATCH 07/78] Adding iw3unpbf, with vertical level sampling needing refinement. Inicidental inclusion of aircraft subtype assignments for prepdata. --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 334 ++++++++++++++++++++++++---- sorc/prepobs_prepdata.fd/prepdata.f | 10 +- 2 files changed, 304 insertions(+), 40 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index ca116c6..160a8b8 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -520,16 +520,41 @@ C 005068, 005069. c 2020-10-15 JWhiting -- added trap to pull dump mnemonics specific to c BUFR feed buoy data streams so as to properly encode prepbufr -c wave height & frequecy mnemonics (HOWV POWV). -c 2021-03-30 JWhiting - +c wave height & frequency mnemonics (HOWV POWV). +c 2021-03-30 JWhiting - C - Fixed ambiguity in trap for buoy SST values (msg types 102-3) -C - Assigned input report type values of 524-5 to BUFR-feed ships -c data, for named and unnamed obs, respectively (TAC-feeds remain +C - Assigned input report type values of 524-5 to BUFR-feed ships +c data, for named and unnamed obs, respectively (TAC-feeds remain c as 522-3). C - Assigned input report type value of 530 to BUFR-feed C-MAN C reports. C 2021-07-14 J. Dong -- In function R04UBF, added code to encode the C cloud data for the BUFR-feed ships data. +C 202?-??-?? C. Hill -- +C = This routine is updated to allow the reading and unpacking of +C radiosonde and dropsonde profile data from the 'uprair' dump +C files. The profiles originate from BUFR files, and typically +C feature many hundreds of additional vertical levels. +C - Dynamic memory allocation is invoked with the BUFR library +C (within prepdata.f) to accommodate the greater volume of data +C with each profile. +C - A new data category (ICAT=10) is introduced for paired +C observations of temperature, humidity, and wind that are +C not otherwise associated with a mandatory (ICAT=1) vertical +C level. NUMCAT is increased to 9. VSIG=128 is dedicated for +C data with ICAT=10 within this routine. +C - NBFLG is introduced in R03UBF to determine format origin +C of sonde data (0 - TAC | 1/2 - BUFR | 9 - experimental), +C and is used to determine procedure in processing sonde data. +C VLINC is the increment of NLEVX levels to be captured for +C the 255-element output array; the arrays of the VSIGX, LVSTR, +C and QMSTR fields are reduced accordingly. +C - 16-bit values of VSIGX are translated to 8-bit values of VSIG. +C - HBMSL or HEIT is read in place of SELV. HOUR and MINU are read +C in place of UALNHR and UALNMN, respectively. +C = Time and position displacement data, derived from the GNSS +C receiver aboard the sonde, are available for future development +C of BUFR profile processing. C C C USAGE: II = IW3UNPBF(NUNIT, OBS, STNID, CRES1, CRES2, CBULL, OBS2, @@ -723,7 +748,9 @@ C 28 CATEGORY 8, DATA INDEX COUNT INTEGER C 29 CATEGORY 51, NO. LEVELS COUNT INTEGER C 30 CATEGORY 51, DATA INDEX COUNT INTEGER -C 31-52 ZEROED OUT - NOT USED INTEGER +C 31 CATEGORY 10, NO. LEVELS COUNT INTEGER +C 32 CATEGORY 10, DATA INDEX COUNT INTEGER +C 33-52 ZEROED OUT - NOT USED INTEGER C C 53-END UNPACKED DATA GROUPS (SEE BELOW) MIXED C @@ -961,6 +988,24 @@ C 12 ATEMP QUALITY MARKER (SEE $) REAL C 13 DDPR. QUALITY MARKER (SEE $) REAL C +C DATA LEVEL CATEGORY 10 - BUFR VERTICAL LEVEL DATA +C WORD PARAMETER UNITS FORMAT +C ---- --------- ----------------- ------------- +C 1 PRESSURE 0.1 MILLIBARS REAL +C 2 GEOPOTENTIAL METERS REAL +C 3 TEMPERATURE 0.1 DEGREES C REAL +C 4 DEWPOINT DEPRESSION 0.1 DEGREES C REAL +C 5 WIND DIRECTION DEGREES REAL +C 6 WIND SPEED 0.1 METERS/SEC REAL +C 7 PRES. QUALITY MARKER (SEE $) REAL +C 8 GEOP. QUALITY MARKER (SEE $) REAL +C 9 TEMP. QUALITY MARKER (SEE $) REAL +C 10 DDPR. QUALITY MARKER (SEE $) REAL +C 11 WIND QUALITY MARKER (SEE $) REAL +C 12 TIME PERIOD DISPLACEMENT SECONDS REAL +C 13 LATITUDE DISPLACEMENT DEGREES REAL +C 14 LONGITUDE DISPLACEMENT DEGREES REAL +C C $ - QUALITY MARKER CODE TABLE: C 0. - MONITOR KEEP C 1. - GOOD @@ -1296,7 +1341,7 @@ FUNCTION IW3UNPBF(LUNIT,OBS,STNID,CRES1,CRES2,CBULL,OBS2,OBS3, $ NOBS3,obs8_8,DSNAME,IDSDAT,IDSDMP_8,SUBSET_r,SUBSKP,IER) - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300) COMMON/IUBFAA/BMISS COMMON/IUBFBB/KNDX,KSKACF(8),KSKUPA,KSKSFC,KSKSAT,KFLSAT(12), @@ -1377,6 +1422,7 @@ FUNCTION IW3UNPBF(LUNIT,OBS,STNID,CRES1,CRES2,CBULL,OBS2,OBS3, IKAT(6) = 6 IKAT(7) = 51 IKAT(8) = 8 + IKAT(9) = 10 ! incl. CH 01/19/2021 C MCAT defines the number of parameters in a level for each category C --> THIS NEEDS TO BE UPDATED WHEN ADDING MORE WORDS PER CAT LEVEL @@ -1389,6 +1435,7 @@ FUNCTION IW3UNPBF(LUNIT,OBS,STNID,CRES1,CRES2,CBULL,OBS2,OBS3, MCAT(6) = 11 ! Cat. 6 MCAT(7) = 13 ! Cat. 51 MCAT(8) = 4 ! Cat. 8 + MCAT(9) = 11 ! Cat. 10 incl. CH 01/19/2021 C LVDX defines location in UNP holding the no. of levels for each cat. @@ -1400,6 +1447,7 @@ FUNCTION IW3UNPBF(LUNIT,OBS,STNID,CRES1,CRES2,CBULL,OBS2,OBS3, LVDX(6) = 23 ! Cat. 6 LVDX(7) = 29 ! Cat. 51 LVDX(8) = 27 ! Cat. 8 + LVDX(9) = 31 ! Cat. 10 incl. CH 01/19/2021 ISET = 0 END IF @@ -1911,7 +1959,11 @@ FUNCTION C01UBF(SUBSET) C01UBF = 'SFCBOG' END IF ELSE IF(SUBSET(1:5).EQ.'NC002') THEN - C01UBF = 'ADPUPA' + IF(SUBSET(6:6).EQ.'1') THEN + C01UBF = 'UPRAIR' + ELSE + C01UBF = 'ADPUPA' + END IF ELSE IF(SUBSET(1:5).EQ.'NC004') THEN IF(SUBSET(6:8).EQ.'004' .OR. SUBSET(6:8).EQ.'007') THEN C01UBF = 'AIRCAR' @@ -1950,7 +2002,7 @@ FUNCTION R01UBF(SUBSET,LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) R01UBF = 4 ADPSUB = C01UBF(SUBSET) - IF(ADPSUB .EQ. 'ADPUPA') THEN + IF(ADPSUB .EQ. 'ADPUPA' .OR. ADPSUB .EQ. 'UPRAIR') THEN R01UBF = R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ELSE IF(ADPSUB(1:3).EQ.'AIR') THEN R01UBF = R05UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) @@ -1971,7 +2023,7 @@ SUBROUTINE S01UBF(SID,XOB,YOB,RHR,RCTIM,RSV1,RSV2,ELV,QMELV,ITP, $ RTP,RSTP,IDS) C ---> PROCESSES HEADER - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300) COMMON/IUBFAA/BMISS COMMON/IUBFDD/HDR(12),RCATS(50,LEVLIM,NUMCAT),IKAT(NUMCAT), @@ -2046,9 +2098,9 @@ SUBROUTINE S01UBF(SID,XOB,YOB,RHR,RCTIM,RSV1,RSV2,ELV,QMELV,ITP, SUBROUTINE S02UBF(ICAT,N,*) C ---> PROCESSES DATA LEVEL CATEGORIES - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300) -C Input argument ICAT - the category number (1,2,3,4,5,6,8,51) +C Input argument ICAT - the category number (1,2,3,4,5,6,8,10,51) C Input argument N - level indicator (unless = 0, then signals C subr. to write an empty cat. 2,3, or 4 level @@ -2080,6 +2132,9 @@ SUBROUTINE S02UBF(ICAT,N,*) c if(stnidx.eq.'89571 ') iprint = 1 c if(stnidx.eq.'68906 ') iprint = 1 c if(stnidx.eq.'68842 ') iprint = 1 + if(stnidx.eq.'10304 ') iprint = 1 + if(stnidx.eq.'70200 ') iprint = 1 + if(stnidx.eq.'72215 ') iprint = 1 c if(stnidx.eq.'74794 ') iprint = 1 c if(stnidx.eq.'74389 ') iprint = 1 c if(stnidx.eq.'96801A ') iprint = 1 @@ -2132,7 +2187,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C ----------------------------------------------------------------- IF(N.EQ.0) THEN - IF(ICAT.EQ.1) RETURN + IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) RETURN NCAT(KCAT) = MIN(LEVLIM-1,NCAT(KCAT)+1) if(iprint.eq.1) then print'(" To prepare for sfc. data, write all missings on ", @@ -2198,7 +2253,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C EACH DATA LEVEL CATEGORY NEEDS A SPECIFIC DATA ARRANGEMENT C ---------------------------------------------------------- - IF(ICAT.EQ.1) THEN + IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) THEN RCAT(1) = MIN(NINT(POB(N)),NINT(RCATS( 1,L,KCAT))) RCAT(2) = MIN(NINT(ZOB(N)),NINT(RCATS( 2,L,KCAT))) RCAT(3) = MIN(NINT(TOB(N)),NINT(RCATS( 3,L,KCAT))) @@ -2324,7 +2379,7 @@ SUBROUTINE S02UBF(ICAT,N,*) SUBROUTINE S03UBF(UNP,SUBSET,*,*,*) C ---> PACKS DATA INTO UNP ARRAY - PARAMETER (NUMCAT=8, LEVLIM=300, MAXOBS=3500) + PARAMETER (NUMCAT=9, LEVLIM=300, MAXOBS=3500) COMMON/IUBFDD/HDR(12),RCATS(50,LEVLIM,NUMCAT),IKAT(NUMCAT), $ MCAT(NUMCAT),NCAT(NUMCAT),LVDX(NUMCAT) @@ -2406,7 +2461,7 @@ SUBROUTINE S03UBF(UNP,SUBSET,*,*,*) SUBROUTINE S04UBF C ---> SORTS DATA LEVEL CATEGORIES - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300) COMMON/IUBFAA/BMISS COMMON/IUBFDD/HDR(12),RCATS(50,LEVLIM,NUMCAT),IKAT(NUMCAT), @@ -2429,7 +2484,7 @@ SUBROUTINE S04UBF $ 30.,20.,10./ C INSERT DATA LEVEL CATEGORY 1 PRESSURE & DEF. Q.M.'S INTO THOSE LEVELS -C WHERE MSSING +C WHERE MISSING C --------------------------------------------------------------------- DO I=1,NCAT(1) @@ -2765,7 +2820,7 @@ FUNCTION R02UBF() ERTUBF = 534 END IF ELSE IF(SUBSET(1:5).EQ.'NC002') THEN - IF(SUBSET(6:8).EQ.'001') THEN + IF(SUBSET(7:8).EQ.'01') THEN C LAND RADIOSONDE - FIXED C ----------------------- @@ -2773,26 +2828,26 @@ FUNCTION R02UBF() ERTUBF = 011 IF(L03UBF(RPID)) ERTUBF = 012 IF(RPID(1:4).EQ.'CLAS') ERTUBF = 013 - ELSE IF(SUBSET(6:8).EQ.'002') THEN + ELSE IF(SUBSET(7:8).EQ.'02') THEN C LAND RADIOSONDE - MOBILE C ------------------------ ERTUBF = 013 - ELSE IF(SUBSET(6:8).EQ.'003') THEN + ELSE IF(SUBSET(7:8).EQ.'03') THEN C SHIP RADIOSONDE C --------------- ERTUBF = 022 IF(RPID(1:4).EQ.'SHIP') ERTUBF = 023 - ELSE IF(SUBSET(6:8).EQ.'004') THEN + ELSE IF(SUBSET(7:8).EQ.'04') THEN C DROPWINSONDE C ------------- ERTUBF = 031 - ELSE IF(SUBSET(6:8).EQ.'005') THEN + ELSE IF(SUBSET(7:8).EQ.'05') THEN C PIBAL C ----- @@ -2910,7 +2965,7 @@ FUNCTION L01UBF() FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C ---> PROCESSES ADPUPA DATA (002/*, 004/005) - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300, MXLV=19999) COMMON/IUBFAA/BMISS COMMON/IUBFBB/KNDX,KSKACF(8),KSKUPA,KSKSFC,KSKSAT,KFLSAT(12), @@ -2925,21 +2980,23 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) COMMON/IUBFLL/Q81(255),Q82(255) COMMON/IUBFMM/XIND(255) - CHARACTER*80 HDSTR,LVSTR,QMSTR,RCSTR - CHARACTER*8 SUBSET,SID,RSV1,RSV2 + CHARACTER*80 HDSTR,LVSTR,QMSTR,RCSTR,HDSTB + CHARACTER*8 SUBSET,SID,RSV1,RSV2,BHD,BQ,RID2(700) REAL(8) RID_8,HDR_8(12),VSG_8(255),OBS2_8(43),OBS3_8(5,255,7), $ RCT_8(5,255),ARR_8(10,255),RAT_8(255),RMORE_8(4),RGP10_8(255), - $ PRGP10_8(255),RPMSL_8,RPSAL_8,BMISS,AMINIMUM_8,obs8_8(2) + $ PRGP10_8(255),RPMSL_8,RPSAL_8,BMISS,AMINIMUM_8,obs8_8(2), + $ VSGX8(MXLV),ARRX(10,MXLV),BHD8 DIMENSION OBS(*),OBS2(43),OBS3(5,255,7),NOBS3(7),RCT(5,255), $ ARR(10,255), RAT(255),RMORE(4),RGP10(255),PRGP10(255),P2(255), - $ P8(255),P16(255) + $ P8(255),P16(255),NUSL(MXLV) - EQUIVALENCE (RID_8,SID) + EQUIVALENCE (RID_8,SID),(BHD8,BHD) LOGICAL L02UBF SAVE DATA HDSTR/'NUL CLON CLAT HOUR MINU SELV '/ + DATA HDSTB/'NUL CLONH CLATH HOUR MINU HBMSL HEIT '/ ! BUFR DATA LVSTR/'PRLC TMDP TMDB GP07 GP10 WDIR WSPD '/ DATA QMSTR/'QMPR QMAT QMDD QMGP QMWN '/ DATA RCSTR/'RCHR RCMI RCTS '/ @@ -2966,6 +3023,50 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) OBS3_8 = BMISS NOBS3 = 0 obs8_8 = bmiss + NBFLG = 0 + NBMX = 4 + NSKP = 0 + + CALL UFBINT(LUNIT,RID_8,1,1,IRET,'RPID') + CALL READLC(LUNIT,SID,'RPID') + +CC ANALYZE BUHD CONTENT PRIOR TO VSIG/VSIGX READ CH 12/18/2020 +CC AND TO ADPUPA/UPRAIR CONTENT READ rev 03/23/2022 + CALL UFBINT(LUNIT,BHD8,1,1,IRET,'BUHD') + CALL READLC(LUNIT,BHD,'BUHD') + + IF (BHD(1:2).EQ.'IU') THEN + READ(BHD(5:5),'(I1)') IFTH + NBFLG = 9 + IF (BHD(3:3).EQ.'W') NBFLG = 1 + IF (BHD(3:3).EQ.'J') NBFLG = 2 + IF (BHD(3:3).EQ.'D') NBFLG = 2 +CCdesc revisit for descending radiosonde profiles + IF (BHD(3:3).EQ.'K') NBFLG = 2 + IF((BHD(3:3).EQ.'K').AND.(IFTH.LE.5)) NBFLG = 3 + IF (BHD(3:3).EQ.'S') NBFLG = 3 + IF((BHD(3:3).EQ.'S').AND.(IFTH.LE.5)) NBFLG = 4 +CCdesc IF (BHD(3:3).EQ.'X') NBFLG = 5 + ENDIF + + IF (SUBSET(1:6).EQ.'NC0020') THEN + NX=1 + IRT=0 + RID2='' + OPEN(92,IOSTAT=INP) + IF(INP.EQ.0) THEN + REWIND 92 + DO WHILE (NX.LT.700.AND.NSKP.EQ.0.AND.IRT.EQ.0) + READ(92,'(A8,1X,A8)',IOSTAT=IRT) RID2(NX), BQ + IF(SID.EQ.RID2(NX)) NSKP=1 + NX=NX+1 + ENDDO + CLOSE(92) + ENDIF + ENDIF + + IF(NSKP.GT.0) GOTO 9997 + CALL UFBINT(LUNIT,OBS2_8( 1),2,1,IRET,'RSRD EXPRSRD') CALL UFBINT(LUNIT,OBS2_8( 4),1,1,IRET,'SST1') IF(IBFMS(OBS2_8(4)).EQ.0) OBS2_8(41) = 2.0 @@ -3029,20 +3130,82 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C 2 Significant level, wind C processed as unpacked category 3 or 4 C +C 128 BUFR Vertical level +C processed as unpacked category 10 +C C NOTE: THIS SUBR. ASSIGNS VSIG=1 TO LEVELS THAT SHOULD BE C PROCESSED AS UNPACKED CATEGORY 6 (ONLY APPLIES TO C RECCOS) C C anything else - the level is not processed - - CALL UFBINT(LUNIT,VSG_8,1,255,NLEV,'VSIG');VSG=VSG_8 + + VSG_8 = BMISS + VSGX8 = BMISS + VLINC = BMISS + NUSL = 0 + +CC USE NBFLG TO CHOOSE VSIG OR VSIGX CH 12/18/2020 +CC rev 03/23/2022 + IF(NBFLG.EQ.0) + +CALL UFBINT(LUNIT,VSG_8,1,255,NLEV,'VSIG') + + IF ((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN +CC VSIGXs ARE READ INTO A LARGER ARRAY CH 11/12/2020 + CALL UFBINT(LUNIT,VSGX8,1,MXLV,NLEVX,'VSIGX') +CC +CC COMPUTE AN INTEGER SAMPLE INCREMENT ACCORDING TO NLEVX + IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN + VLINC = MAX(1.0,(REAL(NLEVX-100)/255.)) + LS = 1 + LX = 1 + NC = 0 + NC0 =0 + DO L2 = 1,NLEVX + NC=INT(REAL(L2)/VLINC) + IF (LS.LE.255) THEN + IF ((VSGX8(L2).GE.2048.).AND.(VSGX8(L2).LT.262144.)) THEN + NUSL(L2) = 1 +CC VSIGX -> VSIG + VSG_8(LS) = VSGX8(L2)/2048. + IF (VSG_8(LS).GE.4.) THEN + DO LE = 2,6 + LF = 2.**LE + LF1 = 2.**(LE+1) + IF ((VSG_8(LS).GT.LF).AND.(VSG_8(LS).LT.LF1)) + + VSG_8(LS) = LF + ENDDO + ELSE + VSG_8(LS) = 2.**7 + ENDIF + LS = LS + 1 + ELSE IF ((VSGX8(L2).EQ.0.).AND.(NC.EQ.LX).AND.(NC.GT.NC0)) THEN +CC CASE FOR VSIGX = 0 + NUSL(L2) = 1 + VSG_8(LS) = 2.**7 + LS = LS + 1 + LX = LX + 1 + NC0=NC + ENDIF + ENDIF +CC STEP TO THE NEXT LEVEL + ENDDO + NLEV=MIN(LS,255) + ENDIF + ENDIF +CC END VSIGX ANALYSIS CH 11/12/2020 (rev 07/08/2021) + VSG=VSG_8 C PUT THE HEADER INFORMATION INTO UNPACKED FORMAT C ----------------------------------------------- - - CALL UFBINT(LUNIT,HDR_8,12, 1,IRET,HDSTR);HDR=HDR_8 + + HDR_8=BMISS + CALL UFBINT(LUNIT,HDR_8,12, 1,IRET,HDSTR) + IF((HDR_8(2).GE.BMISS).AND.(HDR_8(3).GE.BMISS)) THEN + CALL UFBINT(LUNIT,HDR_8,12, 1,IRET,HDSTB) + ENDIF + HDR=HDR_8 IF(HDR(5).GE.BMISS) HDR(5) = 0 - CALL UFBINT(LUNIT,RID_8,1,1,IRET,'RPID') +C CALL UFBINT(LUNIT,RID_8,1,1,IRET,'RPID') cccc IF(IRET.NE.1.OR.(RID_8.GT.BMISS-5000..AND.RID_8.LT.BMISS+5000.)) cccc $ SID = 'MISSING ' cxxxx @@ -3054,7 +3217,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C above line not working right - may return 0 when missing, so use next C two lines below temporarily until this is fixed (readlc will return C all blanks for sid when mnemonic "RPID" not found) - dak 2/19/13 - call readlc(lunit,sid,'RPID') +C call readlc(lunit,sid,'RPID') cpppppppppp cc print'(" sid = """,A,"""")', sid cpppppppppp @@ -3071,6 +3234,10 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) c if(sid.eq.'74794 ') iprint = 1 c if(sid.eq.'74389 ') iprint = 1 c if(sid.eq.'96801A ') iprint = 1 + if(sid.eq.'10304 ') iprint = 1 + if(sid.eq.'57461 ') iprint = 1 + if(sid.eq.'70200 ') iprint = 1 + if(sid.eq.'72215 ') iprint = 1 if(iprint.eq.1) $ print'(" @@@ START DIAGNOSTIC PRINTOUT FOR ID ",A)', sid cppppp-ID @@ -3129,7 +3296,9 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) RCTIM = BMISS RSV1 = ' ' RSV2 = ' ' + ELV = BMISS ELV = HDR(6) + IF (ELV.GE.BMISS) ELV = HDR(7) QMELV = XMISS CALL UFBINT(LUNIT,RAT_8, 1,255,NLEV,'RATP');RAT=RAT_8 @@ -3137,7 +3306,8 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) RTP = ERTUBF(SUBSET,SID) IDS = IMISS IF(ELV.GE.BMISS) THEN - IF((RTP.GT.20.AND.RTP.LT.24).OR.SUBSET.EQ.'NC002004') THEN + IF((RTP.GT.20.AND.RTP.LT.24) + $ .OR.(RPT.EQ.31.AND.SUBSET.NE.'NC004005')) THEN print'(" IW3UNPBF/R03UBF: ID ",A," has a missing elev, so ", $ "elevation set to ZERO")', sid ELV = 0 @@ -3161,8 +3331,41 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C PUT THE LEVEL DATA INTO SPECIFIED UNPACKED FORMAT C ------------------------------------------------- - - CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,LVSTR);ARR=ARR_8 + + IF(NBFLG.EQ.0) + +CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,LVSTR) + +CCCCCCCCCCCCCCCCCCCv CH 11/12/2020 + + IF((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN +CC WITH VSIGX, VARIABLES ARE READ INTO LARGER ARRAY + CALL UFBINT(LUNIT,ARRX,10,MXLV,NLEVX,LVSTR) +C +C +CC +CC RECALL THAT VLINC = NLEVX / 255 + IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN + LS = 1 + DO L2 = 1,NLEVX + IF (NUSL(L2).EQ.1) THEN +CC ARRX -> ARR_8 + DO MS = 1,10 + ARR_8(MS,LS) = ARRX(MS,L2) + ENDDO +C +C drift information to be added here +C + LS = LS + 1 +c MC0=NC + ENDIF +CC STEP TO THE NEXT LEVEL + ENDDO + NLEV=MIN(LS,255) + ENDIF + ENDIF + + ARR=ARR_8 +CCCCCCCCCCCCCCCCCCC^ CH 11/12/2020 PWMIN = 999999. @@ -3209,7 +3412,34 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) IF(MAX(POB(L),DOB(L),SOB(L)).LT.BMISS) PWMIN =MIN(PWMIN,POB(L)) ENDDO - CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,QMSTR);ARR=ARR_8 + IF(NBFLG.EQ.0) + +CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,QMSTR) + +CCCCCCCCCCCCCCCCCCCv CH 11/12/2020 + + IF((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN +CC WITH VSIGX, VARIABLES ARE READ INTO LARGER ARRAY + CALL UFBINT(LUNIT,ARRX,10,MXLV,NLEVX,QMSTR) +CC + IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN +CC RECALL THAT VLINC = NLEVX / 255 + LS = 1 + DO L2 = 1,NLEVX + IF (NUSL(L2).EQ.1) THEN +CC ARRX -> ARR_8 + DO MS = 1,10 + ARR_8(MS,LS) = ARRX(MS,L2) + ENDDO + LS = LS + 1 + ENDIF +CC STEP TO THE NEXT LEVEL + ENDDO + NLEV=MIN(LS,255) + ENDIF + ENDIF + + ARR=ARR_8 +CCCCCCCCCCCCCCCCCCC^ CH 11/12/2020 DO L=1,NLEV PQM(L) = EQMUBF(ARR(1,L)) @@ -3371,6 +3601,25 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) VSG(L) = 0 END IF END IF +Ccccccc v CH 01/19/2021 + ELSE IF (NINT(VSG(L)).EQ.128) THEN + IF(MIN(DOB(L),ZOB(L),TOB(L)).GE.BMISS) THEN + if(iprint.eq.1) then + print'(" ==> For lvl ",I0,"; VSG=",F4.0" & DOB,ZOB," + $ " TOB are all missing --> this level is not ", + + " processed")', L, VSG(L) + end if + VSG(L) = 0 + ELSE + if(iprint.eq.1) then + print'("==> For lvl ",I0,"; VSG=",F4.0," & one or", + $ "more of ZOB,TOB,DOB non-missing --> valid cat.10 ", + $ "lvl")', L, VSG(L) + end if + CALL S02UBF(10,L,*9999) !! BUFR levels + VSG(L) = 0 + END IF +Ccccccccc ^ ELSE IF(NINT(VSG(L)).EQ. 4) THEN if(iprint.eq.1) then print'(" ==> For lvl ",I0,"; VSG= 4 --> valid cat. 2 ", @@ -3605,7 +3854,14 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) CALL S02UBF(8,L,*9999) ENDDO - CALL UFBINT(LUNIT,RMORE_8,4,1,NRMORE,'SIRC TTSS UALNHR UALNMN') + IF(NBFLG.EQ.0) + +CALL UFBINT(LUNIT,RMORE_8,4,1,NRMORE,'SIRC TTSS UALNHR UALNMN') +CCCCCCCCCCCCCCCCCCCv CH 11/13/2020 + IF((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN + CALL UFBINT(LUNIT,RMORE_8,2,1,NRMORE,'SIRC TTSS') + CALL UFBINT(LUNIT,RMORE_8(3),2,1,NRMORE,'HOUR MINU') + END IF +CCCCCCCCCCCCCCCCCCC^ CH 11/13/2020 RMORE=RMORE_8 IF(MAX(RMORE(3),RMORE(4)).LT.BMISS) THEN CF8(1) = 104 @@ -3660,7 +3916,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) RETURN 9998 CONTINUE print'("IW3UNPBF/R03UBF: RPT with ID= ",A," TOSSED - ZERO ", - $ "CAT.1-6,51 LVLS")', SID + $ "CAT.1-6,10,51 LVLS")', SID 9997 CONTINUE R03UBF = -9999 KSKUPA =KSKUPA + 1 diff --git a/sorc/prepobs_prepdata.fd/prepdata.f b/sorc/prepobs_prepdata.fd/prepdata.f index 885f323..ecdf021 100644 --- a/sorc/prepobs_prepdata.fd/prepdata.f +++ b/sorc/prepobs_prepdata.fd/prepdata.f @@ -5515,7 +5515,15 @@ SUBROUTINE RPTLBL(CYCLET) ELSE IF(CBULL.EQ.'IUAX01 MMMX') THEN HDR(8) = 2. ! Mexican MDCRS ELSE IF(CBULL.EQ.'IUAX06 KARP') THEN - HDR(8) = 3. ! ADS-C MDCRS + HDR(8) = 3. ! ADS-C U.S. + ELSE IF(CBULL.EQ.'IUAX07 KARP') THEN + HDR(8) = 4. ! ADS-C non-U.S. + ELSE IF(CBULL.EQ.'IUAI01 SCSC') THEN + HDR(8) = 5. ! LATAM AMDAR + ELSE IF(CBULL(1:3).EQ.'IUA'.AND.CBULL(8:11).EQ.'BABJ') THEN + HDR(8) = 6. ! China AMDAR + ELSE IF(CBULL.EQ.'IUAX92 KARP') THEN + HDR(8) = 9. ! ADS-C experimental END IF END IF C RECEIPT TIME GOES IN HDR(5) From cfa91ddee67ccb514592b413dd55c8199669f02f Mon Sep 17 00:00:00 2001 From: Steve Stegall Date: Wed, 20 Jul 2022 16:54:16 +0000 Subject: [PATCH 08/78] updated for nsst_subpfl --- ush/prepobs_makeprepbufr.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/prepobs_makeprepbufr.sh b/ush/prepobs_makeprepbufr.sh index e400e2c..428ef71 100755 --- a/ush/prepobs_makeprepbufr.sh +++ b/ush/prepobs_makeprepbufr.sh @@ -1119,7 +1119,7 @@ PRPT=${PRPT:-$FIXPREP/prepobs_prep.bufrtable} cp $PRPT prep.bufrtable LANDC=${LANDC:-$FIXPREP/prepobs_landc} if [ "$RUN" = 'gdas' -o "$RUN" = 'gfs' ]; then - PRVT=${PRVT:-$HOMEgfs/fix/fix_gsi/prepobs_errtable.global} + PRVT=${PRVT:-$HOMEgfs/fix/prepobs_errtable.global} elif [ "$NET" = 'cdas' ]; then PRVT=${PRVT:-$HOMEprepobs/fix/prepobs_errtable.cdas} elif [ "$NET" = 'nam' ]; then From 64aa654e7e0b2751e5d5a6e89e9de8a017ee0801 Mon Sep 17 00:00:00 2001 From: Iliana Genkova Date: Thu, 15 Sep 2022 17:29:40 +0000 Subject: [PATCH 09/78] reshuffled files --- CMakeLists.txt | 2 +- README.md => docs/README.md | 0 docs/Release_Notes.txt | 193 ++++++++++++++++++++++++++++++++++++ build.sh => ush/build.sh | 2 +- VERSION => versions/VERSION | 0 5 files changed, 195 insertions(+), 2 deletions(-) rename README.md => docs/README.md (100%) create mode 100644 docs/Release_Notes.txt rename build.sh => ush/build.sh (91%) rename VERSION => versions/VERSION (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5dac465..990a4f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.18) # Get the version from the VERSION file. -file(STRINGS "VERSION" pVersion) +file(STRINGS "versions/VERSION" pVersion) project( obsproc diff --git a/README.md b/docs/README.md similarity index 100% rename from README.md rename to docs/README.md diff --git a/docs/Release_Notes.txt b/docs/Release_Notes.txt new file mode 100644 index 0000000..1619594 --- /dev/null +++ b/docs/Release_Notes.txt @@ -0,0 +1,193 @@ +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +prepobs v1.0.0 RELEASED MAR 01, 2022 + v1.0.1 IMPLEMENTED JUN 28, 2022 + +Transition from WCOSS Cray and Phase3 to WCOSS2 +=============================================== +Usage + module use /apps/ops/test/nco/modulefiles/compiler/intel/19.1.3.304 + module load prepobs/1.0.1 + +Where is the release tag on subversion/git/vlab? + git clone https://github.com/NOAA-EMC/prepobs + git checkout release/prepobs.v1.0.0 + +List of external software used (anything outside of your vertical structure), including compilers and version numbers for everything + Software used must be a minimal list of modules/versions specified per job + bacio_ver=2.4.1 + w3emc_ver=2.9.1 + bufr_ver=11.5.0 + +List of all code/scripts modified with this release +--------------------------------------------------- +A CMakeLists.txt +A README.md +A VERSION +A build.sh +A cmake/FindMKL.cmake +A cmake/FindNetCDF.cmake +A fix/CMakeLists.txt + fix/gdascounts_avg.awk + fix/gdascounts_base.shtml + fix/gdascounts_html + fix/gdascounts_types + fix/glerldict.lmd + fix/prepobs_cqc_statbge + fix/prepobs_errtable.cdas + fix/prepobs_errtable.nam + fix/prepobs_oiqc.oberrs + fix/prepobs_oiqc.oberrs.cdas + fix/prepobs_prep.bufrtable + fix/satellite_counts.tbl + fix/syndat_weight +A modulefiles/CMakeLists.txt +A modulefiles/prepobs.lua.tmpl +A modulefiles/prepobs_common.lua +A modulefiles/prepobs_hera.lua +A modulefiles/prepobs_orion.lua +A modulefiles/prepobs_wcoss2.lua +A scripts/CMakeLists.txt +M scripts/exprep_post.sh +A sorc/CMakeLists.txt +A sorc/gblevents.fd/CMakeLists.txt + sorc/gblevents.fd/gblevents.f +A sorc/gdascounts_ave.fd/CMakeLists.txt + sorc/gdascounts_ave.fd/build_new.f +A sorc/global_postevents.fd/CMakeLists.txt + sorc/global_postevents.fd/postevents.f +A sorc/prepobs_cqcbufr.fd/CMakeLists.txt + sorc/prepobs_cqcbufr.fd/cqcbufr.f + sorc/prepobs_cqcbufr.fd/radcor.f +A sorc/prepobs_cqcvad.fd/CMakeLists.txt + sorc/prepobs_cqcvad.fd/cqcvad.f +A sorc/prepobs_glerladj.fd/CMakeLists.txt + sorc/prepobs_glerladj.fd/glerldictmod.f90 + sorc/prepobs_glerladj.fd/glerlmain.f90 + sorc/prepobs_glerladj.fd/indict.f90 + sorc/prepobs_glerladj.fd/landtowater.f90 + sorc/prepobs_glerladj.fd/spd_to_dir.f90 + sorc/prepobs_glerladj.fd/td_to_q.f90 + sorc/prepobs_glerladj.fd/uv_to_sd.f90 + sorc/prepobs_glerladj.fd/uz.f + sorc/prepobs_glerladj.fd/uzl.f + sorc/prepobs_glerladj.fd/watertoland.f90 +A sorc/prepobs_listheaders.fd/CMakeLists.txt + sorc/prepobs_listheaders.fd/listheaders.f90 +A sorc/prepobs_monoprepbufr.fd/CMakeLists.txt + sorc/prepobs_monoprepbufr.fd/monoprepbufr.f90 +A sorc/prepobs_mpcopybufr.fd/CMakeLists.txt + sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 +A sorc/prepobs_oiqcbufr.fd/CMakeLists.txt + sorc/prepobs_oiqcbufr.fd/oiqcbufr.f +A sorc/prepobs_prepacpf.fd/CMakeLists.txt + sorc/prepobs_prepacpf.fd/prepacpf.f +A sorc/prepobs_prepacqc.fd/CMakeLists.txt + sorc/prepobs_prepacqc.fd/acftobs_qc.f + sorc/prepobs_prepacqc.fd/indexc40.f + sorc/prepobs_prepacqc.fd/input_acqc.f + sorc/prepobs_prepacqc.fd/output_acqc_noprof.f + sorc/prepobs_prepacqc.fd/output_acqc_prof.f + sorc/prepobs_prepacqc.fd/pietc.f90 + sorc/prepobs_prepacqc.fd/pkind.f90 + sorc/prepobs_prepacqc.fd/pmat.f90 + sorc/prepobs_prepacqc.fd/pmat2.f90 + sorc/prepobs_prepacqc.fd/pmat3.f90 + sorc/prepobs_prepacqc.fd/prepacqc.f + sorc/prepobs_prepacqc.fd/pspl.f90 + sorc/prepobs_prepacqc.fd/sub2mem_mer.f + sorc/prepobs_prepacqc.fd/sub2mem_um.f + sorc/prepobs_prepacqc.fd/tranQCflags.f +A sorc/prepobs_prepdata.fd/CMakeLists.txt + sorc/prepobs_prepdata.fd/inc_w3unpkb7.inc + sorc/prepobs_prepdata.fd/iw3unpbf.f + sorc/prepobs_prepdata.fd/prepdata.f + sorc/prepobs_prepdata.fd/w3atovsunp.f + sorc/prepobs_prepdata.fd/w3cnvxtovs.f + sorc/prepobs_prepdata.fd/w3rtovsunp.f + sorc/prepobs_prepdata.fd/w3unpkb7.f + sorc/prepobs_prepdata.fd/w3xtovseds.f + sorc/prepobs_prepdata.fd/w3xtovsmnd.f + sorc/prepobs_prepdata.fd/wordlength.f +A sorc/prepobs_prevents.fd/CMakeLists.txt + sorc/prepobs_prevents.fd/gblevents_cdas.f + sorc/prepobs_prevents.fd/prevents.f +A sorc/prepobs_profcqc.fd/CMakeLists.txt + sorc/prepobs_profcqc.fd/profcqc.f +A sorc/syndat_syndata.fd/CMakeLists.txt + sorc/syndat_syndata.fd/syndata.f +A sorc/timetwin.fd/CMakeLists.txt + sorc/timetwin.fd/timetwin.f +A ush/CMakeLists.txt + ush/build_mainpage.sh + ush/download_fix.sh +M ush/gdas_counts.sh + ush/gdas_countstat.sh + ush/gdas_summary.sh + ush/gdascounts_combine.sh + ush/getges.sh + ush/getges_driver.sh + ush/getges_nc.sh + ush/getges_sig.sh + ush/global_postevents.sh + ush/mstr_shp_stn_lst_update.sh + ush/mstr_shp_stn_lst_update2.sh + ush/prepobs_cqcbufr.sh + ush/prepobs_cqcvad.sh + ush/prepobs_glerladj.sh +M ush/prepobs_makeprepbufr.sh + ush/prepobs_oiqcbufr.sh + ush/prepobs_prepacqc.sh + ush/prepobs_prevents.sh + ush/prepobs_profcqc.sh + ush/prepobs_syndata.sh + ush/satellite_daily.pl + ush/satellite_html.pl + ush/satellite_summary.sh +A versions/README +A versions/build.ver +------------------------------ +M-modified; A-added; D-deleted + +What changes were made to the above code/scripts to support the new architecture? + prep and prep_post have been removed from the obsproc software package to be a standalone application, installed on WCOSS2 as a module. + prepobs has been moved to github as its own repository. https://github.com/NOAA-EMC/prepobs + prepobs utilizes cmake to build and install the code. build prepobs repo with cmake + +Were any other changes made that aren’t directly related to the transition? + No + +Are there any changes to incoming data needs or outgoing products? + No + +If output filenames are changing, list the current and new filename + N/A + +Compute resource information, for every job: + Please see https://github.com/NOAA-EMC/obsproc release branch release/obsproc.v1.0.0/triggers for various network j*dump.wc2.pbs trigger settings + Total tasks + Tasks per node + Serial or parallel or mpmd + Memory requirements (exclusive or shared) + +List any other PBS resource information requirements or MPI tunables + *** Providing PBS and/or ecFlow submission scripts as part of release tag is preferred; if they are provided then resource information is not needed in the release notes. + +Runtime changes compared to current production (/gpfs/dell1/nco/ops/com/logs/runtime/daily/* for current stats) + Optimization for network dump jobs was not performed prior to release because of the team reshuffling and resultant tight deadline. + Obsproc developers will work with assigned SPA to meet optimization goals for network dump jobs. + +Disk space required per day or per cycle; data retention on disk will remain the same unless otherwise requested. + Same as WCOSS1 + +Dissemination will remain the same unless otherwise communicated to NCO and a PNS/SCN issued + HPSS archive retention will remain the same unless approval granted by HPCRAC + +What are your up and downstream dependencies? + Upstream: decoders, satingest ($DCOMROOT) + +Provide a pointer to your COMOUT, temp directory and pbspro output file that was used during testing: + see obsproc.v1.0.0 Release Notes +=========================================================================== +WCOSS1 RN:https://github.com/ShelleyMelchior-NOAA/smelchior/tree/main/RNs + +END diff --git a/build.sh b/ush/build.sh similarity index 91% rename from build.sh rename to ush/build.sh index 8bae9f4..6164aba 100755 --- a/build.sh +++ b/ush/build.sh @@ -3,7 +3,7 @@ set -eux # Location of PWD and package source directory. -pkg_root=`dirname $(readlink -f $0)` +readonly pkg_root=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )/.." && pwd -P) INSTALL_TARGET=${INSTALL_TARGET:-"wcoss2"} INSTALL_PREFIX=${INSTALL_PREFIX:-"$pkg_root/install"} diff --git a/VERSION b/versions/VERSION similarity index 100% rename from VERSION rename to versions/VERSION From 621d61cc4a27fa397b26f941ecd81f9824c206c3 Mon Sep 17 00:00:00 2001 From: Iliana Genkova Date: Mon, 19 Sep 2022 17:55:34 +0000 Subject: [PATCH 10/78] Updatte README.md --- docs/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/README.md b/docs/README.md index 3ebfc59..f23acbb 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,7 +11,7 @@ git clone https://github.com/noaa-emc/prepobs Move into desired branch and then run: ```bash -INSTALL_PREFIX=/path/you/wish/to/install/prepobs ./build.sh +INSTALL_PREFIX=/path/you/wish/to/install/prepobs ./ush/build.sh ``` build.sh default to building for WCOSS2, but it also supports Hera and Orion by setting `INSTALL_TARGET=hera/orion/wcoss2` @@ -19,11 +19,11 @@ build.sh default to building for WCOSS2, but it also supports Hera and Orion by or install in local clone space: ```bash -./build.sh +./ush/build.sh ``` There is also the option to build and install in your local clone space but install the modulefile elsewhere: ```bash -MODULEFILE_INSTALL_PREFIX=/path/you/wish/to/install/prepobs/module ./build.sh +MODULEFILE_INSTALL_PREFIX=/path/you/wish/to/install/prepobs/module ./ush/build.sh ``` Installation is complete. From 712cd3a6141ebe76a4c2fb4bd52174957badf215 Mon Sep 17 00:00:00 2001 From: Iliana Genkova Date: Tue, 27 Sep 2022 15:35:21 +0000 Subject: [PATCH 11/78] module purge -> reset --- ush/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/build.sh b/ush/build.sh index 6164aba..74d4387 100755 --- a/ush/build.sh +++ b/ush/build.sh @@ -13,7 +13,7 @@ target=$(echo $INSTALL_TARGET | tr [:upper:] [:lower:]) if [[ "$target" =~ ^(wcoss2|hera|orion)$ ]]; then source $pkg_root/versions/build.ver set +x - module purge + module reset module use $pkg_root/modulefiles module load prepobs_$target module list From ea788406af37e334493dce42b466b6b2feea966f Mon Sep 17 00:00:00 2001 From: christopher hill Date: Tue, 4 Oct 2022 04:02:30 +0000 Subject: [PATCH 12/78] Iss49636 - Multiple changes to allow uprair data processing to prepbufr are ported from WCOSS1 to WCOSS2, or otherwise configured for WCOSS2. --- fix/prepobs_prep.bufrtable | 4 + sorc/prepobs_cqcbufr.fd/CMakeLists.txt | 2 +- sorc/prepobs_cqcbufr.fd/cqcbufr.f | 8 +- sorc/prepobs_mpcopybufr.fd/CMakeLists.txt | 2 +- sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 | 26 +- sorc/prepobs_prepdata.fd/CMakeLists.txt | 2 +- sorc/prepobs_prepdata.fd/iw3unpbf.f | 367 +++++++++++++++++++--- sorc/prepobs_prepdata.fd/prepdata.f | 244 ++++++++++---- sorc/syndat_syndata.fd/CMakeLists.txt | 2 +- sorc/syndat_syndata.fd/syndata.f | 4 + ush/prepobs_makeprepbufr.sh | 87 +++-- 11 files changed, 619 insertions(+), 129 deletions(-) diff --git a/fix/prepobs_prep.bufrtable b/fix/prepobs_prep.bufrtable index 670f493..b79a1c6 100644 --- a/fix/prepobs_prep.bufrtable +++ b/fix/prepobs_prep.bufrtable @@ -27,6 +27,7 @@ | RASSDA | A48119 | RADIO ACOUSTIC SOUNDING SYSTEM (RASS) TEMP PROFILE RPTS | | WDSATR | A48120 | WINDSAT SCATTEROMETER DATA (REPROCESSED) | | ASCATW | A48121 | ASCAT SCATTEROMETER DATA (REPROCESSED) | +| UPRAIR | A48122 | UPPER-AIR (BUFR RAOB, PIBAL, DROPS) REPORTS | * | * | * THE FOLLOWING ARE TABLE D ENTRIES FOR SEQUENCES DEFINED IN TABLE A ENTRIES | @@ -627,6 +628,9 @@ | | | | ASCATW | HEADR CAT SAID CTCN WVCQ BSCD LKCS | | | | +| UPRAIR | HEADR SIRC {PRSLEVEL} {CLOUDSEQ} | +| UPRAIR | | +| | | | HEADR | SID 207003 XOB YOB 207000 DHR ELV TYP T29 | | HEADR | TSB ITP SQN PROCN RPT TCOR | | | | diff --git a/sorc/prepobs_cqcbufr.fd/CMakeLists.txt b/sorc/prepobs_cqcbufr.fd/CMakeLists.txt index d5ca52b..b25e332 100644 --- a/sorc/prepobs_cqcbufr.fd/CMakeLists.txt +++ b/sorc/prepobs_cqcbufr.fd/CMakeLists.txt @@ -13,6 +13,6 @@ add_executable(${exe_name} ${fortran_src}) target_link_libraries( ${exe_name} w3emc::w3emc_4 - bufr::bufr_4) + bufr::bufr_4_DA) install(TARGETS ${exe_name} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/sorc/prepobs_cqcbufr.fd/cqcbufr.f b/sorc/prepobs_cqcbufr.fd/cqcbufr.f index 09b9ebd..a70cadd 100644 --- a/sorc/prepobs_cqcbufr.fd/cqcbufr.f +++ b/sorc/prepobs_cqcbufr.fd/cqcbufr.f @@ -354,9 +354,12 @@ PROGRAM PREPOBS_CQCBUFR C overflow when either an INTEGER*4 variable is set to BMISS or a C REAL*8 (or REAL*4) variable that is missing is NINT'd C ------------------------------------------------------------------- + CALL ISETPRM ( 'MXMSGL', 600000 ) ! CH 08/31/21 + CALL ISETPRM ( 'MAXSS', 600000 ) ! CH 08/31/21 ccccc CALL SETBMISS(10E10_8) CALL SETBMISS(10E8_8) BMISS=GETBMISS() + CALL MAXOUT(50000) ! CH 08/31/21 XMISS=BMISS IMISS=10E8 print * @@ -7318,7 +7321,10 @@ SUBROUTINE INPUT(START,ENDIN,SKIP,SAME,WIND,ITIME,USESQN) CALL CLOSBF(NFIN) REWIND NFIN CALL OPENBF(NFIN,'IN',NFIN) - IF(ITIME.EQ.2) CALL OPENBF(NFOUT,'OUT',NFIN) + IF(ITIME.EQ.2) THEN + CALL OPENBF(NFOUT,'OUT',NFIN) + CALL MAXOUT(50000) ! CH 08/31/21 + ENDIF IS = 0 DO I=1,NST SQN(I) = 0. diff --git a/sorc/prepobs_mpcopybufr.fd/CMakeLists.txt b/sorc/prepobs_mpcopybufr.fd/CMakeLists.txt index a819a3d..a0b85ea 100644 --- a/sorc/prepobs_mpcopybufr.fd/CMakeLists.txt +++ b/sorc/prepobs_mpcopybufr.fd/CMakeLists.txt @@ -13,6 +13,6 @@ add_executable(${exe_name} ${fortran_src}) target_link_libraries( ${exe_name} w3emc::w3emc_4 - bufr::bufr_4) + bufr::bufr_4_DA) install(TARGETS ${exe_name} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 b/sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 index fc58e2c..81c5648 100644 --- a/sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 +++ b/sorc/prepobs_mpcopybufr.fd/mpcopybufr.f90 @@ -66,7 +66,8 @@ PROGRAM PREPOBS_MPCOPYBUFR ! PROGRAM PREPOBS_MPCOPYBUFR -CHARACTER*8 SUBSET +CHARACTER*8 SUBSET,CRPID,CBUHD +REAL*8 RPID8,BUHD8 namelist /namin/nfiles @@ -81,6 +82,9 @@ PROGRAM PREPOBS_MPCOPYBUFR CALL DATELEN(10) +CALL ISETPRM ( 'MXMSGL', 600000 ) ! CH 05/19/22 +CALL ISETPRM ( 'MAXSS', 600000 ) ! CH 05/19/22 + do i=1,nfiles CALL OPENBF(LUNIN,'IN ',LUNIN) @@ -98,6 +102,26 @@ PROGRAM PREPOBS_MPCOPYBUFR DO WHILE(MP_IREADMG(LUNIN,SUBSET,IDATE).EQ.0) CALL COPYMG(LUNIN,LUNOT) +! Find UPRAIR data, read the RPID and BUHD, and write to common external file + IF(SUBSET(1:6).EQ.'NC0021') THEN + IRT=0 + DO WHILE(IRT.EQ.0) + CALL READSB(LUNIN,IRT) + write(88,*) IRT, SUBSET + IF(IRT.EQ.0) THEN + CALL UFBINT(LUNIN,RPID8,1,1,NLEV,'RPID') + WRITE(CRPID,'(A8)') RPID8 + write(88,*) SUBSET, CRPID + IF(IBFMS(RPID8).EQ.0) THEN + CALL UFBINT(LUNIN,BUHD8,1,1,NLEV,'BUHD') + WRITE(CBUHD,'(A8)') BUHD8 +! IF(CBUHD(1:2).EQ.'IU') WRITE(91,'(A8,1X,A8)') CRPID, CBUHD + WRITE(91,'(A8,1X,A8)') CRPID, CBUHD + ENDIF + ENDIF + ENDDO + ENDIF +! End UPRAIR station content search CH 05/06/202 ENDDO CALL CLOSBF(LUNIN) diff --git a/sorc/prepobs_prepdata.fd/CMakeLists.txt b/sorc/prepobs_prepdata.fd/CMakeLists.txt index b91e5a5..e58d3a6 100644 --- a/sorc/prepobs_prepdata.fd/CMakeLists.txt +++ b/sorc/prepobs_prepdata.fd/CMakeLists.txt @@ -23,7 +23,7 @@ target_include_directories(${exe_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries( ${exe_name} gblevents - bufr::bufr_4) + bufr::bufr_4_DA) if(MKL_FOUND) target_link_libraries( diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index ca116c6..390e501 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -520,16 +520,47 @@ C 005068, 005069. c 2020-10-15 JWhiting -- added trap to pull dump mnemonics specific to c BUFR feed buoy data streams so as to properly encode prepbufr -c wave height & frequecy mnemonics (HOWV POWV). -c 2021-03-30 JWhiting - +c wave height & frequency mnemonics (HOWV POWV). +c 2021-03-30 JWhiting - C - Fixed ambiguity in trap for buoy SST values (msg types 102-3) -C - Assigned input report type values of 524-5 to BUFR-feed ships -c data, for named and unnamed obs, respectively (TAC-feeds remain +C - Assigned input report type values of 524-5 to BUFR-feed ships +c data, for named and unnamed obs, respectively (TAC-feeds remain c as 522-3). C - Assigned input report type value of 530 to BUFR-feed C-MAN C reports. +C 2021-04-15 C. Hill -- +C = This routine is updated to allow the reading and unpacking of +C radiosonde and dropsonde profile data from the 'uprair' dump +C files. The profiles originate from BUFR files, and typically +C feature many hundreds of additional vertical levels. +C - Dynamic memory allocation is invoked with the BUFR library +C (within prepdata.f) to accommodate the greater volume of data +C with each profile. +C - A new data category (ICAT=10) is introduced for paired +C observations of temperature, humidity, and wind that are +C not otherwise associated with a mandatory (ICAT=1) vertical +C level. NUMCAT is increased to 9. VSIG=128 is dedicated for +C data with ICAT=10 within this routine. +C - NBFLG is introduced in R03UBF to determine format origin +C of sonde data (0 - TAC | 1/2 - BUFR | 9 - experimental), +C and is used to determine procedure in processing sonde data. +C VLINC is the increment of NLEVX levels to be captured for +C the 255-element output array; the arrays of the VSIGX, LVSTR, +C and QMSTR fields are reduced accordingly. +C - 16-bit values of VSIGX are translated to 8-bit values of VSIG. +C - HBMSL or HEIT is read in place of SELV. HOUR and MINU are read +C in place of UALNHR and UALNMN, respectively. +C = Time and position displacement data, derived from the GNSS +C receiver aboard the sonde, are available for future development +C of BUFR profile processing. C 2021-07-14 J. Dong -- In function R04UBF, added code to encode the C cloud data for the BUFR-feed ships data. +C 2022-09-30 C. Hill -- +C = Mandatory and surface vertical levels (VSIG = 32,64) are retained +C from the profiles of 'uprair' dump files. An increment is +C defined from the number of available vertical levels of each +C 'uprair' profile and used to port additional vertical level +C data to the 255-element arrays of prepbufr. C C C USAGE: II = IW3UNPBF(NUNIT, OBS, STNID, CRES1, CRES2, CBULL, OBS2, @@ -723,7 +754,9 @@ C 28 CATEGORY 8, DATA INDEX COUNT INTEGER C 29 CATEGORY 51, NO. LEVELS COUNT INTEGER C 30 CATEGORY 51, DATA INDEX COUNT INTEGER -C 31-52 ZEROED OUT - NOT USED INTEGER +C 31 CATEGORY 10, NO. LEVELS COUNT INTEGER +C 32 CATEGORY 10, DATA INDEX COUNT INTEGER +C 33-52 ZEROED OUT - NOT USED INTEGER C C 53-END UNPACKED DATA GROUPS (SEE BELOW) MIXED C @@ -961,6 +994,24 @@ C 12 ATEMP QUALITY MARKER (SEE $) REAL C 13 DDPR. QUALITY MARKER (SEE $) REAL C +C DATA LEVEL CATEGORY 10 - BUFR VERTICAL LEVEL DATA +C WORD PARAMETER UNITS FORMAT +C ---- --------- ----------------- ------------- +C 1 PRESSURE 0.1 MILLIBARS REAL +C 2 GEOPOTENTIAL METERS REAL +C 3 TEMPERATURE 0.1 DEGREES C REAL +C 4 DEWPOINT DEPRESSION 0.1 DEGREES C REAL +C 5 WIND DIRECTION DEGREES REAL +C 6 WIND SPEED 0.1 METERS/SEC REAL +C 7 PRES. QUALITY MARKER (SEE $) REAL +C 8 GEOP. QUALITY MARKER (SEE $) REAL +C 9 TEMP. QUALITY MARKER (SEE $) REAL +C 10 DDPR. QUALITY MARKER (SEE $) REAL +C 11 WIND QUALITY MARKER (SEE $) REAL +C 12 TIME PERIOD DISPLACEMENT SECONDS REAL +C 13 LATITUDE DISPLACEMENT DEGREES REAL +C 14 LONGITUDE DISPLACEMENT DEGREES REAL +C C $ - QUALITY MARKER CODE TABLE: C 0. - MONITOR KEEP C 1. - GOOD @@ -1296,7 +1347,7 @@ FUNCTION IW3UNPBF(LUNIT,OBS,STNID,CRES1,CRES2,CBULL,OBS2,OBS3, $ NOBS3,obs8_8,DSNAME,IDSDAT,IDSDMP_8,SUBSET_r,SUBSKP,IER) - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300) COMMON/IUBFAA/BMISS COMMON/IUBFBB/KNDX,KSKACF(8),KSKUPA,KSKSFC,KSKSAT,KFLSAT(12), @@ -1377,6 +1428,7 @@ FUNCTION IW3UNPBF(LUNIT,OBS,STNID,CRES1,CRES2,CBULL,OBS2,OBS3, IKAT(6) = 6 IKAT(7) = 51 IKAT(8) = 8 + IKAT(9) = 10 ! incl. CH 01/19/2021 C MCAT defines the number of parameters in a level for each category C --> THIS NEEDS TO BE UPDATED WHEN ADDING MORE WORDS PER CAT LEVEL @@ -1389,6 +1441,7 @@ FUNCTION IW3UNPBF(LUNIT,OBS,STNID,CRES1,CRES2,CBULL,OBS2,OBS3, MCAT(6) = 11 ! Cat. 6 MCAT(7) = 13 ! Cat. 51 MCAT(8) = 4 ! Cat. 8 + MCAT(9) = 11 ! Cat. 10 incl. CH 01/19/2021 C LVDX defines location in UNP holding the no. of levels for each cat. @@ -1400,6 +1453,7 @@ FUNCTION IW3UNPBF(LUNIT,OBS,STNID,CRES1,CRES2,CBULL,OBS2,OBS3, LVDX(6) = 23 ! Cat. 6 LVDX(7) = 29 ! Cat. 51 LVDX(8) = 27 ! Cat. 8 + LVDX(9) = 31 ! Cat. 10 incl. CH 01/19/2021 ISET = 0 END IF @@ -1911,7 +1965,11 @@ FUNCTION C01UBF(SUBSET) C01UBF = 'SFCBOG' END IF ELSE IF(SUBSET(1:5).EQ.'NC002') THEN - C01UBF = 'ADPUPA' + IF(SUBSET(6:6).EQ.'1') THEN + C01UBF = 'UPRAIR' + ELSE + C01UBF = 'ADPUPA' + END IF ELSE IF(SUBSET(1:5).EQ.'NC004') THEN IF(SUBSET(6:8).EQ.'004' .OR. SUBSET(6:8).EQ.'007') THEN C01UBF = 'AIRCAR' @@ -1950,7 +2008,7 @@ FUNCTION R01UBF(SUBSET,LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) R01UBF = 4 ADPSUB = C01UBF(SUBSET) - IF(ADPSUB .EQ. 'ADPUPA') THEN + IF(ADPSUB .EQ. 'ADPUPA' .OR. ADPSUB .EQ. 'UPRAIR') THEN R01UBF = R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ELSE IF(ADPSUB(1:3).EQ.'AIR') THEN R01UBF = R05UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) @@ -1971,7 +2029,7 @@ SUBROUTINE S01UBF(SID,XOB,YOB,RHR,RCTIM,RSV1,RSV2,ELV,QMELV,ITP, $ RTP,RSTP,IDS) C ---> PROCESSES HEADER - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300) COMMON/IUBFAA/BMISS COMMON/IUBFDD/HDR(12),RCATS(50,LEVLIM,NUMCAT),IKAT(NUMCAT), @@ -2046,9 +2104,9 @@ SUBROUTINE S01UBF(SID,XOB,YOB,RHR,RCTIM,RSV1,RSV2,ELV,QMELV,ITP, SUBROUTINE S02UBF(ICAT,N,*) C ---> PROCESSES DATA LEVEL CATEGORIES - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300) -C Input argument ICAT - the category number (1,2,3,4,5,6,8,51) +C Input argument ICAT - the category number (1,2,3,4,5,6,8,10,51) C Input argument N - level indicator (unless = 0, then signals C subr. to write an empty cat. 2,3, or 4 level @@ -2083,6 +2141,10 @@ SUBROUTINE S02UBF(ICAT,N,*) c if(stnidx.eq.'74794 ') iprint = 1 c if(stnidx.eq.'74389 ') iprint = 1 c if(stnidx.eq.'96801A ') iprint = 1 + if(stnidx.eq.'10304 ') iprint = 1 + if(stnidx.eq.'70200 ') iprint = 1 + if(stnidx.eq.'72214 ') iprint = 1 + if(stnidx.eq.'72797 ') iprint = 1 cppppp-ID SURF = .FALSE. @@ -2126,13 +2188,14 @@ SUBROUTINE S02UBF(ICAT,N,*) RETURN 1 END IF -C MAKE A MISSING LEVEL AND RETURN WHEN N=0 (NOT ALLOWED FOR CAT 01) +C MAKE A MISSING LEVEL AND RETURN WHEN N=0 +C (NOT ALLOWED FOR CAT 01 OR 10) C (NOTE: QUALITY MARKERS ARE SET TO 2 AND SPECIAL LEVEL INDICATORS C ARE SET TO 0) C ----------------------------------------------------------------- IF(N.EQ.0) THEN - IF(ICAT.EQ.1) RETURN + IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) RETURN NCAT(KCAT) = MIN(LEVLIM-1,NCAT(KCAT)+1) if(iprint.eq.1) then print'(" To prepare for sfc. data, write all missings on ", @@ -2198,7 +2261,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C EACH DATA LEVEL CATEGORY NEEDS A SPECIFIC DATA ARRANGEMENT C ---------------------------------------------------------- - IF(ICAT.EQ.1) THEN + IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) THEN RCAT(1) = MIN(NINT(POB(N)),NINT(RCATS( 1,L,KCAT))) RCAT(2) = MIN(NINT(ZOB(N)),NINT(RCATS( 2,L,KCAT))) RCAT(3) = MIN(NINT(TOB(N)),NINT(RCATS( 3,L,KCAT))) @@ -2324,7 +2387,7 @@ SUBROUTINE S02UBF(ICAT,N,*) SUBROUTINE S03UBF(UNP,SUBSET,*,*,*) C ---> PACKS DATA INTO UNP ARRAY - PARAMETER (NUMCAT=8, LEVLIM=300, MAXOBS=3500) + PARAMETER (NUMCAT=9, LEVLIM=300, MAXOBS=3500) COMMON/IUBFDD/HDR(12),RCATS(50,LEVLIM,NUMCAT),IKAT(NUMCAT), $ MCAT(NUMCAT),NCAT(NUMCAT),LVDX(NUMCAT) @@ -2406,7 +2469,7 @@ SUBROUTINE S03UBF(UNP,SUBSET,*,*,*) SUBROUTINE S04UBF C ---> SORTS DATA LEVEL CATEGORIES - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300) COMMON/IUBFAA/BMISS COMMON/IUBFDD/HDR(12),RCATS(50,LEVLIM,NUMCAT),IKAT(NUMCAT), @@ -2429,7 +2492,7 @@ SUBROUTINE S04UBF $ 30.,20.,10./ C INSERT DATA LEVEL CATEGORY 1 PRESSURE & DEF. Q.M.'S INTO THOSE LEVELS -C WHERE MSSING +C WHERE MISSING C --------------------------------------------------------------------- DO I=1,NCAT(1) @@ -2765,7 +2828,7 @@ FUNCTION R02UBF() ERTUBF = 534 END IF ELSE IF(SUBSET(1:5).EQ.'NC002') THEN - IF(SUBSET(6:8).EQ.'001') THEN + IF(SUBSET(7:8).EQ.'01') THEN C LAND RADIOSONDE - FIXED C ----------------------- @@ -2773,26 +2836,26 @@ FUNCTION R02UBF() ERTUBF = 011 IF(L03UBF(RPID)) ERTUBF = 012 IF(RPID(1:4).EQ.'CLAS') ERTUBF = 013 - ELSE IF(SUBSET(6:8).EQ.'002') THEN + ELSE IF(SUBSET(7:8).EQ.'02') THEN C LAND RADIOSONDE - MOBILE C ------------------------ ERTUBF = 013 - ELSE IF(SUBSET(6:8).EQ.'003') THEN + ELSE IF(SUBSET(7:8).EQ.'03') THEN C SHIP RADIOSONDE C --------------- ERTUBF = 022 IF(RPID(1:4).EQ.'SHIP') ERTUBF = 023 - ELSE IF(SUBSET(6:8).EQ.'004') THEN + ELSE IF(SUBSET(7:8).EQ.'04') THEN C DROPWINSONDE C ------------- ERTUBF = 031 - ELSE IF(SUBSET(6:8).EQ.'005') THEN + ELSE IF(SUBSET(7:8).EQ.'05') THEN C PIBAL C ----- @@ -2910,7 +2973,7 @@ FUNCTION L01UBF() FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C ---> PROCESSES ADPUPA DATA (002/*, 004/005) - PARAMETER (NUMCAT=8, LEVLIM=300) + PARAMETER (NUMCAT=9, LEVLIM=300, MXLV=19999) COMMON/IUBFAA/BMISS COMMON/IUBFBB/KNDX,KSKACF(8),KSKUPA,KSKSFC,KSKSAT,KFLSAT(12), @@ -2925,21 +2988,23 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) COMMON/IUBFLL/Q81(255),Q82(255) COMMON/IUBFMM/XIND(255) - CHARACTER*80 HDSTR,LVSTR,QMSTR,RCSTR - CHARACTER*8 SUBSET,SID,RSV1,RSV2 + CHARACTER*80 HDSTR,LVSTR,QMSTR,RCSTR,HDSTB + CHARACTER*8 SUBSET,SID,RSV1,RSV2,BHD,BQ,RID2(750) REAL(8) RID_8,HDR_8(12),VSG_8(255),OBS2_8(43),OBS3_8(5,255,7), $ RCT_8(5,255),ARR_8(10,255),RAT_8(255),RMORE_8(4),RGP10_8(255), - $ PRGP10_8(255),RPMSL_8,RPSAL_8,BMISS,AMINIMUM_8,obs8_8(2) + $ PRGP10_8(255),RPMSL_8,RPSAL_8,BMISS,AMINIMUM_8,obs8_8(2), + $ VSGX8(MXLV),ARRX(10,MXLV),BHD8 DIMENSION OBS(*),OBS2(43),OBS3(5,255,7),NOBS3(7),RCT(5,255), $ ARR(10,255), RAT(255),RMORE(4),RGP10(255),PRGP10(255),P2(255), - $ P8(255),P16(255) + $ P8(255),P16(255),NUSL(MXLV) - EQUIVALENCE (RID_8,SID) + EQUIVALENCE (RID_8,SID),(BHD8,BHD) LOGICAL L02UBF SAVE DATA HDSTR/'NUL CLON CLAT HOUR MINU SELV '/ + DATA HDSTB/'NUL CLONH CLATH HOUR MINU HBMSL HEIT '/ ! BUFR DATA LVSTR/'PRLC TMDP TMDB GP07 GP10 WDIR WSPD '/ DATA QMSTR/'QMPR QMAT QMDD QMGP QMWN '/ DATA RCSTR/'RCHR RCMI RCTS '/ @@ -2966,6 +3031,51 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) OBS3_8 = BMISS NOBS3 = 0 obs8_8 = bmiss + NBFLG = 0 + NBMX = 4 + NSKP = 0 + + CALL UFBINT(LUNIT,RID_8,1,1,IRET,'RPID') + CALL READLC(LUNIT,SID,'RPID') + +CC ANALYZE BUHD CONTENT PRIOR TO VSIG/VSIGX READ CH 12/18/2020 +CC AND TO ADPUPA/UPRAIR CONTENT READ rev 03/23/2022 + CALL UFBINT(LUNIT,BHD8,1,1,IRET,'BUHD') + CALL READLC(LUNIT,BHD,'BUHD') + + IF (BHD(1:2).EQ.'IU') THEN + READ(BHD(5:5),'(I1)') IFTH + NBFLG = 9 + IF (BHD(3:3).EQ.'W') NBFLG = 1 + IF (BHD(3:3).EQ.'J') NBFLG = 2 + IF (BHD(3:3).EQ.'D') NBFLG = 2 +CCdesc revisit for descending radiosonde profiles + IF (BHD(3:3).EQ.'K') NBFLG = 2 + IF((BHD(3:3).EQ.'K').AND.(IFTH.LE.5)) NBFLG = 3 + IF (BHD(3:3).EQ.'S') NBFLG = 3 + IF((BHD(3:3).EQ.'S').AND.(IFTH.LE.5)) NBFLG = 4 +CCdesc IF (BHD(3:3).EQ.'X')) NBFLG = 5 + IF (SUBSET(1:6).EQ.'NC0021') WRITE(95,'(A8,1X,A8)') SID, BHD + END IF + + IF (SUBSET(1:6).EQ.'NC0020') THEN + NX=1 + IRT=0 + RID2='' + OPEN(92,IOSTAT=INP) + IF(INP.EQ.0) THEN + REWIND 92 + DO WHILE (NX.LT.700.AND.NSKP.EQ.0.AND.IRT.EQ.0) + READ(92,'(A8,1X,A8)',IOSTAT=IRT) RID2(NX), BQ + IF(SID.EQ.RID2(NX)) NSKP=1 + NX=NX+1 + ENDDO + CLOSE(92) + ENDIF + ENDIF + + IF(NSKP.GT.0) GOTO 9997 ! Skip ADPUPA when duplicating UPRAIR + CALL UFBINT(LUNIT,OBS2_8( 1),2,1,IRET,'RSRD EXPRSRD') CALL UFBINT(LUNIT,OBS2_8( 4),1,1,IRET,'SST1') IF(IBFMS(OBS2_8(4)).EQ.0) OBS2_8(41) = 2.0 @@ -3029,20 +3139,88 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C 2 Significant level, wind C processed as unpacked category 3 or 4 C +C 128 BUFR Vertical level +C processed as unpacked category 10 +C C NOTE: THIS SUBR. ASSIGNS VSIG=1 TO LEVELS THAT SHOULD BE C PROCESSED AS UNPACKED CATEGORY 6 (ONLY APPLIES TO C RECCOS) C C anything else - the level is not processed - - CALL UFBINT(LUNIT,VSG_8,1,255,NLEV,'VSIG');VSG=VSG_8 + + VSG_8 = BMISS + VSGX8 = BMISS + VLINC = BMISS + NUSL = 0 + +CC USE NBFLG TO CHOOSE VSIG OR VSIGX CH 12/18/2020 +CC rev 03/23/2022 + IF(NBFLG.EQ.0) + +CALL UFBINT(LUNIT,VSG_8,1,255,NLEV,'VSIG') + + IF ((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN +CC VSIGXs ARE READ INTO A LARGER ARRAY CH 11/12/2020 + CALL UFBINT(LUNIT,VSGX8,1,MXLV,NLEVX,'VSIGX') +CC +CC COMPUTE AN INTEGER SAMPLE INCREMENT ACCORDING TO NLEVX + IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN + VLINC = MAX(1.0,(REAL(NLEVX-10)/255.)) + LS = 1 + LX = 1 + NC = 0 + NC0 =0 + DO L2 = 1,NLEVX + NC=INT(REAL(L2)/VLINC) + IF (LS.LE.255) THEN +CC VSIG = VSIGX / 2048, INITIALLY + VSG_8(LS) = VSGX8(L2)/2048. +cx IF ((VSGX8(L2).GE.2048.).AND.(VSGX8(L2).LT.262144.)) THEN + IF ((VSG_8(LS).GE.1.).AND.(VSG_8(LS).LT.128)) THEN + DO LE = 0,6 + LF = 2.**LE + LF1 = 2.**(LE+1) + IF ((VSG_8(LS).GE.LF).AND.(VSG_8(LS).LT.LF1)) THEN + IF(LE.LE.1) VSG_8(LS) = LF1 + IF(LE.GE.2) VSG_8(LS) = LF + ENDIF + ENDDO + IF ((VSG_8(LS).EQ.32).OR.(VSG_8(LS).EQ.64)) THEN +CC SAVE MANDATORY LEVELS + NUSL(L2) = 1 + LS = LS + 1 + ENDIF + ENDIF + IF (VSGX8(L2).EQ.0) VSG_8(LS) = 2.**7 + IF ((VSG_8(LS).NE.32).AND.(VSG_8(LS).NE.64).AND. + + (NC.EQ.LX).AND.(NC.GT.NC0)) THEN +CC SAVE INCREMENTAL LEVELS + NUSL(L2) = 1 + LS = LS + 1 + LX = LX + 1 + NC0=NC + ENDIF + ENDIF +CC STEP TO THE NEXT LEVEL + ENDDO + NLEV=MIN(LS,255) + ENDIF + ENDIF +CC END VSIGX ANALYSIS CH 11/12/2020 (rev 09/30/2022) + VSG=VSG_8 C PUT THE HEADER INFORMATION INTO UNPACKED FORMAT C ----------------------------------------------- - - CALL UFBINT(LUNIT,HDR_8,12, 1,IRET,HDSTR);HDR=HDR_8 + + HDR_8=BMISS + CALL UFBINT(LUNIT,HDR_8,12, 1,IRET,HDSTR) + IF((HDR_8(2).GE.BMISS).AND.(HDR_8(3).GE.BMISS)) THEN + CALL UFBINT(LUNIT,HDR_8,12, 1,IRET,HDSTB) + ENDIF + HDR=HDR_8 IF(HDR(5).GE.BMISS) HDR(5) = 0 - CALL UFBINT(LUNIT,RID_8,1,1,IRET,'RPID') + +cCC CALL UFBINT(LUNIT,RID_8,1,1,IRET,'RPID') + cccc IF(IRET.NE.1.OR.(RID_8.GT.BMISS-5000..AND.RID_8.LT.BMISS+5000.)) cccc $ SID = 'MISSING ' cxxxx @@ -3054,7 +3232,9 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C above line not working right - may return 0 when missing, so use next C two lines below temporarily until this is fixed (readlc will return C all blanks for sid when mnemonic "RPID" not found) - dak 2/19/13 - call readlc(lunit,sid,'RPID') + +cCC call readlc(lunit,sid,'RPID') + cpppppppppp cc print'(" sid = """,A,"""")', sid cpppppppppp @@ -3071,6 +3251,12 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) c if(sid.eq.'74794 ') iprint = 1 c if(sid.eq.'74389 ') iprint = 1 c if(sid.eq.'96801A ') iprint = 1 + if(sid.eq.'10304 ') iprint = 1 + if(sid.eq.'57461 ') iprint = 1 + if(sid.eq.'71811 ') iprint = 1 + if(sid.eq.'70200 ') iprint = 1 + if(sid.eq.'72215 ') iprint = 1 + if(sid.eq.'72786 ') iprint = 1 if(iprint.eq.1) $ print'(" @@@ START DIAGNOSTIC PRINTOUT FOR ID ",A)', sid cppppp-ID @@ -3129,7 +3315,9 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) RCTIM = BMISS RSV1 = ' ' RSV2 = ' ' + ELV = BMISS ELV = HDR(6) + IF (ELV.GE.BMISS) ELV = HDR(7) QMELV = XMISS CALL UFBINT(LUNIT,RAT_8, 1,255,NLEV,'RATP');RAT=RAT_8 @@ -3137,7 +3325,8 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) RTP = ERTUBF(SUBSET,SID) IDS = IMISS IF(ELV.GE.BMISS) THEN - IF((RTP.GT.20.AND.RTP.LT.24).OR.SUBSET.EQ.'NC002004') THEN + IF((RTP.GT.20.AND.RTP.LT.24) + $ .OR.(RPT.EQ.31.AND.SUBSET.NE.'NC004005')) THEN print'(" IW3UNPBF/R03UBF: ID ",A," has a missing elev, so ", $ "elevation set to ZERO")', sid ELV = 0 @@ -3161,8 +3350,46 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C PUT THE LEVEL DATA INTO SPECIFIED UNPACKED FORMAT C ------------------------------------------------- - - CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,LVSTR);ARR=ARR_8 + + IF(NBFLG.EQ.0) + +CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,LVSTR) + +CCCCCCCCCCCCCCCCCCCv CH 11/12/2020 + + IF((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN +CC WITH VSIGX, VARIABLES ARE READ INTO LARGER ARRAY + CALL UFBINT(LUNIT,ARRX,10,MXLV,NLEVX,LVSTR) +C +C +CC +CC RECALL THAT VLINC = NLEVX / 255 + IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN + LS = 1 +c NC = 0 +c NC0 =0 + DO L2 = 1,NLEVX +c NC=INT(REAL(L2)/VLINC) +c IF ((NC.EQ.LS).AND.(NC.GT.NC0) +c + .AND.(LS.LE.255).AND.(VSGX8(L2).LT.BMISS)) THEN + IF (NUSL(L2).EQ.1) THEN +CC ARRX -> ARR_8 + DO MS = 1,10 + ARR_8(MS,LS) = ARRX(MS,L2) + ENDDO +C +C GNSS drift information to be added here +C + LS = LS + 1 +c NC0=NC + ENDIF +CC STEP TO THE NEXT LEVEL + ENDDO + NLEV=MIN(LS,255) + ENDIF + ENDIF + + ARR=ARR_8 +CCCCCCCCCCCCCCCCCCC^ CH 11/12/2020 PWMIN = 999999. @@ -3209,7 +3436,40 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) IF(MAX(POB(L),DOB(L),SOB(L)).LT.BMISS) PWMIN =MIN(PWMIN,POB(L)) ENDDO - CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,QMSTR);ARR=ARR_8 + IF(NBFLG.EQ.0) + +CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,QMSTR) + +CCCCCCCCCCCCCCCCCCCv CH 11/12/2020 + + IF((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN +CC WITH VSIGX, VARIABLES ARE READ INTO LARGER ARRAY + CALL UFBINT(LUNIT,ARRX,10,MXLV,NLEVX,QMSTR) +CC + IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN +CC RECALL THAT VLINC = NLEVX / 255 + LS = 1 +c NC = 0 +c NC0 =0 + DO L2 = 1,NLEVX +c NC=INT(REAL(L2)/VLINC) +c IF ((NC.EQ.LS).AND.(NC.GT.NC0) +c + .AND.(LS.LE.255).AND.(VSGX8(L2).LT.BMISS)) THEN + IF (NUSL(L2).EQ.1) THEN +CC ARRX -> ARR_8 + DO MS = 1,10 + ARR_8(MS,LS) = ARRX(MS,L2) + ENDDO + LS = LS + 1 +c NC0=NC + ENDIF +CC STEP TO THE NEXT LEVEL + ENDDO + NLEV=MIN(LS,255) + ENDIF + ENDIF + + ARR=ARR_8 +CCCCCCCCCCCCCCCCCCC^ CH 11/12/2020 DO L=1,NLEV PQM(L) = EQMUBF(ARR(1,L)) @@ -3371,6 +3631,26 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) VSG(L) = 0 END IF END IF +Ccccccc v CH 01/19/2021 + ELSE IF (NINT(VSG(L)).EQ.128) THEN + IF(MIN(DOB(L),ZOB(L),TOB(L)).GE.BMISS) THEN + if(iprint.eq.1) then + print'(" ==> For lvl ",I0,"; VSG=",F4.0" & DOB,ZOB," + $ " TOB are all missing --> this level is not ", + + " processed")', L, VSG(L) + end if + VSG(L) = 0 + ELSE + if(iprint.eq.1) then + print'("==> For lvl ",I0,"; VSG=",F4.0," & one or", + $ "more of ZOB,TOB,DOB non-missing --> valid cat.10 ", + $ "lvl")', L, VSG(L) + end if + CALL S02UBF(10,L,*9999) !! BUFR levels + VSG(L) = 0 + END IF +Ccccccccc ^ + ELSE IF(NINT(VSG(L)).EQ. 4) THEN if(iprint.eq.1) then print'(" ==> For lvl ",I0,"; VSG= 4 --> valid cat. 2 ", @@ -3605,7 +3885,14 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) CALL S02UBF(8,L,*9999) ENDDO - CALL UFBINT(LUNIT,RMORE_8,4,1,NRMORE,'SIRC TTSS UALNHR UALNMN') + IF(NBFLG.EQ.0) + +CALL UFBINT(LUNIT,RMORE_8,4,1,NRMORE,'SIRC TTSS UALNHR UALNMN') +CCCCCCCCCCCCCCCCCCCv CH 11/13/2020 + IF((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN + CALL UFBINT(LUNIT,RMORE_8,2,1,NRMORE,'SIRC CTTSS') + CALL UFBINT(LUNIT,RMORE_8(3),2,1,NRMORE,'HOUR CMINU') + END IF +CCCCCCCCCCCCCCCCCCC^ CH 11/13/2020 RMORE=RMORE_8 IF(MAX(RMORE(3),RMORE(4)).LT.BMISS) THEN CF8(1) = 104 @@ -3660,7 +3947,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) RETURN 9998 CONTINUE print'("IW3UNPBF/R03UBF: RPT with ID= ",A," TOSSED - ZERO ", - $ "CAT.1-6,51 LVLS")', SID + $ "CAT.1-6,10,51 LVLS")', SID 9997 CONTINUE R03UBF = -9999 KSKUPA =KSKUPA + 1 diff --git a/sorc/prepobs_prepdata.fd/prepdata.f b/sorc/prepobs_prepdata.fd/prepdata.f index 885f323..cb6d888 100644 --- a/sorc/prepobs_prepdata.fd/prepdata.f +++ b/sorc/prepobs_prepdata.fd/prepdata.f @@ -1334,7 +1334,14 @@ C feature. C 2020-09-14 S. Melchior -- In subroutine PREP, added ability to C process new WMO BUFR sequence Meteosat AMV data from subsets: -C 005067, 005068, 005069. +C 005067, 005068, 005069. +C 2021-04-22 C. Hill / J. Woollen / J. Ator -- +C The BUFR library with dynamic memory allocation is invoked, +C and the BUFR parameters MAXSS and MXMSGL are each increased to +C 600000 to accommodate the initial read of high-resolution +C radiosonde/dropsonde data from the 'uprair' dump files. +C ISETPRM calls are placed before the first BUFR library call, +C to SETBMISS. C 2022-05-15 I. Genkova -- In subroutine SATEDS, updated IDSAT(4) to C IDSAT(8) to accomodate WCOSS2 compiler C @@ -1393,7 +1400,7 @@ C UNIT EE+4 - 'PROFLR' BUFR DATA DUMP FILE (WIND PROFILER) C UNIT EE+5 - 'VADWND' BUFR DATA DUMP FILE (NEXRAD VAD WINDS) C UNIT EE+6 - 'RASSDA' BUFR DATA DUMP FILE (RASS TEMPERATURES) -C UNIT EE+7 - ** RESERVED FOR FUTURE USE ** +C UNIT EE+7 - 'UPRAIR' BUFR DATA DUMP FILE (BUFR RAOB/PIBAL/DROPS) C UNIT EE+8 - ** RESERVED FOR FUTURE USE ** C UNIT EE+9 - ** RESERVED FOR FUTURE USE ** C @@ -2895,7 +2902,7 @@ PROGRAM PREPOBS_PREPDATA $ SWNLND,MARLND,PG4243,SPCIAL,FILLZ,FILLT,FILLW,FILLM,KTEMP,TR80KM, $ PRFLER,TOVBFR,RECSLM,GOESPW,GOESCT,VADWIN,TOVRAD,TOVRTV, $ PFRALT,AIFNOW,FLDMGS,FLDMAF,FLDMFR,FLACMS,GOESRD,PREVEN,APPEND, - $ SUBSKP,RASS,WRMISS,SKGP45,npkrpt,SKGNSS + $ SUBSKP,RASS,WRMISS,SKGP45,npkrpt,SKGNSS,UPRAIR REAL(8) BMISS,GETBMISS,alon_8,alat_8 INTEGER KTYPE(NUMTYP-1),NTYPE(NUMTYP-1),JITSM(NUMTYP), $ JITSW(NUMTYP),IDATA(MAXOBS),IDAT(8) @@ -2930,7 +2937,7 @@ PROGRAM PREPOBS_PREPDATA COMMON/COUNT/KKTYPE(100:299) COMMON/PARM2/PG4243,KTEMP,i2many_lvls COMMON/PARM3/RECCON,RWINDO,UWINDO,RECSLM,FLRECO,VWINDO,VADWIN, - $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO + $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO,UPRAIR COMMON/PARM4/ICODE COMMON/PARM5/FILLZ,FILLT,FILLW,FILLM,LSWIND,LSMASS,CWINDO,NPZ COMMON/PARM6/MODPRT,IFLUA,STNPRT(3) @@ -3106,7 +3113,7 @@ PROGRAM PREPOBS_PREPDATA $ VWINDO,TOVRAD,TOVRTV,PFRALT,IEWNDO,JPERSD,AIFNOW,FLDMGS,FLDMAF, $ GOESRD,IVADFL,IVADSP,ISATLS,DWINDO,JPQKSD,IQWNDO,GOESCT,APPEND, $ FLACMS,IACFTH,SUBSKP,JPGPSD,GWINDO,RASS,TWINDO,JPWDSD,IWWNDO, - $ FLDMFR,WRMISS,SKGP45,JPASCD,IAWNDO,npkrpt,SKGNSS + $ FLDMFR,WRMISS,SKGP45,JPASCD,IAWNDO,npkrpt,SKGNSS,UPRAIR NAMELIST/PARM/IUNIT CALL W3TAGB('PREPOBS_PREPDATA',2022,0105,0050,'EMC') C DETERMINE MACHINE WORD LENGTH (BYTES) FOR BOTH INTEGERS AND REALS @@ -3214,9 +3221,16 @@ PROGRAM PREPOBS_PREPDATA C overflow when either an INTEGER*4 variable is set to BMISS or a C REAL*8 (or REAL*4) variable that is missing is NINT'd C ------------------------------------------------------------------- + + CALL ISETPRM ( 'MXMSGL', 600000 ) ! CH 04/15/21, moved 04/22/21 + CALL ISETPRM ( 'MAXSS', 600000 ) ! CH 04/15/21, moved 04/22/21 +CCC above lines moved to here from +CCC 8 places below at suggestion +CCC of J. Wollen ccccc CALL SETBMISS(10E10_8) CALL SETBMISS(10E8_8) BMISS=GETBMISS() + CALL MAXOUT(50000) ! CH 08/09/21 print'(1X)' print'(" BUFRLIB value for missing is: ",G0)', bmiss print'(1X)' @@ -3844,6 +3858,7 @@ PROGRAM PREPOBS_PREPDATA C UNIT EE+4 - 'PROFLR' BUFR DATA DUMP FILE (WIND PROFILER) C UNIT EE+5 - 'VADWND' BUFR DATA DUMP FILE (NEXRAD VAD WINDS) C UNIT EE+6 - 'RASSDA' BUFR DATA DUMP FILE (RASS TEMPERATURES) +C UNIT EE+7 - 'UPRAIR' BUFR DATA DUMP FILE (BUFR RAOB/PIBAL/DROPS) C (WHERE EE IS UNIT NUMBER DEFINED AS IUNIT(5) IN NAMELIST "&PARM") C C OUTPUT FILES: @@ -3868,13 +3883,13 @@ SUBROUTINE PREP C PARAMETER NAME "MXBLVL" THROUGHOUT PGM SETS MAXIMUM NO. OF REPORT C LEVELS THAT CAN BE PROCESSED AND ENCODED INTO BUFR MESSAGES PARAMETER (MXBLVL = 255) - CHARACTER*8 STNPRT,STNID,FILNAM(7),DSNAME,SUBSET_d,subset_t + CHARACTER*8 STNPRT,STNID,FILNAM(8),DSNAME,SUBSET_d,subset_t CHARACTER*25 DNAME(3) CHARACTER*47 NAME1 CHARACTER*56 NAME2 LOGICAL RECCON,TOVEDS,GOESND,FILLZ,SWNLND,AIRLND,PRFLER, $ SPCIAL,FILLW,FILLT,FILLM,TOVBFR,MARLND,GOESPW,GOESCT,VADWIN, - $ GOESRD,FLRECO,DROPSN,SUBSKP,PROFILERinADPUPA,RASS + $ GOESRD,FLRECO,DROPSN,SUBSKP,PROFILERinADPUPA,RASS,UPRAIR INTEGER IDATA(MAXOBS),MDATE(4) INTEGER(8) IDSDAT,IDSDMP_8 REAL(8) BMISS,obs8_8,alon_8,alat_8 @@ -3903,7 +3918,7 @@ SUBROUTINE PREP COMMON/RADANC/RTRAD(35),GRAD(18),IGCHN(18),SOZANG,SAZANG,OZONE, $ SKINT,CLDAMT,TOVRAD,TOVRTV,GOESRD(2) COMMON/PARM3/RECCON,RWINDO,UWINDO,RECSLM,FLRECO,VWINDO,VADWIN, - $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO + $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO,UPRAIR COMMON/PARM4/ICODE COMMON/PARM5/FILLZ,FILLT,FILLW,FILLM,LSWIND,LSMASS,CWINDO,NPZ COMMON/PARM6/MODPRT,IFLUA,STNPRT(3) @@ -3928,8 +3943,8 @@ SUBROUTINE PREP COMMON /BUFRLIB_MISSING/BMISS EQUIVALENCE (IDATA,RDATA) DATA XMISS/99999./,IMISS/99999/ - DATA FILNAM/'ADPUPA ','AIRCAR ','AIRCFT ','SATWND ', - $ 'PROFLR ','VADWND ','RASSDA '/ + DATA FILNAM/'UPRAIR ','AIRCAR ','AIRCFT ','SATWND ', + $ 'PROFLR ','VADWND ','RASSDA ','ADPUPA '/ DATA DNAME/'WIND PROFILER DATA - ', $ 'VAD WIND DATA - .........', $ 'RASS TEMPERATURE DATA - .'/ @@ -4195,6 +4210,8 @@ SUBROUTINE PREP ELSE IF(NN.EQ.7) THEN C CHECK TO SEE IF RASS TMPERATURE DATA SHOULD BE PROCESSED IF(.NOT.RASS) GO TO 7001 + ELSE IF(NN.EQ.8) THEN + IF(.NOT.UPRAIR) GO TO 7001 END IF IFLAG = 0 JFLAG = 0 @@ -4209,7 +4226,7 @@ SUBROUTINE PREP C*********************************************************************** C*********************************************************************** 2100 CONTINUE - IF(NN.LT.5.OR.(NN.EQ.5.AND.IPRFPIB.GT.0)) THEN + IF(NN.LT.5.OR.(NN.EQ.5.AND.IPRFPIB.GT.0).OR.NN.EQ.8) THEN C*********************************************************************** C CALL UNPREPBF TO UNPACK THE NEXT REPORT {NOT USED FOR WIND PROFILER C (EXCEPT FOR THOSE ORIGINATING FROM PILOT FORMAT BULLETINS), VAD WIND @@ -4364,7 +4381,7 @@ SUBROUTINE PREP END IF 8872 FORMAT(5X,A47,6F6.0,' TO ',6F6.0) PRINT'(1X)' - ELSE IF(NN.EQ.1) THEN + ELSE IF(NN.EQ.1.OR.NN.EQ.8) THEN NAME2 = ' RAOB/PIBAL - ............ MINUS AND PLUS ' PRINT 876, NAME2,UWINDO NAME2 = ' RECONNAISSANCE - ........ MINUS AND PLUS ' @@ -4773,7 +4790,7 @@ SUBROUTINE PREP HDR(6) = ((ISEL(IDATA(9)) + 10) * 10) + INSTR C CHECK FOR VALID DATA, IF NONE UNPACK NEXT REPORT IF(MAX(IDATA(13),IDATA(15),IDATA(17),IDATA(19),IDATA(21), - $ IDATA(35),IDATA(37),IDATA(45)).EQ.0) GO TO 2100 + $ IDATA(31),IDATA(35),IDATA(37),IDATA(45)).EQ.0) GO TO 2100 C....................................................................... C PROCESS RAOB, PIBAL, DROPWINSONE, WIND PROFILER, VAD WIND, RASS AND C CLASS DATA ON MANDATORY AND SIGNIFICANT LEVELS (DATA LEVEL @@ -4803,7 +4820,7 @@ SUBROUTINE PREP PRINT 950, KNTALL 950 FORMAT(19X,'===> A TOTAL OF ',I6,' REPORTS WERE UNPACKED ', $ 'FROM THIS FILE, WHETHER KEPT OR SKIPPED <===',/) - IF(NN.EQ.1.AND.KOUNT.EQ.0) ICODE = 4 + IF((NN.EQ.1.OR.NN.EQ.8).AND.KOUNT.EQ.0) ICODE = 4 KNTUUU(NN) = KOUNT IF(NN.EQ.4.AND.KNTUUU(4).GT.0) THEN C FOR SATWND FILE, CALL SUBROUTINE SWNTBL TO SUMMARIZE RESULTS IN TABLE @@ -4839,7 +4856,7 @@ SUBROUTINE PREP END IF 7001 CONTINUE NN = NN + 1 - IF(NN.LT.8) GO TO 700 + IF(NN.LT.9) GO TO 700 PRINT 5679 5679 FORMAT(/130('.')/130('.')/) FLRECO = .FALSE. @@ -5465,7 +5482,7 @@ SUBROUTINE RPTLBL(CYCLET) C INDICATOR GOES IN HDR(12) (ONLY FOR ADPUPA REPORTS HERE) C LAUNCH TIME IS READ FOR LATER USE IN THIS SUBR. (ONLY FOR ADPUPA C REPORTS HERE) - IF(NFILE.EQ.IUNIT(5)) THEN + IF(NFILE.EQ.IUNIT(5).OR.NFILE.EQ.IUNIT(5)+7) THEN IF(HDR(9).LT.IMISS) THEN IF(HDR(9).EQ.0.OR.(HDR(9).GE.2.AND.HDR(9).LE.6).OR. $ HDR(9).EQ.8.OR.(HDR(9).GE.100.AND.HDR(9).LE.109).OR. @@ -5513,9 +5530,17 @@ SUBROUTINE RPTLBL(CYCLET) IF(CBULL.EQ.'IUAX02 KARP') THEN HDR(8) = 1. ! U.S. MDCRS ELSE IF(CBULL.EQ.'IUAX01 MMMX') THEN - HDR(8) = 2. ! Mexican MDCRS + HDR(8) = 2. ! Mexico AMDAR ELSE IF(CBULL.EQ.'IUAX06 KARP') THEN - HDR(8) = 3. ! ADS-C MDCRS + HDR(8) = 3. ! ADS-C (U.S.) + ELSE IF(CBULL.EQ.'IUAX07 KARP') THEN + HDR(8) = 4. ! ADS-C (Int'l) + ELSE IF(CBULL(1:3).EQ.'IUA'.AND.CBULL(7:11).EQ.' BABJ') THEN + HDR(8) = 5. ! China AMDAR + ELSE IF(CBULL.EQ.'IUAI01 SCSC') THEN + HDR(8) = 6. ! S. America AMDAR + ELSE IF(CBULL.EQ.'IUAX92 KARP') THEN + HDR(8) = 9. ! ADS-C (Experminental) END IF END IF C RECEIPT TIME GOES IN HDR(5) @@ -5527,7 +5552,7 @@ SUBROUTINE RPTLBL(CYCLET) C CORRECTION INDICATOR FOR OBS. TIME USED IN REPORT D-TIME CALCULATION C GOES IN HDR(14) (INITIALIZED AS 0 - NOT CORRECTED) HDR(14) = 0 - IF(NFILE.EQ.IUNIT(5)) THEN + IF(NFILE.EQ.IUNIT(5).OR.NFILE.EQ.IUNIT(5)+7) THEN C WIND PROFILERS ORIG. IN PILOT (PIBAL) FORMAT BULLETINS WERE DECODED C AS PIBALS INTO THE "ADPUPA" DUMP FILE PRIOR TO 05/14/2001. IF THIS C IS A HISTORICAL RERUN, THESE NEED TO BE IDENTIFIED SO THAT THEY ARE @@ -6083,7 +6108,7 @@ SUBROUTINE GETUPA(*,*) COMMON/UPALIM/LEVPM,LEVST,LEVQQ,TDLIM,TDMAX,SPCIAL,ISQNUM_UPA COMMON/PARM2/PG4243,KTEMP,i2many_lvls COMMON/PARM3/RECCON,RWINDO,UWINDO,RECSLM,FLRECO,VWINDO,VADWIN, - $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO + $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO,UPRAIR COMMON/PARM5/FILLZ,FILLT,FILLW,FILLM,LSWIND,LSMASS,CWINDO,NPZ COMMON/PARM6/MODPRT,IFLUA,STNPRT(3) COMMON/RUNSW/IRNMRK @@ -6123,7 +6148,7 @@ SUBROUTINE GETUPA(*,*) IF(PG4243.AND.HDR(6).EQ.120.AND.(STNID(1:2).EQ.'42'.OR. $ STNID(1:2).EQ.'43')) INDIAN = 1 C*********************************************************************** -C COLLECT UPPER-AIR DATA IN DATA LEVEL CATEGORIES 1 - 5, 11, 15 +C COLLECT UPPER-AIR DATA IN DATA LEVEL CATEGORIES 1 - 5, 10, 15 C IQ(N,3) IS NOW USED TO RECORD CATEGORY OF INPUT DATA C*********************************************************************** DAT = XMISS @@ -6145,9 +6170,10 @@ SUBROUTINE GETUPA(*,*) C # - SENSIBLE TEMPERATURE FOR ALL NON-SATELLITE DATA TYPES C VIRTUAL TEMPERATURE FOR RTOVS OR ATOVS (UNPACKED NMCEDS) C -C NL IS COUNT OF TOTAL LVLS FROM ALL CATEGORIES (1-5, 11, 15 + SPECIAL) -C NP3 IS COUNT OF ALL LEVELS CONTAINING VALID WIND DATA IN CAT. 1,3,5 -C NPZ IS COUNT OF ALL LVLS CONTAINING NON-MISSING HGHT DATA IN CAT. 1,2 +C NL IS COUNT OF TOTAL LVLS FROM ALL CATEGORIES (1-5, 10, 11, 15 + SPECIAL) +C NP3 IS COUNT OF ALL LEVELS CONTAINING VALID WIND DATA IN CAT. 1,3,5,10 +C NPZ IS COUNT OF ALL LVLS CONTAINING NON-MISSING HGHT DATA IN +C CATEGORIES 1,2,10 C (ONLY SIGNIFICANT WHEN SPCIAL = FALSE) NL = 0 NP3 = 0 @@ -6379,6 +6405,81 @@ SUBROUTINE GETUPA(*,*) 21 CONTINUE C N125 IS THE NUMBER OF CAT. 1, 2, AND 5 LEVELS COLLECTED N125 = NL +C---------------------------------------------------vv--CH 07/23/2021-vv +C----------------------------------------------------------------------- +C BUFR SPECIFIC LEVEL MASS AND WIND DATA (DATA LEVEL CATEGORY 10) +C----------------------------------------------------------------------- +C +C NN IS NO. OF LEVELS THAT WILL BE CONSIDERED +C NB IS NO. OF BUFR DATA LEVELS (CAT. 10) ACTUALLY COLLECTED + NB = 0 + NN = IDATA(31) + II = IDATA(32) - 11 +C x NN = MIN(NN,LEVPM) + IZBEST = 99 + IF(NN.LE.0) GO TO 5695 + DO N = 1,NN + II = II + 11 +C GET PREPBUFR TABLE VALUES FOR PRESSURE, HGHT, TEMP., MOISTURE, & WIND + IPM = NINT(RDATA(II+ 6)) + IZM = NINT(RDATA(II+ 7)) + ITM = NINT(RDATA(II+ 8)) + IQM = NINT(RDATA(II+ 9)) + IVM = NINT(RDATA(II+10)) + IBTEST = 0 + IF(IZM.GT.3) IBTEST = 1 + IBLIZ1 = MIN(IBLIZ1,IBTEST) +C SKIP IF DATA ARE MISSING + IF(MIN(RDATA(II+1),RDATA(II+2)).GE.YMISS.AND. + $ (MAX(RDATA(II+4),RDATA(II+5)).GE.YMISS)) CYCLE + NL = NL + 1 + IF(NL.GT.MXLVL) THEN +C---------------------------------------------------------------------- +C IF NO. OF LEVELS IN A REPORT EXCEEDS THE LIMIT OF "MXLVL", SKIP +C REPORT AND PRINT DIAGNOSTIC + PRINT 9953, STNID,RDATA(1),RDATA(2),IDATA(9),MXLVL + i2many_lvls = i2many_lvls + 1 + RETURN 2 +C---------------------------------------------------------------------- + END IF + NB = NB + 1 + IQ(NL,3) = 10 + DAT(NL,1) = NINT(RDATA(II)) * 0.1 + IQ(NL,5) = IPM + CALL W3FA03(DAT(NL,1),DAT(NL,2),DAT(NL,3),THETA) + IF(RDATA(II+1).LT.YMISS) THEN + DAT(NL,2) = NINT(RDATA(II+1)) + IQ(NL,1) = IZM + NPZ = NPZ + 1 + END IF + IF(RDATA(II+2).LT.YMISS) THEN + DAT(NL,3) = (NINT(RDATA(II+2)) * 0.1) + 273.16 + IQ(NL,2) = ITM + IF(DAT(NL,1).GE.QTOP.AND.RDATA(II+3).LT.YMISS + $ .AND.NINT(RDATA(II+3)).GE.0) THEN + DEWPT = DAT(NL,3) - (NINT(RDATA(II+3)) * 0.1) +C PROCESS NON-MSG MOISTURE REGARDLESS OF PREPBUFR TBL VAL + IF(MAX(IQM,ITM).LT.IQMLIM) DAT(NL,4) = DEWPT + END IF + END IF +C IZBEST IS BEST (LOWEST) HEIGHT PREPBUFR TBL VALUE AMONGST ALL LEVELS + IZBEST = MIN(IQ(NL,1),IZBEST) +C IF KTEMP = T, THEN ALSO EXAMINE TEMP PREPBUFR TABLE VALUE FOR IZBEST + IF(KTEMP) IZBEST = MIN(IQ(NL,2),IZBEST) + IF(MAX(RDATA(II+4),RDATA(II+5)).LT.YMISS.AND.IVM.LT.IQMLIM)THEN +C PROCESS NON-MSG WIND REGARDLESS OF PREPBUFR TABLE VALUE + IF(IQ(NL,1).LT.3) NP3 = NP3 + 1 + DAT(NL,5) = NINT(RDATA(II+4)) + DAT(NL,6) = NINT(RDATA(II+5)) * 0.1 + IQ(NL,4) = IVM + END IF + ENDDO +C RESET IDATA(31) TO NUMBER OF 'GOOD' CAT. 10 LEVELS ACTUALLY PROCESSED + IDATA(31) = NB + 5695 CONTINUE +C N125_10 IS THE NUMBER OF CAT. 1, 2, 5, AND 10 LEVELS COLLECTED + N125_10 = NL +C---------------------------------------------------^^--CH 07/23/2021-^^ C----------------------------------------------------------------------- C WINDS AT VARIABLE PRESSURE (DATA LEVEL CATEGORY 3) C----------------------------------------------------------------------- @@ -6398,7 +6499,8 @@ SUBROUTINE GETUPA(*,*) IF(NINT(RDATA(II)).GE.32750.OR.(NINT(RDATA(II))*0.1).LT.PTOP.OR. $ IPM.GE.IQMLIM) CYCLE C IF PRESSURE > STN (SFC) PRESSURE (GOOD ONLY) FLAG ALL DATA ON THIS LVL - IF(NP1VLD.GE.1.AND.(NINT(RDATA(II))*0.1).GT.DAT(N125+1,1)) THEN + IF(NP1VLD.GE.1.AND. + + (NINT(RDATA(II))*0.1).GT.DAT(N125_10+1,1)) THEN ! this should not be monitored by GSI!! (but is since qm=15) IPM = 15 IVM = 15 @@ -6407,7 +6509,7 @@ SUBROUTINE GETUPA(*,*) cdak IPRTF = 1 CAAAAA%%%%% PRINT 1515, STNID,RDATA(1),RDATA(2),IDATA(9),RDATA(II)*.1, - $ DAT(N125+1,1) + $ DAT(N125_10+1,1) 1515 FORMAT(' * * CAT3,LVL DATA FLAGGED-ID=',A8,', LAT=',F7.2,'N, ', $ 'LON=',F8.2,'E, RTYP',I4,' - PRESS =',F7.2,' > SFC PRESS(',F7.2, $ ')') @@ -6490,7 +6592,7 @@ SUBROUTINE GETUPA(*,*) C AS SUCH IF(NP1VLD.NE.0) THEN NCN = NM + 1 - IF(IABS(NP1VLD).EQ.2) NCN = N125 + 1 + IF(IABS(NP1VLD).EQ.2) NCN = N125_10 + 1 STAP = DAT(NCN,1) DAT(NCN,2) = ELEV NPZ = NPZ + 1 @@ -6741,6 +6843,9 @@ SUBROUTINE GETUPA(*,*) cdak STNPRT(3) = STNID cdak END IF cdak IPRTF = 0 + STNPRT(1) = '01028 ' + STNPRT(2) = '72251 ' + STNPRT(3) = '72364 ' CAAAAA%%%%% C IN MERGING, PRINT OUT COMPLETE LISTING OF RPT FOR EACH CAT. (MODPRT) IF(MOD((KOUNT-1),MODPRT).EQ.0) IPRT(1) = 1 @@ -6765,7 +6870,7 @@ SUBROUTINE GETUPA(*,*) C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ C MERGE DATA LEVEL CATEGORIES INTO SINGLE PROFILE, ACCORDING TO DECR. C PRESSURE - CALL SMERGE(NM,NSIG,N5,NP,NH,N15,NLEV,IPRT,STOP) + CALL SMERGE(NM,NSIG,N5,NB,NP,NH,N15,NLEV,IPRT,STOP) IF(NLEV.LE.0) THEN C IF NLEV IS ZERO, SKIP REPORT AND PRINT DIAGNOSTIC KOUNT = KOUNT - 1 @@ -6955,12 +7060,14 @@ SUBROUTINE UV(DD,FF,U,V) C TYPE 77, GET PREPBUFR R. TYPE 126, PROCESSED INTO PREPBUFR FILE C UNDER NEW TBL A ENTRY "RASSDA"; ADDED NEW INPUT ARGUMENT N15 FOR C NUMBER OF DATA LEVEL CATEGORY 15 LEVELS +C 2021-07-23 C. Hill -- NB added to represent new data level category 10 C -C USAGE: CALL SMERGE(NM,NSIG,N5,NP,NH,N15,NLEV,IPRT,STOP) +C USAGE: CALL SMERGE(NM,NSIG,N5,NB,NP,NH,N15,NLEV,IPRT,STOP) C INPUT ARGUMENT LIST: C NM - NO. OF LEVELS IN CAT. 1 (MANDATORY MASS/WIND) C NSIG - NO. OF LEVELS IN CAT. 2 (SIG. MASS) C N5 - NO. OF LEVELS IN CAT. 5 (TROPOPAUSE) +C NB - NO. OF LEVELS IN CAT. 10 (BUFR MASS/WIND) C NP - NO. OF CAT. 3 & ADD'L 25 OR 50 MB PRES. LVLS C NH - NO. OF LEVELS IN CAT. 4 (WINDS BY HEIGHT) C N15 - NO. OF LEVELS IN CAT. 15 (TEMPERATURES BY HEIGHT) @@ -6980,7 +7087,7 @@ SUBROUTINE UV(DD,FF,U,V) C MACHINE: NCEP WCOSS C C$$$ - SUBROUTINE SMERGE(NM,NSIG,N5,NP,NH,N15,NLEV,IPRT,STOP) + SUBROUTINE SMERGE(NM,NSIG,N5,NB,NP,NH,N15,NLEV,IPRT,STOP) PARAMETER (MXWRDH = 15) PARAMETER (MXLVL = 600) PARAMETER (NUMVAR = 6, NUMQMS = 5) @@ -7025,13 +7132,14 @@ SUBROUTINE SMERGE(NM,NSIG,N5,NP,NH,N15,NLEV,IPRT,STOP) C NS IS NUMBER OF CAT. 2 AND CAT. 5 LEVELS COMBINED NS = NSIG + N5 NSN = NS -C KLVL IS NUMBER OF CAT. 1, 2, & CAT. 5 LEVELS COMBINED - KLVL = NM + NS +C KLVL IS NUMBER OF CAT. 1, 2, 5, AND 10 LEVELS COMBINED + KLVL = NM + NS + NB + NSTZ = NM + NS C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ C DETAILED PRINT FOR SPECIFIED REPORT(S) -- IF ENTERED IN DATA CARDS IF(IPRT(2).EQ.1.AND.NUMVAR.LT.11.AND.NUMQMS.LT.9) THEN PRINT 902, STNID - 902 FORMAT(/' SMERGE: ',A8,', CAT. 1,2,5 LVLS PRIOR TO DUPL. CHK') + 902 FORMAT(/' SMERGE: ',A8,', CAT. 1,2,5,10 LVLS PRIOR TO DUPL. CHK') IF(KLVL.GT.0) THEN DO N = 1,KLVL PRINT 900, (DAT(N,K),K=1,NUMVAR) @@ -7103,9 +7211,10 @@ SUBROUTINE SMERGE(NM,NSIG,N5,NP,NH,N15,NLEV,IPRT,STOP) C----------------------------------------------------------------------- C COMPARE CAT. 2 PRESS. W/ THEMSELVES & W/ CAT. 5 PRESS.; LOOK FOR DUPL. NST = NM + 1 - LOOP2: DO N = NST,KLVL +C KLVL REPLACED BELOW WITH NSTZ, DEFINED ABOVE CH 07/23/2021 + LOOP2: DO N = NST,NSTZ IP = NINT(DAT(N,1)*SCALE) - LOOP2n1: DO M = NST,KLVL + LOOP2n1: DO M = NST,NSTZ IF(M.EQ.N) CYCLE LOOP2n1 JP = NINT(DAT(M,1)*SCALE) IF(IP.NE.JP) CYCLE LOOP2n1 @@ -7141,7 +7250,7 @@ SUBROUTINE SMERGE(NM,NSIG,N5,NP,NH,N15,NLEV,IPRT,STOP) C DETAILED PRINT FOR SPECIFIED REPORT(S) -- IF ENTERED IN DATA CARDS IF(IPRT(2).EQ.1.AND.NUMVAR.LT.11.AND.NUMQMS.LT.9) THEN PRINT 903, STNID - 903 FORMAT(/' SMERGE: ',A8,', CAT. 1,2,5 LVLS W/ DUPL. ZEROED OUT') + 903 FORMAT(/' SMERGE: ',A8,', CAT. 1,2,5,10 LVLS W/ DUPL. ZEROED OUT') IF(KLVL.GT.0) THEN DO N = 1,KLVL PRINT 900, (DAT(N,K),K=1,NUMVAR) @@ -7154,15 +7263,16 @@ SUBROUTINE SMERGE(NM,NSIG,N5,NP,NH,N15,NLEV,IPRT,STOP) IF(LASTP.LT.LSTOP) LASTP = LSTOP C NSTA IS TOTAL NO. OF LVLS IN ALL DATA LEVEL CATEGORIES PLUS SPEC. 25 C OR 50MB LVLS - NSTA = NM + NS + NP + NH + N15 + NSTA = NM + NS + NB + NP + NH + N15 C IF MODPRT SMALL, STD. O-PUT PRINT NO. OF LVL IN EACH DATA LEVEL C CATEGORY. FOR ALL RPTS IF(MODPRT.LE.300.AND.MODPRT.GE.0) - $ PRINT 9090,STNID,IDATA(9),NSTA,NM,NSIG,N5,NP,NH,N15, + $ PRINT 9090,STNID,IDATA(9),NSTA,NM,NSIG,N5,NB,NP,NH,N15, $ REAL(LASTP)/SCALE 9090 FORMAT(1X,'ID ',A8,' DUMP RT.=',I3,', NLVLS: TOT=',I2,', CAT 1=' - $,I2,', CAT 2=',I2,', CAT 5=',I2,', CAT 3+SPEC LVLS=',I2,', CAT 4=' - $,I2,', CAT 15=',I2,' - TOP SIG P(W/MASS)=',F6.1,'MB') + $,I2,', CAT 2=',I2,', CAT 5=',I2,', CAT 10=',I3, + $', CAT 3+SPEC LVLS=',I2,', CAT 4=',I2,', CAT 15=',I2, + $' - TOP SIG P(W/MASS)=',F6.1,'MB') IF(IPRT(1).EQ.1.OR.IPRT(2).EQ.1) THEN PRINT 1902, STNID 1902 FORMAT(//,15X,'>>> COMPLETE LISTING OF DATA FOR STATION ID ',A8, @@ -7187,7 +7297,8 @@ SUBROUTINE SMERGE(NM,NSIG,N5,NP,NH,N15,NLEV,IPRT,STOP) IF(KLVL.EQ.1) KS(1) = 1 C*********************************************************************** C MERGE MANDATORY (DATA LEVEL CAT. 1) AND -C SIGNIFICANT (DATA LEVEL CAT. 2,5) LEVEL DATA +C SIGNIFICANT (DATA LEVEL CAT. 2,5) AND +C BUFR (DATA LEVEL CAT. 10) LEVEL DATA C*********************************************************************** C C FIRST, ARRANGE LEVELS IN ORDER OF DECREASING PRESSURE (FIRST ORDER @@ -9685,7 +9796,8 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) END IF LL_MASS=0 LL_WIND=0 - IF(NFILE.EQ.IUNIT(5)) ISQNUM_UPA = ISQNUM_UPA + 1 + IF(NFILE.EQ.IUNIT(5).OR.NFILE.EQ.IUNIT(5)+7) + + ISQNUM_UPA = ISQNUM_UPA + 1 ADPTYP = ' RAOB ' C 'ICALLM' INDICATES WHETHER MASS PIECE STORED IN OUTPUT FILE (IF SO =1) ICALLM = 0 @@ -9905,7 +10017,8 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) IF(LL.GT.0) THEN C SET REPORT SEQ. NUMBER TO "ISQNUM_UPA" AND STORE IN HDR(11) IF A C RADIOSONDE, PIBAL, DROPWINSONDE OR CLASS REPORT IN ADPUPA FILE - IF(NFILE.EQ.IUNIT(5)) HDR(11) = ISQNUM_UPA + IF(NFILE.EQ.IUNIT(5).OR.NFILE.EQ.IUNIT(5)+7) + + HDR(11) = ISQNUM_UPA CALL FILLX(LL,IERF) IF(IERF.EQ.0) THEN ICALLM = 1 @@ -10109,7 +10222,7 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) END IF C SET REPORT SEQ. NUMBER TO "ISQNUM_UPA" AND STORE IN HDR(11) IF A C RADIOSONDE, PIBAL, DROPWINSONDE OR CLASS REPORT IN ADPUPA FILE - IF(NFILE.EQ.IUNIT(5)) HDR(11) = ISQNUM_UPA + IF(NFILE.EQ.IUNIT(5).OR.NFILE.EQ.IUNIT(5)+7) HDR(11) = ISQNUM_UPA CALL FILLX(LL,IERF) LL_WIND = LL IF(LL_WIND.NE.LL_MASS.AND.LL_MASS.GT.0) THEN @@ -11404,7 +11517,7 @@ SUBROUTINE GETC06(NN,CYCLET,*,*) $ KSKSWD(10),RFFL,QIFY,QIFN,EEQF COMMON/UPALIM/LEVPM,LEVST,LEVQQ,TDLIM,TDMAX,SPCIAL,ISQNUM_UPA COMMON/PARM3/RECCON,RWINDO,UWINDO,RECSLM,FLRECO,VWINDO,VADWIN, - $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO + $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO,UPRAIR COMMON/SKPCNT/KSKPUA,KSKPSF,KMSGUA,KMSGSF,KBDYUA,KBDYSF,KTIMUA, $ KTIMSF,KSKNSW,KSKREC,KNOATS,KNTUPA,KNTCAR,KNTAIR,KNTSWN,KNTPRO, $ KNTVAD,KNTRAS,KNTDUM(3),KNTSFC,KNTSHP,KNTSLP,KNTMSO,KNTSPL, @@ -11469,7 +11582,7 @@ SUBROUTINE GETC06(NN,CYCLET,*,*) C (NOTE: FOR RECCOS IN NN=1, INITIALIZE WITH SEQ. NUMBER FROM LAST C REPORT PROCESSED FROM ADPUPA FILE IN SUBR. STOROB) ISQNUM(NN) = 0 - IF(NN.EQ.1) ISQNUM(NN) = ISQNUM_UPA + IF(NN.EQ.1.OR.NN.EQ.8) ISQNUM(NN) = ISQNUM_UPA ITIMES(NN) = 1 END IF IFLC6 = 0 @@ -11962,7 +12075,7 @@ SUBROUTINE GETC06(NN,CYCLET,*,*) ELSE IF(NAC.EQ.9) THEN HDR(8) = 1. END IF - ELSE IF(NN.EQ.1) THEN + ELSE IF(NN.EQ.1.OR.NN.EQ.8) THEN C STORE WORD 8 OF REPORT HEADER (REPORT "SUBTYPE") AS 1 FOR RECCOS C (STORED AS 2 FOR DROPS IN SUBR. PREP) IF(IDATA(9).EQ.31) HDR(8) = 1. @@ -13368,6 +13481,7 @@ SUBROUTINE SNDPRP(MS,INSTR,MSTSAT,MST,KEP) IDATA(17) = 0 IDATA(19) = 0 IDATA(21) = 0 + IDATA(31) = 0 HDR(6) = 160 + (10 * (MS - 1)) + INSTR C LEVPM NO LARGER THAN NUMBER OF MAND. LVLS; RESET LEVST & LEVQQ = LEVPM LEVPM = MIN(LEVPM,IDATA(13)) @@ -17972,7 +18086,7 @@ SUBROUTINE W3FIZZ(IER) PARAMETER (MPGMWD = 9) C PARAMETER NAME "IBTBLA" THROUGHOUT PGM SETS NUMBER OF PREPBUFR C TABLE-A MESSAGE TYPES - PARAMETER (IBTBLA = 19) + PARAMETER (IBTBLA = 20) COMMON/ADP/ISATOB,PMAND(23),RDATA(MAXOBS),IPRINT COMMON/FIZZAA/PCODE,IUNITP,NLV,NBT,HDR_8(MHDRWD), @@ -18070,7 +18184,9 @@ SUBROUTINE W3FIZZ(IER) ! WDSATR vvvvv $ 'POB UOB VOB NUL NUL NUL CAT NUL NUL DDO FFO NUL ', ! ASCATW vvvvv - $ 'POB UOB VOB NUL NUL NUL CAT NUL NUL DDO FFO NUL '/ + $ 'POB UOB VOB NUL NUL NUL CAT NUL NUL DDO FFO NUL ', + ! UPRAIR vvvvv + $ 'POB UOB VOB TOB QOB ZOB CAT TVO TDO DDO FFO XDR '/ DATA OBSSTR2/ ! PROFLR vvvvv @@ -18110,7 +18226,9 @@ SUBROUTINE W3FIZZ(IER) ! WDSATR vvvvv $ ' REQV NUL NUL NUL NUL NUL ', ! ASCATW vvvvv - $ ' NUL NUL NUL NUL NUL NUL '/ + $ ' NUL NUL NUL NUL NUL NUL ', + ! UPRAIR vvvvv + $ ' YDR HRDR NUL NUL NUL NUL '/ DATA QMSSTR/ ! PROFLR vvvvv @@ -18150,7 +18268,9 @@ SUBROUTINE W3FIZZ(IER) ! WDSATR vvvvv $ 'PQM WQM NUL NUL NUL NUL NUL DFQ NUL ', ! ASCATW vvvvv - $ 'PQM WQM NUL NUL NUL NUL NUL DFQ NUL '/ + $ 'PQM WQM NUL NUL NUL NUL NUL DFQ NUL ', + ! UPRAIR vvvvv + $ 'PQM WQM TQM QQM ZQM NUL NUL DFQ NUL '/ DATA PGMSTR/ ! PROFLR vvvvv @@ -18190,7 +18310,9 @@ SUBROUTINE W3FIZZ(IER) ! WDSATR vvvvv $ 'PPC NUL WPC DFP NUL NUL NUL NUL NUL ', ! ASCATW vvvvv - $ 'PPC NUL WPC DFP NUL NUL NUL NUL NUL '/ + $ 'PPC NUL WPC DFP NUL NUL NUL NUL NUL ', + ! UPRAIR vvvvv + $ 'PPC ZPC WPC DFP TPC QPC NUL NUL NUL '/ DATA RSNSTR/ ! PROFLR vvvvv @@ -18230,17 +18352,19 @@ SUBROUTINE W3FIZZ(IER) ! WDSATR vvvvv $ 'PRC NUL WRC DFR NUL NUL NUL NUL NUL ', ! ASCATW vvvvv - $ 'PRC NUL WRC DFR NUL NUL NUL NUL NUL '/ + $ 'PRC NUL WRC DFR NUL NUL NUL NUL NUL ', + ! UPRAIR vvvvv + $ 'PRC ZRC WRC DFR TRC QRC NUL NUL NUL '/ DATA SUBSET/'PROFLR ','VADWND ','ADPUPA ','AIRCAR ', $ 'AIRCFT ','SATWND ','SATEMP ','SPSSMI ', $ 'ADPSFC ','SFCSHP ','SFCBOG ','ERS1DA ', $ 'GOESND ','QKSWND ','MSONET ','GPSIPW ', - $ 'RASSDA ','WDSATR ','ASCATW '/ + $ 'RASSDA ','WDSATR ','ASCATW ','UPRAIR '/ DATA ICALL/0/,SINGLE/3*.FALSE.,3*.TRUE.,.FALSE.,5*.TRUE., - $ .FALSE.,3*.TRUE.,.FALSE.,2*.TRUE./,ITYPL/0/,ISUB/0/,ISUBT/0/, - $ IRECL/0/,AERS/12*0.0/ + $ .FALSE.,3*.TRUE.,.FALSE.,2*.TRUE.,.FALSE./,ITYPL/0/,ISUB/0/, + $ ISUBT/0/,IRECL/0/,AERS/12*0.0/ DATA YMISS/99998.8/,IMISS/99999/ DATA KTYP/ @@ -18307,6 +18431,7 @@ SUBROUTINE W3FIZZ(IER) C (TABLE A, B, D ENTRIES) FROM INPUT FILE CONTAINING BUFR MNEMONIC C TABLES A/B/D CALL OPENBF(IUNITP,'OUT',IUNIT(2)) + CALL MAXOUT(50000) ! CH 08/12/21 PRINT 100, IUNITP,IUNIT(2) 100 FORMAT(/8X,'===> NEW PREPBUFR DATA SET IN UNIT',I3, $ ' SUCCESSFULLY OPENED FOR OUTPUT; BUFR MNEMONIC TABLES A,B,D IN', @@ -19137,7 +19262,7 @@ SUBROUTINE FIZZ01(KI,NI,JI,SUBSET,SINGLE) COMMON/RPTHDR/SUBSET_d,STNID,HDR(2:MXWRDH),alon_8,alat_8 COMMON/LEVELS/MLEV COMMON/PARM3/RECCON,RWINDO,UWINDO,RECSLM,FLRECO,VWINDO,VADWIN, - $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO + $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO,UPRAIR COMMON/RADANC/RTRAD(35),GRAD(18),IGCHN(18),SOZANG,SAZANG,OZONE, $ SKINT,CLDAMT,TOVRAD,TOVRTV,GOESRD(2) COMMON/CLDTOP/CLTOP(2,3) @@ -19861,7 +19986,7 @@ SUBROUTINE FIZZ01(KI,NI,JI,SUBSET,SINGLE) COMMON/COUNT/KKTYPE(100:299) COMMON/PARM2/PG4243,KTEMP,i2many_lvls COMMON/PARM3/RECCON,RWINDO,UWINDO,RECSLM,FLRECO,VWINDO,VADWIN, - $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO + $ IVADFL,IVADSP,FLDMGS,FLDMAF,FLDMFR,DROPSN,DWINDO,UPRAIR COMMON/PARM4/ICODE COMMON/PARM5/FILLZ,FILLT,FILLW,FILLM,LSWIND,LSMASS,CWINDO,NPZ COMMON/PARM6/MODPRT,IFLUA,STNPRT(3) @@ -19896,7 +20021,7 @@ SUBROUTINE FIZZ01(KI,NI,JI,SUBSET,SINGLE) $ PG4243,SPCIAL,KTEMP,TR80KM,FILLZ,FILLT,FILLW,FILLM,PRFLER, $ TOVBFR,RECSLM,GOESPW,VADWIN,TOVRAD,TOVRTV,PFRALT,AIFNOW,FLDMGS, $ FLDMAF,FLDMFR,FLACMS,GOESRD,PREVEN,SUBSKP,APPEND, - $ PROFILERinADPUPA,GOESCT,RASS,WRMISS,SKGP45,npkrpt,SKGNSS + $ PROFILERinADPUPA,GOESCT,RASS,WRMISS,SKGP45,npkrpt,SKGNSS,UPRAIR CHARACTER*8 STNPRT DATA TOVEDS/2*.TRUE./,GOESND/2*.FALSE./,TOVBFR/2*.FALSE./, $ SATMST/80*.FALSE./,MARLND/.FALSE./,RECCON/.TRUE./, @@ -19911,6 +20036,7 @@ SUBROUTINE FIZZ01(KI,NI,JI,SUBSET,SINGLE) $ SUBSKP/51456*.FALSE./,APPEND/.FALSE./,PROFILERinADPUPA/.FALSE./, $ RASS/.FALSE./,WRMISS/.TRUE./,SKGP45/.TRUE./,npkrpt/12*.false./ DATA SKGNSS/.TRUE./ + DATA UPRAIR/.TRUE./ DATA MODPRT/500/,IGRD/73/,JGRD/37/ DATA PMAND/1000.,925.,850.,700.,500.,400.,300.,250.,200.,150., $ 100.,70., 50., 30., 20., 10., 7., 5., 3., 2., 1., .4, .1/ diff --git a/sorc/syndat_syndata.fd/CMakeLists.txt b/sorc/syndat_syndata.fd/CMakeLists.txt index 364f678..6c677fe 100644 --- a/sorc/syndat_syndata.fd/CMakeLists.txt +++ b/sorc/syndat_syndata.fd/CMakeLists.txt @@ -14,7 +14,7 @@ add_dependencies(${exe_name} gblevents) target_link_libraries( ${exe_name} gblevents - bufr::bufr_4) + bufr::bufr_4_DA) if(MKL_FOUND) target_link_libraries( diff --git a/sorc/syndat_syndata.fd/syndata.f b/sorc/syndat_syndata.fd/syndata.f index 83ed73e..f79fe3d 100644 --- a/sorc/syndat_syndata.fd/syndata.f +++ b/sorc/syndat_syndata.fd/syndata.f @@ -592,9 +592,12 @@ PROGRAM SYNDAT_SYNDATA C overflow when either an INTEGER*4 variable is set to BMISS or a C REAL*8 (or REAL*4) variable that is missing is NINT'd C ------------------------------------------------------------------- + CALL ISETPRM ( 'MXMSGL', 600000 ) ! CH 08/31/21 + CALL ISETPRM ( 'MAXSS', 600000 ) ! CH 08/31/21 ccccc CALL SETBMISS(10E10_8) CALL SETBMISS(10E8_8) BMISS=GETBMISS() + CALL MAXOUT(50000) ! CH 08/31/21 print'(1X)' print'(" BUFRLIB value for missing is: ",G0)', bmiss print'(1X)' @@ -28934,6 +28937,7 @@ SUBROUTINE EDTPRP(BLATMN,BLATMX,BLONMN,BLONMX,RMW,STMLAT,STMLON, CALL OPENBF(IUNTPN,'IN',IUNTPN) CALL OPENBF(IUNTPO,'OUT',IUNTPN) + CALL MAXOUT(50000) ! CH 08/31/2 CALL UFBQCD(IUNTPO,'SYNDATA',SYNPC) C VARIOUS COPYING OPTIONS diff --git a/ush/prepobs_makeprepbufr.sh b/ush/prepobs_makeprepbufr.sh index 4204227..1349d9f 100755 --- a/ush/prepobs_makeprepbufr.sh +++ b/ush/prepobs_makeprepbufr.sh @@ -421,7 +421,7 @@ # Default is "tm00" # BUFRLIST String indicating list of BUFR data dump file names to # process -# Default is "adpupa proflr aircar aircft satwnd adpsfc \ +# Default is "uprair proflr aircar aircft satwnd adpupa adpsfc \ # sfcshp sfcbog vadwnd goesnd spssmi erscat qkswnd msonet \ # gpsipw rassda wdsatr ascatw" # POE String indicating whether or not to use a poe-like launcher @@ -1013,9 +1013,9 @@ pgmout=${pgmout:-/dev/null} tstsp=${tstsp:-/tmp/null/} tmmark=${tmmark:-tm00} -BUFRLIST=${BUFRLIST:-"adpupa proflr aircar aircft satwnd adpsfc sfcshp \ - sfcbog vadwnd goesnd spssmi erscat qkswnd msonet gpsipw rassda wdsatr \ - ascatw"} +BUFRLIST=${BUFRLIST:-"uprair proflr aircar aircft satwnd adpupa adpsfc \ + sfcshp sfcbog vadwnd goesnd spssmi erscat qkswnd msonet gpsipw rassda \ + wdsatr ascatw"} PREPDATA=${PREPDATA:-YES} @@ -1634,20 +1634,24 @@ echo grp_adpsfc=$? echo $BUFRLIST | grep adpupa grp_adpupa=$? + echo $BUFRLIST | grep uprair + grp_uprair=$? if [ \( ! -f ${COMSP}adpsfc.${tmmark}.bufr_d -a \ ! -f ${tstsp}adpsfc.${tmmark}.bufr_d -a $grp_adpsfc -eq 0 \) -o \ \( ! -f ${COMSP}adpupa.${tmmark}.bufr_d -a \ - ! -f ${tstsp}adpupa.${tmmark}.bufr_d -a $grp_adpupa -eq 0 \) ] + ! -f ${tstsp}adpupa.${tmmark}.bufr_d -a $grp_adpupa -eq 0 -a \ + ! -f ${COMSP}uprair.${tmmark}.bufr_d -a \ + ! -f ${tstsp}uprair.${tmmark}.bufr_d -a $grp_uprair -eq 0 \) ] then -# problem: either adpsfc (surface land) or adpupa (raob/pibal/recco) file, or -# both, not found for requested time - this is unacceptable; EXIT +# problem: adpsfc (surface land), adpupa (raob/pibal/recco), or uprair +# (alt raob/pibal) file, OR ALL, not found for requested time ==> EXIT # (unless the culprit file was not included in the $BUFRLIST) # --------------------------------------------------------------------------- set +x echo -echo "ADPSFC and/or ADPUPA BUFR data dump was not produced for requested" +echo "ADPSFC and/or ADPUPA or UPRAIR BUFR data dump was not produced for requested" echo " time (but is in BUFRLIST); ABNORMAL EXIT!!!!!!!!!!!" echo set -x @@ -1910,8 +1914,9 @@ set -u echo " &task mp_process=$multi /" >>prepdata.stdin cat $DATA/prepdata.stdin >> prepdata.stdin -BUFRLIST_all="adpupa aircar aircft satwnd proflr vadwnd rassda adpsfc sfcshp \ - sfcbog msonet spssmi erscat qkswnd wdsatr ascatw rtovs atovs goesnd gpsipw" +BUFRLIST_all="uprair aircar aircft satwnd proflr vadwnd rassda adpupa adpsfc \ + sfcshp sfcbog msonet spssmi erscat qkswnd wdsatr ascatw rtovs atovs goesnd \ + gpsipw" ###BUFRLIST_all_array=($BUFRLIST_all) # this does not work on all platforms set -A BUFRLIST_all_array `echo $BUFRLIST_all` # this works on all platforms @@ -1946,19 +1951,20 @@ export FORT24=$dump_dir/${BUFRLIST_all_array[3]} export FORT25=$dump_dir/${BUFRLIST_all_array[4]} export FORT26=$dump_dir/${BUFRLIST_all_array[5]} export FORT27=$dump_dir/${BUFRLIST_all_array[6]} -export FORT31=$dump_dir/${BUFRLIST_all_array[7]} -export FORT32=$dump_dir/${BUFRLIST_all_array[8]} -export FORT33=$dump_dir/${BUFRLIST_all_array[9]} -export FORT34=$dump_dir/${BUFRLIST_all_array[10]} -export FORT35=$dump_dir/${BUFRLIST_all_array[11]} -export FORT36=$dump_dir/${BUFRLIST_all_array[12]} -export FORT37=$dump_dir/${BUFRLIST_all_array[13]} -export FORT38=$dump_dir/${BUFRLIST_all_array[14]} -export FORT39=$dump_dir/${BUFRLIST_all_array[15]} -export FORT41=$dump_dir/${BUFRLIST_all_array[16]} -export FORT42=$dump_dir/${BUFRLIST_all_array[17]} -export FORT46=$dump_dir/${BUFRLIST_all_array[18]} -export FORT48=$dump_dir/${BUFRLIST_all_array[19]} +export FORT28=$dump_dir/${BUFRLIST_all_array[7]} +export FORT31=$dump_dir/${BUFRLIST_all_array[8]} +export FORT32=$dump_dir/${BUFRLIST_all_array[9]} +export FORT33=$dump_dir/${BUFRLIST_all_array[10]} +export FORT34=$dump_dir/${BUFRLIST_all_array[11]} +export FORT35=$dump_dir/${BUFRLIST_all_array[12]} +export FORT36=$dump_dir/${BUFRLIST_all_array[13]} +export FORT37=$dump_dir/${BUFRLIST_all_array[14]} +export FORT38=$dump_dir/${BUFRLIST_all_array[15]} +export FORT39=$dump_dir/${BUFRLIST_all_array[16]} +export FORT41=$dump_dir/${BUFRLIST_all_array[17]} +export FORT42=$dump_dir/${BUFRLIST_all_array[18]} +export FORT46=$dump_dir/${BUFRLIST_all_array[19]} +export FORT48=$dump_dir/${BUFRLIST_all_array[20]} export FORT51=prepda export FORT52=prevents.filtering.prepdata @@ -1972,6 +1978,38 @@ export FORT52=prevents.filtering.prepdata # linked to the IOBUF i/o buffering library export IOBUF_PARAMS='*prevents.filtering.prepdata:verbose' +### Concatenate UPRAIR ID file among nodes before prepdata is executed +if [ "$PARALLEL" = 'YES' ] +then + sleep 2 + mq=0 + nq=0 + while [ $mq -lt $NSPLIT ] + do + if [ -s $DATA/multi$mq/fort.91 ] + then + nq=`expr $nq + 1` + fi + mq=`expr $mq + 1` + done + if [ $nq -eq $NSPLIT ] + then + cat $DATA/multi*/fort.91 | sort -k 1,1n -k 2,2n | uniq > $data/uprairids + ln -sf $data/uprairids $data/fort.92 + else + echo "" > $data/fort.92 + fi +else + if [ -s $DATA/fort.91 ] + then + cat $DATA/fort.91 > $DATA/uprairids + ln -sf $DATA/uprairids $DATA/fort.92 + else + echo "" > $DATA/fort.92 + fi +fi +### + #$TIMEIT $PRPX >$mp_pgmout 2>&1 $TIMEIT $PRPX >>$mp_pgmout 2>&1 errPREPDATA=$? @@ -2293,7 +2331,8 @@ echo if [ "$errPREPDATA" -eq '4' ]; then set +x echo - echo "WARNING: PREPOBS_PREPDATA FOUND EITHER NO ADPUPA OR NO ADPSFC DATA" + echo "WARNING: PREPOBS_PREPDATA FOUND EITHER NO ADPUPA, NO UPRAIR, \ +OR NO ADPSFC DATA" echo "-------- THESE DATA WILL NOT BE AVAILABLE TO ANALYSES" echo set -x From 0c8fe48e286734870b3a4f195c544755b1b6fec3 Mon Sep 17 00:00:00 2001 From: Iliana Genkova Date: Fri, 28 Oct 2022 00:01:55 +0000 Subject: [PATCH 13/78] Update VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 3eefcb9..9084fa2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0 +1.1.0 From cd2f6fc3f77c88de6a8dd5028e26ef36e22f206f Mon Sep 17 00:00:00 2001 From: christopher hill Date: Fri, 9 Dec 2022 07:55:29 +0000 Subject: [PATCH 14/78] Updating the capability to capture vertical levels, mandatory and otherwise, throughout the depth of each BUFR profile. --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 103 ++++++++++++++++------------ 1 file changed, 58 insertions(+), 45 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index 800255f..724a3a0 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -555,12 +555,16 @@ C of BUFR profile processing. C 2021-07-14 J. Dong -- In function R04UBF, added code to encode the C cloud data for the BUFR-feed ships data. -C 2022-09-30 C. Hill -- +C 2022-11-30 C. Hill -- C = Mandatory and surface vertical levels (VSIG = 32,64) are retained C from the profiles of 'uprair' dump files. An increment is C defined from the number of available vertical levels of each C 'uprair' profile and used to port additional vertical level -C data to the 255-element arrays of prepbufr. +C data to the 255-element arrays of prepbufr. The increment is +C increased according to the number of mandatory levels present, +C intending to capture a sufficient number of other vertical +C levels, throughout the depth of a BUFR profile, to fill the +C prepbufr arrays. C C C USAGE: II = IW3UNPBF(NUNIT, OBS, STNID, CRES1, CRES2, CBULL, OBS2, @@ -2138,15 +2142,14 @@ SUBROUTINE S02UBF(ICAT,N,*) c if(stnidx.eq.'89571 ') iprint = 1 c if(stnidx.eq.'68906 ') iprint = 1 c if(stnidx.eq.'68842 ') iprint = 1 - if(stnidx.eq.'10304 ') iprint = 1 - if(stnidx.eq.'70200 ') iprint = 1 - if(stnidx.eq.'72215 ') iprint = 1 c if(stnidx.eq.'74794 ') iprint = 1 c if(stnidx.eq.'74389 ') iprint = 1 c if(stnidx.eq.'96801A ') iprint = 1 if(stnidx.eq.'10304 ') iprint = 1 + if(stnidx.eq.'59316 ') iprint = 1 if(stnidx.eq.'70200 ') iprint = 1 if(stnidx.eq.'72214 ') iprint = 1 + if(stnidx.eq.'72215 ') iprint = 1 if(stnidx.eq.'72797 ') iprint = 1 cppppp-ID @@ -3039,8 +3042,14 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) NSKP = 0 CALL UFBINT(LUNIT,RID_8,1,1,IRET,'RPID') + IF(IRET.EQ.0.OR.IBFMS(RPID_8).NE.0) THEN + CALL UFBINT(LUNIT,RID_8,1,1,IRET,'WGOSLID') + CALL READLC(LUNIT,SID,'WIGOSLID') + IF(ICBFMS(SID,8).NE.0) SID = 'MISSING ' + ELSE CALL READLC(LUNIT,SID,'RPID') - + ENDIF + CC ANALYZE BUHD CONTENT PRIOR TO VSIG/VSIGX READ CH 12/18/2020 CC AND TO ADPUPA/UPRAIR CONTENT READ rev 03/23/2022 CALL UFBINT(LUNIT,BHD8,1,1,IRET,'BUHD') @@ -3051,7 +3060,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) NBFLG = 9 IF (BHD(3:3).EQ.'W') NBFLG = 1 IF (BHD(3:3).EQ.'J') NBFLG = 2 - IF (BHD(3:3).EQ.'D') NBFLG = 2 + IF((BHD(3:3).EQ.'D').AND.(SID(6:6).EQ.'A')) NBFLG = 2 CCdesc revisit for descending radiosonde profiles IF (BHD(3:3).EQ.'K') NBFLG = 2 IF((BHD(3:3).EQ.'K').AND.(IFTH.LE.5)) NBFLG = 3 @@ -3161,54 +3170,55 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) IF(NBFLG.EQ.0) +CALL UFBINT(LUNIT,VSG_8,1,255,NLEV,'VSIG') - IF ((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN + IF ((NBFLG.GE.1).AND.(NBFLG.LE.NBMX)) THEN CC VSIGXs ARE READ INTO A LARGER ARRAY CH 11/12/2020 CALL UFBINT(LUNIT,VSGX8,1,MXLV,NLEVX,'VSIGX') CC CC COMPUTE AN INTEGER SAMPLE INCREMENT ACCORDING TO NLEVX IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN - VLINC = MAX(1.0,(REAL(NLEVX-10)/255.)) +corig VLINC = MAX(1.0,(REAL(NLEVX)/255.)) LS = 1 LX = 1 + SN = 0. NC = 0 NC0 =0 DO L2 = 1,NLEVX + VLINC = MAX(1.0,(REAL(NLEVX)/(255.-SN))) NC=INT(REAL(L2)/VLINC) IF (LS.LE.255) THEN CC VSIG = VSIGX / 2048, INITIALLY - VSG_8(LS) = VSGX8(L2)/2048. -cx IF ((VSGX8(L2).GE.2048.).AND.(VSGX8(L2).LT.262144.)) THEN - IF ((VSG_8(LS).GE.1.).AND.(VSG_8(LS).LT.128)) THEN - DO LE = 0,6 - LF = 2.**LE - LF1 = 2.**(LE+1) - IF ((VSG_8(LS).GE.LF).AND.(VSG_8(LS).LT.LF1)) THEN - IF(LE.LE.1) VSG_8(LS) = LF1 - IF(LE.GE.2) VSG_8(LS) = LF - ENDIF - ENDDO - IF ((VSG_8(LS).EQ.32).OR.(VSG_8(LS).EQ.64)) THEN -CC SAVE MANDATORY LEVELS + VSG_8(LS) = VSGX8(L2)/2048. + IF (VSGX8(L2).EQ.0.) VSG_8(LS) = 128. + IF ((VSG_8(LS).GE.1.).AND.(VSG_8(LS).LT.128.)) THEN + DO LE = 0,6 + LF = 2.**LE + LF1 = 2.**(LE+1) + IF ((VSG_8(LS).GE.LF).AND.(VSG_8(LS).LT.LF1)) THEN + IF(LE.LE.1) VSG_8(LS) = LF1 + IF(LE.GE.2) VSG_8(LS) = LF + ENDIF + ENDDO + ENDIF +CC SAVE MANDATORY LEVELS + IF (VSG_8(LS).EQ.64.) NUSL(L2) = 1 + IF (VSG_8(LS).EQ.32.) THEN NUSL(L2) = 1 - LS = LS + 1 + SN = SN + 1. ENDIF - ENDIF - IF (VSGX8(L2).EQ.0) VSG_8(LS) = 2.**7 - IF ((VSG_8(LS).NE.32).AND.(VSG_8(LS).NE.64).AND. - + (NC.EQ.LX).AND.(NC.GT.NC0)) THEN CC SAVE INCREMENTAL LEVELS - NUSL(L2) = 1 - LS = LS + 1 - LX = LX + 1 - NC0=NC - ENDIF + IF ((NC.EQ.LX).AND.(NC.GT.NC0)) THEN + NUSL(L2) = 1 + LX = LX + 1 + NC0=NC + ENDIF + IF (NUSL(L2).EQ.1) LS = LS + 1 ENDIF CC STEP TO THE NEXT LEVEL ENDDO NLEV=MIN(LS,255) ENDIF ENDIF -CC END VSIGX ANALYSIS CH 11/12/2020 (rev 09/30/2022) +CC END VSIGX ANALYSIS CH 11/12/2020 (rev 11/30/2022) VSG=VSG_8 C PUT THE HEADER INFORMATION INTO UNPACKED FORMAT @@ -3359,13 +3369,11 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) CCCCCCCCCCCCCCCCCCCv CH 11/12/2020 - IF((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN + IF((NBFLG.GE.1).AND.(NBFLG.LE.NBMX)) THEN CC WITH VSIGX, VARIABLES ARE READ INTO LARGER ARRAY CALL UFBINT(LUNIT,ARRX,10,MXLV,NLEVX,LVSTR) C C -CC -CC RECALL THAT VLINC = NLEVX / 255 IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN LS = 1 DO L2 = 1,NLEVX @@ -3376,9 +3384,11 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ENDDO C C GNSS drift information to be added here +C [ ARR_8(8,LS) <-- XDR ] +C [ ARR_8(9,LS) <-- YDR ] +C [ ARR_8(10,LS) <-- HRDR ] C LS = LS + 1 -c NC0=NC ENDIF CC STEP TO THE NEXT LEVEL ENDDO @@ -3439,12 +3449,11 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) CCCCCCCCCCCCCCCCCCCv CH 11/12/2020 - IF((NBFLG.GT.0).AND.(NBFLG.LE.NBMX)) THEN + IF((NBFLG.GE.1).AND.(NBFLG.LE.NBMX)) THEN CC WITH VSIGX, VARIABLES ARE READ INTO LARGER ARRAY CALL UFBINT(LUNIT,ARRX,10,MXLV,NLEVX,QMSTR) CC IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN -CC RECALL THAT VLINC = NLEVX / 255 LS = 1 DO L2 = 1,NLEVX IF (NUSL(L2).EQ.1) THEN @@ -3508,7 +3517,8 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) CALL SE01UBF(4,L) END IF VSG(L) = 0 - ELSE IF(NINT(VSG(L)).EQ.2) THEN + ELSE IF (NBFLG.EQ.0) THEN + IF(NINT(VSG(L)).EQ.2) THEN P2(L) = POB(L) INDX2 = L IF(INDX8.GT.0) THEN @@ -3593,6 +3603,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) INDX16 = INDX16 + 1 P16(INDX16) = POB(L) END IF + ENDIF ! end check NBFLG ENDDO LOOP1 @@ -3624,7 +3635,9 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) END IF END IF Ccccccc v CH 01/19/2021 - ELSE IF (NINT(VSG(L)).EQ.128) THEN + ELSE IF ((NINT(VSG(L)).EQ.128).OR. + + ((NBFLG.GE.1).AND.(NBFLG.LE.NBMX))) THEN +C PROCESS ALL VALID LEVELS FROM BUFR PROFILE CH 11/30/2022 IF(MIN(DOB(L),ZOB(L),TOB(L)).GE.BMISS) THEN if(iprint.eq.1) then print'(" ==> For lvl ",I0,"; VSG=",F4.0" & DOB,ZOB," @@ -3643,7 +3656,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) END IF Ccccccccc ^ - ELSE IF(NINT(VSG(L)).EQ. 4) THEN + ELSE IF((NINT(VSG(L)).EQ. 4).AND.(NBFLG.EQ.0)) THEN if(iprint.eq.1) then print'(" ==> For lvl ",I0,"; VSG= 4 --> valid cat. 2 ", $ "lvl")', L @@ -3666,7 +3679,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) END IF CALL S02UBF(2,L,*9999) VSG(L) = 0 - ELSEIF(NINT(VSG(L)).EQ.16) THEN + ELSEIF((NINT(VSG(L)).EQ.16).AND.(NBFLG.EQ.0)) THEN if(iprint.eq.1) then print'(" ==> For lvl ",I0,"; VSG=16 --> valid cat. 5 ", $ "lvl")', L @@ -3712,7 +3725,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) cpppppppppp CALL S02UBF(6,L,*9999) VSG(L) = 0 - ELSEIF(NINT(VSG(L)).EQ. 2) THEN + ELSEIF((NINT(VSG(L)).EQ. 2).AND.(NBFLG.EQ.0)) THEN IF(POB(L).LT.BMISS) THEN IF(MAX(SOB(L),DOB(L)).LT.BMISS) THEN if(iprint.eq.1) then @@ -3768,7 +3781,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) END IF VSG(L) = 0 END IF - ELSEIF(NINT(VSG(L)).EQ. 8) THEN + ELSEIF((NINT(VSG(L)).EQ. 8).AND.(NBFLG.EQ.0)) THEN IF(POB(L).LT.BMISS) THEN if(iprint.eq.1) then print'(" ==> For lvl ",I0,"; VSG= 8 & POB .ne. ", From 449ca9ebc76dfb9a280480be9c50a762cf325958 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Tue, 13 Dec 2022 18:59:44 +0000 Subject: [PATCH 15/78] add LATDH LONDH LTDH --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index 724a3a0..8a5d5c3 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -3011,7 +3011,8 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) DATA HDSTR/'NUL CLON CLAT HOUR MINU SELV '/ DATA HDSTB/'NUL CLONH CLATH HOUR MINU HBMSL HEIT '/ ! BUFR - DATA LVSTR/'PRLC TMDP TMDB GP07 GP10 WDIR WSPD '/ + DATA LVSTR/'PRLC TMDP TMDB GP07 GP10 WDIR WSPD NUL + $ LATDH LONDH LTDS '/ DATA QMSTR/'QMPR QMAT QMDD QMGP QMWN '/ DATA RCSTR/'RCHR RCMI RCTS '/ @@ -3383,6 +3384,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ARR_8(MS,LS) = ARRX(MS,L2) ENDDO C + C GNSS drift information to be added here C [ ARR_8(8,LS) <-- XDR ] C [ ARR_8(9,LS) <-- YDR ] From 627e03ca1070cf2ebdd39624c38ad9b0b8cc5f45 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Wed, 14 Dec 2022 21:16:13 +0000 Subject: [PATCH 16/78] newest adds --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 49 ++++++++++++++++++----------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index 8a5d5c3..777eca2 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -2988,7 +2988,8 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) COMMON/IUBFDD/HDR(12),RCATS(50,LEVLIM,NUMCAT),IKAT(NUMCAT), $ MCAT(NUMCAT),NCAT(NUMCAT),LVDX(NUMCAT) COMMON/IUBFEE/POB(255),QOB(255),TOB(255),ZOB(255),DOB(255), - $ SOB(255),VSG(255),OB8(255),CF8(255) + $ SOB(255),VSG(255),OB8(255),CF8(255), + $ XOB(255),YOB(255),HRDR(255) COMMON/IUBFFF/PQM(255),QQM(255),TQM(255),ZQM(255),WQM(255) COMMON/IUBFII/PWMIN COMMON/IUBFLL/Q81(255),Q82(255) @@ -3011,7 +3012,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) DATA HDSTR/'NUL CLON CLAT HOUR MINU SELV '/ DATA HDSTB/'NUL CLONH CLATH HOUR MINU HBMSL HEIT '/ ! BUFR - DATA LVSTR/'PRLC TMDP TMDB GP07 GP10 WDIR WSPD NUL + DATA LVSTR/'PRLC TMDP TMDB GP07 GP10 WDIR WSPD $ LATDH LONDH LTDS '/ DATA QMSTR/'QMPR QMAT QMDD QMGP QMWN '/ DATA RCSTR/'RCHR RCMI RCTS '/ @@ -3372,29 +3373,41 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) IF((NBFLG.GE.1).AND.(NBFLG.LE.NBMX)) THEN CC WITH VSIGX, VARIABLES ARE READ INTO LARGER ARRAY - CALL UFBINT(LUNIT,ARRX,10,MXLV,NLEVX,LVSTR) + CALL UFBINT(LUNIT,ARRX,10,MXLV,NLEVX,LVSTR) C C - IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN - LS = 1 - DO L2 = 1,NLEVX - IF (NUSL(L2).EQ.1) THEN -CC ARRX -> ARR_8 - DO MS = 1,10 - ARR_8(MS,LS) = ARRX(MS,L2) - ENDDO -C - + IF ((NLEVX.GT.0).AND.(NLEVX.LE.MXLV)) THEN + LS = 1 + DO L2 = 1,NLEVX + IF (NUSL(L2).EQ.1) THEN +CC ARRX -> ARR_8 + DO MS = 1,10 + ARR_8(MS,LS) = ARRX(MS,L2) + ENDDO + +C IF (L2.EQ.8) THEN +C ARR_8(8,LS) = ARRX(8,L2) +C END IF +C IF (L2.EQ.9) THEN +C ARR_8(9,LS) = ARRX(9,L2) +C END IF +C IF (L2.EQ.10) THEN +C ARR_8(10,LS) = ARRX(10,L2) +C END IF + + PRINT *, "LVSTR: ", ARRX +C PRINT *, "GNSS drift info: ", ARR_8(8,LS), ARR_8(9,LS), ARR_8(10,LS) + C GNSS drift information to be added here C [ ARR_8(8,LS) <-- XDR ] C [ ARR_8(9,LS) <-- YDR ] C [ ARR_8(10,LS) <-- HRDR ] C - LS = LS + 1 - ENDIF -CC STEP TO THE NEXT LEVEL - ENDDO - NLEV=MIN(LS,255) + LS = LS + 1 + ENDIF +CC STEP TO THE NEXT LEVEL + ENDDO + NLEV=MIN(LS,255) ENDIF ENDIF From 5bbcf669b3a1c53731b2b758b5f0814ebef5a0f8 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Wed, 14 Dec 2022 23:28:25 +0000 Subject: [PATCH 17/78] add print, xdr,ydr,hrdr --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index 777eca2..475f415 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -2989,7 +2989,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) $ MCAT(NUMCAT),NCAT(NUMCAT),LVDX(NUMCAT) COMMON/IUBFEE/POB(255),QOB(255),TOB(255),ZOB(255),DOB(255), $ SOB(255),VSG(255),OB8(255),CF8(255), - $ XOB(255),YOB(255),HRDR(255) + $ XDR(255),YDR(255),HRDR(255) COMMON/IUBFFF/PQM(255),QQM(255),TQM(255),ZQM(255),WQM(255) COMMON/IUBFII/PWMIN COMMON/IUBFLL/Q81(255),Q82(255) @@ -3395,7 +3395,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) C ARR_8(10,LS) = ARRX(10,L2) C END IF - PRINT *, "LVSTR: ", ARRX +C PRINT *, "LVSTR: ", ARRX C PRINT *, "GNSS drift info: ", ARR_8(8,LS), ARR_8(9,LS), ARR_8(10,LS) C GNSS drift information to be added here @@ -3412,6 +3412,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ENDIF ARR=ARR_8 +C PRINT *, "ARR: ", ARR CCCCCCCCCCCCCCCCCCC^ CH 11/12/2020 PWMIN = 999999. @@ -3451,10 +3452,18 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ELSE IF(NINT(DOB(L)).EQ.360.AND.NINT(SOB(L)).EQ.0) THEN DOB(L) = 0 END IF + XDR(L) = BMISS + XDR(L) = ARR(8,L) + YDR(L) = BMISS + YDR(L) = ARR(9,L) + HRDR(L) = BMISS + HRDR(L) = ARR(10,L) if(iprint.eq.1) then print'(" At lvl=",I0,"; VSG=",G0,"; POB = ",G0,"; QOB = ", $ G0,"; TOB = ",G0,"; ZOB = ",G0,"; DOB = ",G0,"; SOB = ", - $ G0)', L,vsg(L),pob(L),qob(L),tob(L),zob(L),dob(L),sob(L) + $ G0,"; XOB = ",G0,"; YOB = ",G0,"; HRDR = ",G0,"; fin")', L, + $ vsg(L),pob(L),qob(L),tob(L),zob(L),dob(L),sob(L),xdr(L), + $ ydr(L),hrdr(L) end if IF(MAX(POB(L),DOB(L),SOB(L)).LT.BMISS) PWMIN =MIN(PWMIN,POB(L)) ENDDO From 3e217ab99d4fba45541a33613acf77b1ebef58f5 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Thu, 15 Dec 2022 17:16:34 +0000 Subject: [PATCH 18/78] add xdrydrhrdr to RCAT --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index 475f415..98bcff7 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -2298,6 +2298,9 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(11) = MAX(NINT(WQM(N)),NINT(RCATS(11,L,KCAT))) ELSE RCAT(11) = NINT(WQM(N)) + RCAT(12) = MIN(NINT(XDR(N)),NINT(RCATS(12,L,KCAT))) + RCAT(13) = MIN(NINT(YDR(N)),NINT(RCATS(13,L,KCAT))) + RCAT(14) = MIN(NINT(HRDR(N)),NINT(RCATS(14,L,KCAT))) END IF ELSEIF(ICAT.EQ.2) THEN RCAT(1) = MIN(NINT(POB(N)),IMISS) From 0b1e82eb10461796198948e59c09b6b36c8865bf Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Thu, 15 Dec 2022 18:14:29 +0000 Subject: [PATCH 19/78] ? --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index 98bcff7..d62656b 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -2298,9 +2298,9 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(11) = MAX(NINT(WQM(N)),NINT(RCATS(11,L,KCAT))) ELSE RCAT(11) = NINT(WQM(N)) - RCAT(12) = MIN(NINT(XDR(N)),NINT(RCATS(12,L,KCAT))) - RCAT(13) = MIN(NINT(YDR(N)),NINT(RCATS(13,L,KCAT))) - RCAT(14) = MIN(NINT(HRDR(N)),NINT(RCATS(14,L,KCAT))) +C RCAT(12) = MIN(NINT(XDR(N)),NINT(RCATS(12,L,KCAT))) +C RCAT(13) = MIN(NINT(YDR(N)),NINT(RCATS(13,L,KCAT))) +C RCAT(14) = MIN(NINT(HRDR(N)),NINT(RCATS(14,L,KCAT))) END IF ELSEIF(ICAT.EQ.2) THEN RCAT(1) = MIN(NINT(POB(N)),IMISS) From 41e39049fa6db5506157e6c1e1ad00722a2390c2 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Thu, 15 Dec 2022 18:26:01 +0000 Subject: [PATCH 20/78] 1.0.0 -> 1.1.0 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 3eefcb9..9084fa2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0 +1.1.0 From 7415eeff304ed4fe4e586477bcb6e94cdb892678 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Thu, 15 Dec 2022 21:43:28 +0000 Subject: [PATCH 21/78] testing RCAT --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index d62656b..dc11e9c 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -2117,7 +2117,8 @@ SUBROUTINE S02UBF(ICAT,N,*) COMMON/IUBFDD/HDR(12),RCATS(50,LEVLIM,NUMCAT),IKAT(NUMCAT), $ MCAT(NUMCAT),NCAT(NUMCAT),LVDX(NUMCAT) COMMON/IUBFEE/POB(255),QOB(255),TOB(255),ZOB(255),DOB(255), - $ SOB(255),VSG(255),OB8(255),CF8(255) + $ SOB(255),VSG(255),OB8(255),CF8(255), + $ XDR(255),YDR(255),HRDR(255) COMMON/IUBFFF/PQM(255),QQM(255),TQM(255),ZQM(255),WQM(255) COMMON/IUBFGG/PSL,STP,SDR,SSP,STM,DPD COMMON/IUBFHH/PSQ,SPQ,SWQ,STQ,DDQ @@ -2298,9 +2299,10 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(11) = MAX(NINT(WQM(N)),NINT(RCATS(11,L,KCAT))) ELSE RCAT(11) = NINT(WQM(N)) -C RCAT(12) = MIN(NINT(XDR(N)),NINT(RCATS(12,L,KCAT))) -C RCAT(13) = MIN(NINT(YDR(N)),NINT(RCATS(13,L,KCAT))) -C RCAT(14) = MIN(NINT(HRDR(N)),NINT(RCATS(14,L,KCAT))) + RCAT(12) = NINT(RCATS(12,L,KCAT)) + RCAT(13) = MIN(NINT(YDR(N)),NINT(RCATS(13,L,KCAT))) + RCAT(14) = MIN(NINT(HRDR(N)),NINT(RCATS(14,L,KCAT))) + PRINT *, "RCAT121314; ", RCAT(12), RCAT(13), RCAT(14) END IF ELSEIF(ICAT.EQ.2) THEN RCAT(1) = MIN(NINT(POB(N)),IMISS) From 515c534ac83cacf3d2a0265ea93b815c2dc53633 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Fri, 16 Dec 2022 21:58:33 +0000 Subject: [PATCH 22/78] Updates 12.16. RDAT, other changes in prepdata.f --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 17 ++++++++--------- sorc/prepobs_prepdata.fd/prepdata.f | 21 ++++++++++++++++++--- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index dc11e9c..5301ff7 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -2202,6 +2202,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C ----------------------------------------------------------------- IF(N.EQ.0) THEN + PRINT *, "ICAT IS: ", ICAT IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) RETURN NCAT(KCAT) = MIN(LEVLIM-1,NCAT(KCAT)+1) if(iprint.eq.1) then @@ -2269,6 +2270,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C ---------------------------------------------------------- IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) THEN + PRINT *, "ICAT 2 is: ", ICAT RCAT(1) = MIN(NINT(POB(N)),NINT(RCATS( 1,L,KCAT))) RCAT(2) = MIN(NINT(ZOB(N)),NINT(RCATS( 2,L,KCAT))) RCAT(3) = MIN(NINT(TOB(N)),NINT(RCATS( 3,L,KCAT))) @@ -2299,10 +2301,10 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(11) = MAX(NINT(WQM(N)),NINT(RCATS(11,L,KCAT))) ELSE RCAT(11) = NINT(WQM(N)) - RCAT(12) = NINT(RCATS(12,L,KCAT)) + RCAT(12) = MIN(NINT(XDR(N)),NINT(RCATS(12,L,KCAT))) RCAT(13) = MIN(NINT(YDR(N)),NINT(RCATS(13,L,KCAT))) RCAT(14) = MIN(NINT(HRDR(N)),NINT(RCATS(14,L,KCAT))) - PRINT *, "RCAT121314; ", RCAT(12), RCAT(13), RCAT(14) + PRINT *, "RCAT1 121314; ",RCAT(1),RCAT(12),RCAT(13),RCAT(14) END IF ELSEIF(ICAT.EQ.2) THEN RCAT(1) = MIN(NINT(POB(N)),IMISS) @@ -3457,16 +3459,13 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ELSE IF(NINT(DOB(L)).EQ.360.AND.NINT(SOB(L)).EQ.0) THEN DOB(L) = 0 END IF - XDR(L) = BMISS - XDR(L) = ARR(8,L) - YDR(L) = BMISS - YDR(L) = ARR(9,L) - HRDR(L) = BMISS - HRDR(L) = ARR(10,L) + XDR(L) = MIN(BMISS,ARR(8,L)*100000) + YDR(L) = MIN(BMISS,ARR(9,L)*100000) + HRDR(L) = MIN(BMISS,ARR(10,L)) if(iprint.eq.1) then print'(" At lvl=",I0,"; VSG=",G0,"; POB = ",G0,"; QOB = ", $ G0,"; TOB = ",G0,"; ZOB = ",G0,"; DOB = ",G0,"; SOB = ", - $ G0,"; XOB = ",G0,"; YOB = ",G0,"; HRDR = ",G0,"; fin")', L, + $ G0,"; XDR = ",G0,"; YDR = ",G0,"; HRDR = ",G0,"; fin")', L, $ vsg(L),pob(L),qob(L),tob(L),zob(L),dob(L),sob(L),xdr(L), $ ydr(L),hrdr(L) end if diff --git a/sorc/prepobs_prepdata.fd/prepdata.f b/sorc/prepobs_prepdata.fd/prepdata.f index cb6d888..2227115 100644 --- a/sorc/prepobs_prepdata.fd/prepdata.f +++ b/sorc/prepobs_prepdata.fd/prepdata.f @@ -9781,7 +9781,9 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) $ obs8_8(2) COMMON /BUFRLIB_MISSING/BMISS EQUIVALENCE (DAT,PP),(DAT(1,2),ZP),(DAT(1,3),TP),(DAT(1,4),DP), - $ (DAT(1,5),UP),(DAT(1,6),VP),(DAT(1,NUMVAR+1),IQ),(IDATA,RDATA) + $ (DAT(1,5),UP),(DAT(1,6),VP),(DAT(1,NUMVAR+1),IQ), + $ (DAT(1,12),XP),(DAT(1,13),YP),(DAT(1,14),HP), + $ (IDATA,RDATA) DATA XMISS/99999./,YMISS/99998.8/,IMISS/99999/ EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+1),IR) C FCNS BELOW CONVERT TEMP/TD (K) & PRESS (MB) INTO SAT./ SPEC. HUM.(G/G) @@ -9809,6 +9811,11 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) IZBEST = 99 IWBEST = 99 DO I = 1,NLEV + IF(I.EQ.5) THEN + PRINT *, "I EQ 5" + PRINT *, PP(I),ZP(I),TP(I),UP(I),VP(I) + PRINT *, XP(I),YP(I),HP(I) + ENDIF IQ1 = IQ(I,1) C FOR NON-SAT RETR: ADD 16 TO HEIGHT PREPBUFR TABLE VAL. SO IT WILL PASS C PIBAL/PROFLR/VADWND TST(ALSO TST CAT.3 IN CASE OF DUPL. LVL W/ CAT.4, @@ -10280,7 +10287,8 @@ SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) PARAMETER (MAXOBS = 3500) CHARACTER*8 STNID,SUBSET_d INTEGER IQ(MXLVL,NUMQMS),IDATA(MAXOBS),IPRT(2) - REAL PP(MXLVL),ZP(MXLVL),TP(MXLVL),DP(MXLVL),UP(MXLVL),VP(MXLVL) + REAL PP(MXLVL),ZP(MXLVL),TP(MXLVL),DP(MXLVL),UP(MXLVL),VP(MXLVL), + $ XP(MXLVL),YP(MXLVL),HP(MXLVL) real(8) alon_8,alat_8 COMMON/ADP/ISATOB,PMAND(23),RDATA(MAXOBS),IPRINT COMMON/SNDATA/DAT(MXLVL,NUMDAT) @@ -10291,7 +10299,9 @@ SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) $ UDRIFT(MXLVL),VDRIFT(MXLVL),XDRIFT(MXLVL),YDRIFT(MXLVL), $ TDRIFT_LL(MXLVL),KFLAG(5),LFLAG(3),PLO,IFLTIM,JJ,II EQUIVALENCE (DAT,PP),(DAT(1,2),ZP),(DAT(1,3),TP),(DAT(1,4),DP), - $ (DAT(1,5),UP),(DAT(1,6),VP),(DAT(1,NUMVAR+1),IQ),(IDATA,RDATA) + $ (DAT(1,5),UP),(DAT(1,6),VP),(DAT(1,NUMVAR+1),IQ),(DAT(1,12),XP), + $ (DAT(1,13),YP),(DAT(1,14),HP), + $ (IDATA,RDATA) DATA XMISS/99999./,YMISS/99998.8/ DATA PI/3.141592654/ DATA ASCRT/5.0/ ! ASCENT RATE (IN M/SEC) @@ -10337,6 +10347,11 @@ SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) IQ4 = IQ(I,4) IF(IQ(I,4).EQ.16) IQ4 = 3 + +C NICK E PROB GOES HERE + PRINT *, "NICKE pb trial" + PRINT *, XP(I), YP(I), HP(I) + C----------------------------------------------------------------------- C BALLOON DRIFT TIME CALCULATION C----------------------------------------------------------------------- From 8837e0bad9bb6df10b422fdb7da9450fd1f18ef3 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Mon, 19 Dec 2022 18:19:39 +0000 Subject: [PATCH 23/78] update order of RCAT when setting --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index 5301ff7..71a3f59 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -2301,11 +2301,11 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(11) = MAX(NINT(WQM(N)),NINT(RCATS(11,L,KCAT))) ELSE RCAT(11) = NINT(WQM(N)) - RCAT(12) = MIN(NINT(XDR(N)),NINT(RCATS(12,L,KCAT))) - RCAT(13) = MIN(NINT(YDR(N)),NINT(RCATS(13,L,KCAT))) - RCAT(14) = MIN(NINT(HRDR(N)),NINT(RCATS(14,L,KCAT))) - PRINT *, "RCAT1 121314; ",RCAT(1),RCAT(12),RCAT(13),RCAT(14) END IF + RCAT(12) = MIN(NINT(HRDR(N)),NINT(RCATS(12,L,KCAT))) + RCAT(13) = MIN(NINT(XDR(N)),NINT(RCATS(13,L,KCAT))) + RCAT(14) = MIN(NINT(YDR(N)),NINT(RCATS(14,L,KCAT))) + PRINT *, "RCAT1 121314; ",RCAT(1),RCAT(12),RCAT(13),RCAT(14) ELSEIF(ICAT.EQ.2) THEN RCAT(1) = MIN(NINT(POB(N)),IMISS) RCAT(2) = MIN(NINT(TOB(N)),IMISS) @@ -3020,7 +3020,7 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) DATA HDSTR/'NUL CLON CLAT HOUR MINU SELV '/ DATA HDSTB/'NUL CLONH CLATH HOUR MINU HBMSL HEIT '/ ! BUFR DATA LVSTR/'PRLC TMDP TMDB GP07 GP10 WDIR WSPD - $ LATDH LONDH LTDS '/ + $ LTDS LATDH LONDH '/ DATA QMSTR/'QMPR QMAT QMDD QMGP QMWN '/ DATA RCSTR/'RCHR RCMI RCTS '/ @@ -3459,15 +3459,15 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ELSE IF(NINT(DOB(L)).EQ.360.AND.NINT(SOB(L)).EQ.0) THEN DOB(L) = 0 END IF - XDR(L) = MIN(BMISS,ARR(8,L)*100000) - YDR(L) = MIN(BMISS,ARR(9,L)*100000) - HRDR(L) = MIN(BMISS,ARR(10,L)) + HRDR(L) = MIN(BMISS,ARR(8,L)) + XDR(L) = MIN(BMISS,ARR(9,L)*100000) + YDR(L) = MIN(BMISS,ARR(10,L)*100000) if(iprint.eq.1) then print'(" At lvl=",I0,"; VSG=",G0,"; POB = ",G0,"; QOB = ", $ G0,"; TOB = ",G0,"; ZOB = ",G0,"; DOB = ",G0,"; SOB = ", $ G0,"; XDR = ",G0,"; YDR = ",G0,"; HRDR = ",G0,"; fin")', L, - $ vsg(L),pob(L),qob(L),tob(L),zob(L),dob(L),sob(L),xdr(L), - $ ydr(L),hrdr(L) + $ vsg(L),pob(L),qob(L),tob(L),zob(L),dob(L),sob(L),hrdr(L), + $ xdr(L),ydr(L) end if IF(MAX(POB(L),DOB(L),SOB(L)).LT.BMISS) PWMIN =MIN(PWMIN,POB(L)) ENDDO From a4fa57014260ff693b0e490bbc26ca0c7bddd4ed Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Mon, 19 Dec 2022 18:31:53 +0000 Subject: [PATCH 24/78] add HP XP YP to REAL --- sorc/prepobs_prepdata.fd/prepdata.f | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sorc/prepobs_prepdata.fd/prepdata.f b/sorc/prepobs_prepdata.fd/prepdata.f index 2227115..effaca7 100644 --- a/sorc/prepobs_prepdata.fd/prepdata.f +++ b/sorc/prepobs_prepdata.fd/prepdata.f @@ -9762,6 +9762,7 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) LOGICAL KTEMP,PROFILERinADPUPA INTEGER IQ(MXLVL,NUMQMS),IDATA(MAXOBS),IR(MXLVL,NUMQMS),IPRT(2) REAL PP(MXLVL),ZP(MXLVL),TP(MXLVL),DP(MXLVL),UP(MXLVL),VP(MXLVL) + REAL HP(MXLVL),XP(MXLVL),YP(MXLVL) REAL(8) BMISS,obs8_8,alon_8,alat_8 COMMON/STRCTY/ICAT(MXLVL) COMMON/STRMOB/MOBS(MXTYPV,MXWRDL,MXLVL) @@ -9782,7 +9783,7 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) COMMON /BUFRLIB_MISSING/BMISS EQUIVALENCE (DAT,PP),(DAT(1,2),ZP),(DAT(1,3),TP),(DAT(1,4),DP), $ (DAT(1,5),UP),(DAT(1,6),VP),(DAT(1,NUMVAR+1),IQ), - $ (DAT(1,12),XP),(DAT(1,13),YP),(DAT(1,14),HP), + $ (DAT(1,12),HP),(DAT(1,13),XP),(DAT(1,14),YP), $ (IDATA,RDATA) DATA XMISS/99999./,YMISS/99998.8/,IMISS/99999/ EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+1),IR) From 86d7cb30ea7f18d72c5734b444b72ee6ba58d415 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Mon, 19 Dec 2022 19:01:16 +0000 Subject: [PATCH 25/78] add NUMGPS --- sorc/prepobs_prepdata.fd/prepdata.f | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/prepdata.f b/sorc/prepobs_prepdata.fd/prepdata.f index effaca7..58279ea 100644 --- a/sorc/prepobs_prepdata.fd/prepdata.f +++ b/sorc/prepobs_prepdata.fd/prepdata.f @@ -9753,8 +9753,8 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) PARAMETER (MXTYPV = 3) PARAMETER (MXWRDL = 6) PARAMETER (MXLVL = 600) - PARAMETER (NUMVAR = 6, NUMQMS = 5) - PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS)) + PARAMETER (NUMVAR = 6, NUMQMS = 5, NUMGPS = 3) + PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS) + NUMGPS) PARAMETER (MXBLVL = 255) PARAMETER (MAXOBS = 3500) PARAMETER (NUMOBS2 = 43) @@ -9786,7 +9786,7 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) $ (DAT(1,12),HP),(DAT(1,13),XP),(DAT(1,14),YP), $ (IDATA,RDATA) DATA XMISS/99999./,YMISS/99998.8/,IMISS/99999/ - EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+1),IR) + EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+NUMGPS+1),IR) C FCNS BELOW CONVERT TEMP/TD (K) & PRESS (MB) INTO SAT./ SPEC. HUM.(G/G) ES(T) = 6.1078 * EXP((17.269 * (T - 273.16))/((T - 273.16)+237.3)) QFRMTP(T,P) = (0.622 * ES(T))/(P - (0.378 * ES(T))) @@ -10283,8 +10283,8 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) PARAMETER (MXWRDH = 15) PARAMETER (MXLVL = 600) - PARAMETER (NUMVAR = 6, NUMQMS = 5) - PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS)) + PARAMETER (NUMVAR = 6, NUMQMS = 5, NUMGPS = 3) + PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS) + NUMGPS) PARAMETER (MAXOBS = 3500) CHARACTER*8 STNID,SUBSET_d INTEGER IQ(MXLVL,NUMQMS),IDATA(MAXOBS),IPRT(2) From 53c6e6751050ea9a08eb2624bf5581ec9e385657 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Wed, 21 Dec 2022 17:57:25 +0000 Subject: [PATCH 26/78] HRDR XDR YDR all the way into balloon_drift. balloon_drift is next --- sorc/prepobs_prepdata.fd/prepdata.f | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/prepdata.f b/sorc/prepobs_prepdata.fd/prepdata.f index 58279ea..49d1be6 100644 --- a/sorc/prepobs_prepdata.fd/prepdata.f +++ b/sorc/prepobs_prepdata.fd/prepdata.f @@ -6091,8 +6091,8 @@ FUNCTION ISEL(ID) SUBROUTINE GETUPA(*,*) PARAMETER (MXWRDH = 15) PARAMETER (MXLVL = 600) - PARAMETER (NUMVAR = 6, NUMQMS = 5) - PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS)) + PARAMETER (NUMVAR = 6, NUMQMS = 5, NUMGPS = 3) + PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS) + NUMGPS) PARAMETER (MAXOBS = 3500) CHARACTER*5 CTYPE CHARACTER*8 STNPRT,STNID,SUBSET_d @@ -6114,7 +6114,7 @@ SUBROUTINE GETUPA(*,*) COMMON/RUNSW/IRNMRK C DATA AT PRESSURE LEVELS (MESHED SOUNDING) EQUIVALENCE (RDATA,IDATA),(DAT(1,NUMVAR+1),IQ) - EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+1),IR) + EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+NUMGPS+1),IR) DATA XMISS/99999./,YMISS/99998.8/,IMISS/99999/ DATA PS/1000.,975.,950.,925.,900.,875.,850.,825.,800.,775., $ 750.,725.,700.,675.,650.,625.,600.,575.,550.,525., @@ -6166,6 +6166,8 @@ SUBROUTINE GETUPA(*,*) C DAT(NL,7) - HEIGHT DAT(NL,8) - TEMPERATURE C DAT(NL,9) - DATA LEVEL CATEGORY DAT(NL,10) - WIND C DAT(NL,11)- VERTICAL COORDINATE +C Something Values: +C DAT(NL,12) - HRDR DAT(NL,13) - XDR DAT(NL,14) - YDR C C # - SENSIBLE TEMPERATURE FOR ALL NON-SATELLITE DATA TYPES C VIRTUAL TEMPERATURE FOR RTOVS OR ATOVS (UNPACKED NMCEDS) @@ -6188,6 +6190,7 @@ SUBROUTINE GETUPA(*,*) NN = IDATA(13) II = IDATA(14) - 11 NN = MIN(NN,LEVPM) +C PRINT *, 'nn=idata13,idata14,ii=idata14,nn',IDATA(13),IDATA(14),II,NN IZBEST = 99 IF(NN.LE.0) GO TO 11 DO N = 1,NN @@ -6473,6 +6476,16 @@ SUBROUTINE GETUPA(*,*) DAT(NL,6) = NINT(RDATA(II+5)) * 0.1 IQ(NL,4) = IVM END IF + IF(RDATA(II+12).LT.YMISS) THEN + DAT(NL,12) = NINT(RDATA(II+12)) + END IF + IF(RDATA(II+13).LT.YMISS) THEN + DAT(NL,13) = (NINT(RDATA(II+13))/100000.) + END IF + IF(RDATA(II+14).LT.YMISS) THEN + DAT(NL,14) = (NINT(RDATA(II+14))/100000.) + END IF + PRINT *, "NICKE NEW RDATA",DAT(NL,12),DAT(NL,13),DAT(NL,14) ENDDO C RESET IDATA(31) TO NUMBER OF 'GOOD' CAT. 10 LEVELS ACTUALLY PROCESSED IDATA(31) = NB @@ -9761,8 +9774,8 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) CHARACTER*8 ADPTYP,STNID,STNPRT,SUBSET_d LOGICAL KTEMP,PROFILERinADPUPA INTEGER IQ(MXLVL,NUMQMS),IDATA(MAXOBS),IR(MXLVL,NUMQMS),IPRT(2) - REAL PP(MXLVL),ZP(MXLVL),TP(MXLVL),DP(MXLVL),UP(MXLVL),VP(MXLVL) - REAL HP(MXLVL),XP(MXLVL),YP(MXLVL) + REAL PP(MXLVL),ZP(MXLVL),TP(MXLVL),DP(MXLVL),UP(MXLVL),VP(MXLVL), + $ HP(MXLVL),XP(MXLVL),YP(MXLVL) REAL(8) BMISS,obs8_8,alon_8,alat_8 COMMON/STRCTY/ICAT(MXLVL) COMMON/STRMOB/MOBS(MXTYPV,MXWRDL,MXLVL) From efc1f381f754a91f7b380f83b1debecfe488e3dc Mon Sep 17 00:00:00 2001 From: Iliana Genkova Date: Wed, 21 Dec 2022 21:45:59 +0000 Subject: [PATCH 27/78] Remove old versions/README, update VERSION --- versions/README | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 versions/README diff --git a/versions/README b/versions/README deleted file mode 100644 index f863bd6..0000000 --- a/versions/README +++ /dev/null @@ -1,2 +0,0 @@ -Original (/develop) run.ver was overwritten with Nick's expanded version of it. - From af506cdf9c7cb38cff02c28f6d7a5caf4beb3cd1 Mon Sep 17 00:00:00 2001 From: "Nicholas.Esposito" Date: Mon, 26 Dec 2022 23:32:54 +0000 Subject: [PATCH 28/78] idk --- sorc/prepobs_prepdata.fd/iw3unpbf.f | 40 +++++++--- sorc/prepobs_prepdata.fd/prepdata.f | 116 ++++++++++++++++++++++------ 2 files changed, 122 insertions(+), 34 deletions(-) diff --git a/sorc/prepobs_prepdata.fd/iw3unpbf.f b/sorc/prepobs_prepdata.fd/iw3unpbf.f index 71a3f59..a79bd68 100644 --- a/sorc/prepobs_prepdata.fd/iw3unpbf.f +++ b/sorc/prepobs_prepdata.fd/iw3unpbf.f @@ -2169,6 +2169,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C ----------------------------------------------------------------- 1 KCAT = 0 + PRINT *, "NICKE NUMCAT IS: ", NUMCAT DO I = 1,NUMCAT IF(ICAT.EQ.IKAT(I)) THEN KCAT = I @@ -2202,9 +2203,13 @@ SUBROUTINE S02UBF(ICAT,N,*) C ----------------------------------------------------------------- IF(N.EQ.0) THEN - PRINT *, "ICAT IS: ", ICAT - IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) RETURN + PRINT *, "NICKE ICAT IS: ", ICAT + IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) THEN + PRINT *, "NICKE 1 or 10" + RETURN + END IF NCAT(KCAT) = MIN(LEVLIM-1,NCAT(KCAT)+1) + PRINT *, "NICKE NCAT is ", NCAT if(iprint.eq.1) then print'(" To prepare for sfc. data, write all missings on ", $ "lvl ",I0," for cat ",i0)', ncat(kcat),icat @@ -2228,6 +2233,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C ------------------------------------------------------------ IF(ICAT.EQ.1) THEN + PRINT *, "NICKE ICAT=1 FIGURE OUT WHICH LEVEL TO UPDATE" L = I04UBF(POB(N)*.1) C MANDATORY LEVEL WITH NON-MANDATORY PRESSURE RETURNS A 999 @@ -2245,6 +2251,7 @@ SUBROUTINE S02UBF(ICAT,N,*) $ ", - total no. cat. 1 lvls processed so far = ",I0)', $ L,icat,ncat(kcat) ELSEIF(SURF) THEN + PRINT *, "NICKE SURF" L = 1 NCAT(KCAT) = MAX(NCAT(KCAT),1) if(iprint.eq.1) @@ -2252,6 +2259,7 @@ SUBROUTINE S02UBF(ICAT,N,*) $ ", - total no. cat. ",I0," lvls processed so far = ",I0)', $ icat,L,icat,ncat(kcat) ELSE + PRINT *, "NICKE ELSE " L = MIN(LEVLIM-1,NCAT(KCAT)+1) IF(L.EQ.LEVLIM-1) THEN print'(" ~~IW3UNPBF/S02UBF: ID ",A," - This cat. ",I0, @@ -2270,7 +2278,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C ---------------------------------------------------------- IF((ICAT.EQ.1).OR.(ICAT.EQ.10)) THEN - PRINT *, "ICAT 2 is: ", ICAT + PRINT *, "NICKE ICAT 2 is 1 or 10:", ICAT RCAT(1) = MIN(NINT(POB(N)),NINT(RCATS( 1,L,KCAT))) RCAT(2) = MIN(NINT(ZOB(N)),NINT(RCATS( 2,L,KCAT))) RCAT(3) = MIN(NINT(TOB(N)),NINT(RCATS( 3,L,KCAT))) @@ -2302,11 +2310,14 @@ SUBROUTINE S02UBF(ICAT,N,*) ELSE RCAT(11) = NINT(WQM(N)) END IF - RCAT(12) = MIN(NINT(HRDR(N)),NINT(RCATS(12,L,KCAT))) - RCAT(13) = MIN(NINT(XDR(N)),NINT(RCATS(13,L,KCAT))) - RCAT(14) = MIN(NINT(YDR(N)),NINT(RCATS(14,L,KCAT))) - PRINT *, "RCAT1 121314; ",RCAT(1),RCAT(12),RCAT(13),RCAT(14) + IF(ICAT.EQ.10) THEN + RCAT(12) = MIN(NINT(HRDR(N)),NINT(RCATS(12,L,KCAT))) + RCAT(13) = MIN(NINT(XDR(N)),NINT(RCATS(13,L,KCAT))) + RCAT(14) = MIN(NINT(YDR(N)),NINT(RCATS(14,L,KCAT))) + PRINT *, "RCAT1 121314; ",RCAT(1),RCAT(12),RCAT(13),RCAT(14) + END IF ELSEIF(ICAT.EQ.2) THEN + PRINT *, "NICKE ICAT IS 2" RCAT(1) = MIN(NINT(POB(N)),IMISS) RCAT(2) = MIN(NINT(TOB(N)),IMISS) RCAT(3) = MIN(NINT(QOB(N)),IMISS) @@ -2315,6 +2326,7 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(6) = NINT(QQM(N)) RCAT(7) = NINT(XIND(N)) ELSEIF(ICAT.EQ.3) THEN + PRINT *, "NICKE ICAT IS 3" RCAT(1) = MIN(NINT(POB(N)),IMISS) RCAT(2) = MIN(NINT(DOB(N)),IMISS) RCAT(3) = MIN(NINT(SOB(N)),IMISS) @@ -2329,12 +2341,14 @@ SUBROUTINE S02UBF(ICAT,N,*) END IF RCAT(6) = NINT(XIND(N)) ELSEIF(ICAT.EQ.4) THEN + PRINT *, "NICKE ICAT IS 4" RCAT(1) = MIN(NINT(ZOB(N)),IMISS) RCAT(2) = MIN(NINT(DOB(N)),IMISS) RCAT(3) = MIN(NINT(SOB(N)),IMISS) RCAT(4) = NINT(ZQM(N)) RCAT(5) = NINT(WQM(N)) ELSEIF(ICAT.EQ.5) THEN + PRINT *, "NICKE ICAT IS 5" RCAT(1) = MIN(NINT(POB(N)),IMISS) RCAT(2) = MIN(NINT(TOB(N)),IMISS) RCAT(3) = MIN(NINT(QOB(N)),IMISS) @@ -2345,6 +2359,7 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(8) = NINT(QQM(N)) RCAT(9) = NINT(WQM(N)) ELSEIF(ICAT.EQ.6) THEN + PRINT *, "NICKE ICAT IS 6" RCAT(1) = MIN(NINT(POB(N)),IMISS) RCAT(2) = MIN(NINT(ZOB(N)),IMISS) RCAT(3) = MIN(NINT(TOB(N)),IMISS) @@ -2357,6 +2372,7 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(10) = NINT(QQM(N)) RCAT(11) = NINT(WQM(N)) ELSEIF(ICAT.EQ.8) THEN + PRINT *, "NICKE ICAT IS 8" RCAT(1) = MIN(OB8(N),XMISS) C Allow report sequence number (code fig. 21) to be as large as 999990 IF(NINT(CF8(N)).EQ.21) RCAT(1) = MIN(OB8(N),XMISS*10.) @@ -2364,6 +2380,7 @@ SUBROUTINE S02UBF(ICAT,N,*) RCAT(3) = MIN(Q81(N),XMISS) RCAT(4) = NINT(Q82(N)) ELSEIF(ICAT.EQ.51) THEN + PRINT *, "NICKE ICAT IS 51" RCAT( 1) = MIN(NINT(PSL),IMISS) RCAT( 2) = MIN(NINT(STP),IMISS) RCAT( 3) = MIN(NINT(SDR),IMISS) @@ -2391,7 +2408,7 @@ SUBROUTINE S02UBF(ICAT,N,*) C ------------------------------------------------------- RCATS(1:MCAT(KCAT),L,KCAT) = RCAT(1:MCAT(KCAT)) - + RETURN END C*********************************************************************** @@ -3459,9 +3476,10 @@ FUNCTION R03UBF(LUNIT,OBS,OBS2,OBS3,NOBS3,obs8_8) ELSE IF(NINT(DOB(L)).EQ.360.AND.NINT(SOB(L)).EQ.0) THEN DOB(L) = 0 END IF - HRDR(L) = MIN(BMISS,ARR(8,L)) - XDR(L) = MIN(BMISS,ARR(9,L)*100000) - YDR(L) = MIN(BMISS,ARR(10,L)*100000) + HRDR(L) = BMISS + IF(ARR(8,L).LT.BMISS) HRDR(L) = ARR(8,L) + IF(ARR(9,L).LT.BMISS) XDR(L) = (ARR(9,L)*100000) + IF(ARR(10,L).LT.BMISS) YDR(L) = (ARR(10,L)*100000) if(iprint.eq.1) then print'(" At lvl=",I0,"; VSG=",G0,"; POB = ",G0,"; QOB = ", $ G0,"; TOB = ",G0,"; ZOB = ",G0,"; DOB = ",G0,"; SOB = ", diff --git a/sorc/prepobs_prepdata.fd/prepdata.f b/sorc/prepobs_prepdata.fd/prepdata.f index 49d1be6..bb4a309 100644 --- a/sorc/prepobs_prepdata.fd/prepdata.f +++ b/sorc/prepobs_prepdata.fd/prepdata.f @@ -2879,8 +2879,10 @@ PROGRAM PREPOBS_PREPDATA C IN THE DAT AND TMP ARRAYS (UPPER-AIR DATA) C PARAMETER NAME "NUMQMS" THROUGHOUT PGM SETS NO. OF OBS. PREPBUFR TBL C VALUES IN THE IQ (EQUIV. TO DAT) & JQ (EQUIV. TO TMP) ARRAYS (U-AIR) - PARAMETER (NUMVAR = 6, NUMQMS = 5) +C PARAMETER (NUMVAR = 6, NUMQMS = 5, NUMGPS = 3) + PARAMETER (NUMVAR = 9, NUMQMS = 5) C PARAMETER NAME "NUMDAT" THROUGHOUT PGM SETS SIZE OF DAT AND TMP ARRAYS +C PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS) + NUMGPS) PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS)) C PARAMETER NAME "NUMTYP" THROUGHOUT PGM SETS NO. OF POSSIBLE MASS @@ -6091,8 +6093,10 @@ FUNCTION ISEL(ID) SUBROUTINE GETUPA(*,*) PARAMETER (MXWRDH = 15) PARAMETER (MXLVL = 600) - PARAMETER (NUMVAR = 6, NUMQMS = 5, NUMGPS = 3) - PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS) + NUMGPS) +C PARAMETER (NUMVAR = 6, NUMQMS = 5, NUMGPS = 3) + PARAMETER (NUMVAR = 9, NUMQMS = 5) +C PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS) + NUMGPS) + PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS)) PARAMETER (MAXOBS = 3500) CHARACTER*5 CTYPE CHARACTER*8 STNPRT,STNID,SUBSET_d @@ -6114,7 +6118,8 @@ SUBROUTINE GETUPA(*,*) COMMON/RUNSW/IRNMRK C DATA AT PRESSURE LEVELS (MESHED SOUNDING) EQUIVALENCE (RDATA,IDATA),(DAT(1,NUMVAR+1),IQ) - EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+NUMGPS+1),IR) +C EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+1+NUMGPS),IR) + EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+1),IR) DATA XMISS/99999./,YMISS/99998.8/,IMISS/99999/ DATA PS/1000.,975.,950.,925.,900.,875.,850.,825.,800.,775., $ 750.,725.,700.,675.,650.,625.,600.,575.,550.,525., @@ -6189,18 +6194,32 @@ SUBROUTINE GETUPA(*,*) NM = 0 NN = IDATA(13) II = IDATA(14) - 11 +C II = IDATA(14) - 14 NN = MIN(NN,LEVPM) -C PRINT *, 'nn=idata13,idata14,ii=idata14,nn',IDATA(13),IDATA(14),II,NN + PRINT *, "NICKE i13 i14-11=ii NN", IDATA(13),IDATA(14),II,NN IZBEST = 99 IF(NN.LE.0) GO TO 11 DO N = 1,NN II = II + 11 +C II = II + 14 C GET PREPBUFR TABLE VALUES FOR PRESSURE, HGHT, TEMP., MOISTURE, & WIND IPM = NINT(RDATA(II+ 6)) IZM = NINT(RDATA(II+ 7)) ITM = NINT(RDATA(II+ 8)) IQM = NINT(RDATA(II+ 9)) IVM = NINT(RDATA(II+10)) + PRINT *, "NICKE ADPUPA1:",RDATA(II+1),RDATA(II+2),RDATA(II+3) + PRINT *, "NICKE ADPUPA2:",RDATA(II+4),RDATA(II+5),RDATA(II+6) + PRINT *, "NICKE ADPUPA3:",RDATA(II+7),RDATA(II+8),RDATA(II+9) + PRINT *, "NICKE ADPUPA4:",IPM,IZM,ITM,IQM,IVM + PRINT *, "NICKE ADPUPA5:",RDATA(II+10),RDATA(II+11) + PRINT *, "NICKE ADPUPA6:",RDATA(II+12),RDATA(II+13) + PRINT *, "NICKE ADPUPA7:",RDATA(II+14),RDATA(II+15) + PRINT *, "NICKE ADPUPA8:",RDATA(II+16),RDATA(II+17) + PRINT *, "NICKE ADPUPA9:",RDATA(II+18),RDATA(II+19) + PRINT *, "NICKE ADPUPA10:",RDATA(II+20),RDATA(II+21) + PRINT *, "NICKE ADPUPA11:",RDATA(II+22),RDATA(II+23) + PRINT *, "NICKE ADPUPA12:",RDATA(II+24),RDATA(II+25) IBTEST = 0 IF(IZM.GT.3) IBTEST = 1 IBLIZ1 = MIN(IBLIZ1,IBTEST) @@ -6239,6 +6258,15 @@ SUBROUTINE GETUPA(*,*) DAT(NL,6) = NINT(RDATA(II+5)) * 0.1 IQ(NL,4) = IVM END IF +C IF(RDATA(II+12).LT.YMISS) THEN +C DAT(NL,12) = NINT(RDATA(II+12)) +C END IF +C IF(RDATA(II+13).LT.YMISS) THEN +C DAT(NL,13) = (NINT(RDATA(II+13))/100000.) +C END IF +C IF(RDATA(II+14).LT.YMISS) THEN +C DAT(NL,14) = (NINT(RDATA(II+14))/100000.) +C END IF ENDDO 11 CONTINUE NM = NL @@ -6417,12 +6445,15 @@ SUBROUTINE GETUPA(*,*) C NB IS NO. OF BUFR DATA LEVELS (CAT. 10) ACTUALLY COLLECTED NB = 0 NN = IDATA(31) - II = IDATA(32) - 11 +C II = IDATA(32) - 11 + II = IDATA(32) - 14 C x NN = MIN(NN,LEVPM) IZBEST = 99 IF(NN.LE.0) GO TO 5695 DO N = 1,NN - II = II + 11 + PRINT *, "NICKE PRE", RDATA(II+12),RDATA(II+13),RDATA(II+14) +C II = II + 11 + II = II + 14 C GET PREPBUFR TABLE VALUES FOR PRESSURE, HGHT, TEMP., MOISTURE, & WIND IPM = NINT(RDATA(II+ 6)) IZM = NINT(RDATA(II+ 7)) @@ -6476,16 +6507,32 @@ SUBROUTINE GETUPA(*,*) DAT(NL,6) = NINT(RDATA(II+5)) * 0.1 IQ(NL,4) = IVM END IF - IF(RDATA(II+12).LT.YMISS) THEN - DAT(NL,12) = NINT(RDATA(II+12)) + IF(RDATA(II+12).LT.BMISS) THEN + DAT(NL,12) = RDATA(II+12) END IF - IF(RDATA(II+13).LT.YMISS) THEN - DAT(NL,13) = (NINT(RDATA(II+13))/100000.) + IF(RDATA(II+13).LT.BMISS) THEN + DAT(NL,13) = (NINT(RDATA(II+13))*0.00001) END IF - IF(RDATA(II+14).LT.YMISS) THEN - DAT(NL,14) = (NINT(RDATA(II+14))/100000.) + IF(RDATA(II+14).LT.BMISS) THEN + DAT(NL,14) = (NINT(RDATA(II+14))*0.00001) END IF - PRINT *, "NICKE NEW RDATA",DAT(NL,12),DAT(NL,13),DAT(NL,14) + PRINT *, "NICKE NEWRDATA1a", DAT(NL,1),DAT(NL,2),DAT(NL,3) + PRINT *, "NICKENEWRDATA",RDATA(II),RDATA(II+1),RDATA(II+2) + PRINT *, "NICKE NEWRDATA2a", DAT(NL,4),DAT(NL,5),DAT(NL,6) + PRINT *, "NICKENEWRDATA",RDATA(II+3),RDATA(II+4),RDATA(II+5) + PRINT *, "NICKE NEWRDATA3a", DAT(NL,7),DAT(NL,8),DAT(NL,9) + PRINT *, "NICKENEWRDATA",RDATA(II+6),RDATA(II+7),RDATA(II+8) + PRINT *, "NICKE NEWRDATA4a", DAT(NL,10),DAT(NL,11),DAT(NL,12) + PRINT *, "NICKENEWRDATA",RDATA(II+9),RDATA(II+10),RDATA(II+11) + PRINT *, "NICKE NEWRDATA5a", DAT(NL,13),DAT(NL,14),DAT(NL,15) + PRINT *, "NICKENEWRDATA",RDATA(II+12),RDATA(II+13),RDATA(II+14) + PRINT *, "NICKE NEWRDATA6a", DAT(NL,16),DAT(NL,17),DAT(NL,18) + PRINT *, "NICKENEWRDATA",RDATA(II+15),RDATA(II+16),RDATA(II+17) + PRINT *, "NICKE NEWRDATA7a", DAT(NL,19),DAT(NL,20),DAT(NL,21) + PRINT *, "NICKENEWRDATA",RDATA(II+18),RDATA(II+19),RDATA(II+20) + + + PRINT *, "NICKE NEW BLOCK" ENDDO C RESET IDATA(31) TO NUMBER OF 'GOOD' CAT. 10 LEVELS ACTUALLY PROCESSED IDATA(31) = NB @@ -7103,8 +7150,10 @@ SUBROUTINE UV(DD,FF,U,V) SUBROUTINE SMERGE(NM,NSIG,N5,NB,NP,NH,N15,NLEV,IPRT,STOP) PARAMETER (MXWRDH = 15) PARAMETER (MXLVL = 600) - PARAMETER (NUMVAR = 6, NUMQMS = 5) +C PARAMETER (NUMVAR = 6, NUMQMS = 5, NUMGPS = 3) + PARAMETER (NUMVAR = 9, NUMQMS = 5) PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS)) +C PARAMETER (NUMDAT = NUMVAR + (2 * NUMQMS) + NUMGPS) PARAMETER (MAXOBS = 3500) DIMENSION TMP(MXLVL,NUMDAT),VTMP(MXLVL),IWORK(MXLVL), $ DATINV(NUMDAT,MXLVL) @@ -7115,7 +7164,7 @@ SUBROUTINE SMERGE(NM,NSIG,N5,NB,NP,NH,N15,NLEV,IPRT,STOP) $ JQ(MXLVL,NUMQMS),IPRT(2),IC(0:16),IR(MXLVL,NUMQMS), $ JR(MXLVL,NUMQMS) REAL PLIMIT(4),PRS(3) - real(8) alon_8,alat_8 + real(8) BMISS,alon_8,alat_8 COMMON/WORD/LWI,LWR COMMON/RPTHDR/SUBSET_d,STNID,HDR(2:MXWRDH),alon_8,alat_8 COMMON/ADP/ISATOB,PMAND(23),RDATA(MAXOBS),IPRINT @@ -7124,7 +7173,8 @@ SUBROUTINE SMERGE(NM,NSIG,N5,NB,NP,NH,N15,NLEV,IPRT,STOP) COMMON/PARM5/FILLZ,FILLT,FILLW,FILLM,LSWIND,LSMASS,CWINDO,NPZ COMMON/PARM6/MODPRT,IFLUA,STNPRT(3) EQUIVALENCE(DAT(1,NUMVAR+1),IQ),(TMP(1,NUMVAR+1),JQ),(RDATA,IDATA) - EQUIVALENCE(DAT(1,NUMVAR+NUMQMS+1),IR),(TMP(1,NUMVAR+NUMQMS+1),JR) +C EQUIVALENCE(DAT(1,NUMVAR+NUMQMS+1+NUMGPS),IR) + EQUIVALENCE(DAT(1,NUMVAR+NUMQMS+1),IR) DATA XMISS/99999./,YMISS/99998.8/,PLIMIT/200.,100.,50.,150./, $ PRS/700.,600.,250./, C PREPBUFR TABLE VALUE INTERPRETED AS: 0 - KEEP, 1 - GOOD, 2- DEFAULT, @@ -9799,7 +9849,7 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) $ (DAT(1,12),HP),(DAT(1,13),XP),(DAT(1,14),YP), $ (IDATA,RDATA) DATA XMISS/99999./,YMISS/99998.8/,IMISS/99999/ - EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+NUMGPS+1),IR) + EQUIVALENCE (DAT(1,NUMVAR+NUMQMS+1+NUMGPS),IR) C FCNS BELOW CONVERT TEMP/TD (K) & PRESS (MB) INTO SAT./ SPEC. HUM.(G/G) ES(T) = 6.1078 * EXP((17.269 * (T - 273.16))/((T - 273.16)+237.3)) QFRMTP(T,P) = (0.622 * ES(T))/(P - (0.378 * ES(T))) @@ -9810,6 +9860,7 @@ SUBROUTINE STOROB(NLEV,PSTA,INDIAN,IPRT,*) PRINT'(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")' PRINT'(1X)' END IF + PRINT *, "NICKE STOROB NUMDAT NUMVAR", NUMDAT, NUMVAR LL_MASS=0 LL_WIND=0 IF(NFILE.EQ.IUNIT(5).OR.NFILE.EQ.IUNIT(5)+7) @@ -10303,24 +10354,26 @@ SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) INTEGER IQ(MXLVL,NUMQMS),IDATA(MAXOBS),IPRT(2) REAL PP(MXLVL),ZP(MXLVL),TP(MXLVL),DP(MXLVL),UP(MXLVL),VP(MXLVL), $ XP(MXLVL),YP(MXLVL),HP(MXLVL) - real(8) alon_8,alat_8 + real(8) BMISS,alon_8,alat_8 COMMON/ADP/ISATOB,PMAND(23),RDATA(MAXOBS),IPRINT COMMON/SNDATA/DAT(MXLVL,NUMDAT) COMMON/RPTHDR/SUBSET_d,STNID,HDR(2:MXWRDH),alon_8,alat_8 COMMON/DRIFT/DFTLON(MXLVL),DFTLAT(MXLVL),DFTTIM(MXLVL) COMMON/LAUNCH/ALNCH + COMMON /BUFRLIB_MISSING/BMISS COMMON/SBDRIFT/ZDRIFT(MXLVL),TDRIFT(MXLVL),TDRIFTLL(MXLVL), $ UDRIFT(MXLVL),VDRIFT(MXLVL),XDRIFT(MXLVL),YDRIFT(MXLVL), $ TDRIFT_LL(MXLVL),KFLAG(5),LFLAG(3),PLO,IFLTIM,JJ,II EQUIVALENCE (DAT,PP),(DAT(1,2),ZP),(DAT(1,3),TP),(DAT(1,4),DP), - $ (DAT(1,5),UP),(DAT(1,6),VP),(DAT(1,NUMVAR+1),IQ),(DAT(1,12),XP), - $ (DAT(1,13),YP),(DAT(1,14),HP), + $ (DAT(1,5),UP),(DAT(1,6),VP),(DAT(1,NUMVAR+1),IQ),(DAT(1,12),HP), + $ (DAT(1,13),XP),(DAT(1,14),YP), $ (IDATA,RDATA) DATA XMISS/99999./,YMISS/99998.8/ DATA PI/3.141592654/ DATA ASCRT/5.0/ ! ASCENT RATE (IN M/SEC) DATA CON/8.9929E-06/ ! 180.0/(PI*RADIUS OF EARTH) (RADIUS IN M + PRINT *," NICKE NUMVAR, NUMDAT", NUMDAT, NUMDAR IF(LL.EQ.2) THEN C COME HERE FOR FIRST LEVEL OF A NEW REPORT "PIECE" {LL = 1 IS A META- C DATA LEVEL IDENTIFYING SURFACE PRESSURE (HOLDS ONLY PSFC*10)} @@ -10363,8 +10416,9 @@ SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) C NICK E PROB GOES HERE - PRINT *, "NICKE pb trial" - PRINT *, XP(I), YP(I), HP(I) + PRINT *, "NICKE pb trial i", XP(I),YP(I),HP(I) + PRINT *, "NICKE pb trial ii", XP(II),YP(II),HP(II) + PRINT *, "NICKE pb trial ll", XP(LL),YP(LL),HP(LL) C----------------------------------------------------------------------- C BALLOON DRIFT TIME CALCULATION @@ -10391,9 +10445,16 @@ SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) $ "proceed w/ drift time calc.")', I,PP(I) JJ = JJ + 1 ZDRIFT(JJ) = ZP(I) + PRINT *, "NICKE HP i ii ll is ", HP(I),HP(II),HP(LL) IF(JJ.GT.1) THEN + IF(HP(LL).LT.BMISS) THEN + TDRIFT(JJ)=HP(LL) + PRINT *, "NICKE TDRIFT USED A - tdr is: ", TDRIFT(JJ) + ELSE TDRIFT(JJ) = TDRIFT(JJ-1) + $ (ZDRIFT(JJ) - ZDRIFT(JJ-1))/ASCRT + PRINT *, "NICKE TDRIFT USED B" + ENDIF IF(IFLTIM.EQ.1) THEN C .. ONE OR MORE BALLOON TIME CALCULATION TESTS HAVE FAILED ON SOME C PREVIOUS LEVEL - REVERT THIS LEVEL (AND LATER ALL ABOVE) TO @@ -10525,6 +10586,13 @@ SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) VDRIFT(II) = VP(I) TDRIFT_LL(II) = TDRIFTLL(LL) IF(II.GT.1) THEN + PRINT *, "NICKE XP i ii ll: ", XP(I), XP(II), XP(LL) + PRINT *, "NICKE YP i ii ll: ", YP(I), YP(II), YP(LL) + IF ((XP(LL).LT.BMISS).AND.(YP(LL).LT.BMISS)) THEN + XDRIFT(II) = XP(LL) + YDRIFT(II) = YP(LL) + PRINT *, "NICKE XYDRIFT USED C: ", XDRIFT(II),YDRIFT(II) + ELSE XDRIFT(II) = XDRIFT(II-1) + $ (0.5 * (UDRIFT(II-1) + UDRIFT(II)) * $ (TDRIFT_LL(II) - TDRIFT_LL(II-1)) @@ -10532,6 +10600,8 @@ SUBROUTINE BALLOON_DRIFT(IPRT,I,PSTA,LL) YDRIFT(II) = YDRIFT(II-1) + $ (0.5 * (VDRIFT(II-1) + VDRIFT(II)) * $ (TDRIFT_LL(II) - TDRIFT_LL(II-1)) * CON) + PRINT *, "NICKE XYDRIFT USED D" + END IF IF(IFLTIM.EQ.1) THEN C .. A PROBLEM IN THE BALLOON DRIFT TIME CALCULATION (ABOVE) MEANS THE C BALLOON DRIFT LAT/LON IS ALSO SUSPECT - REVERT THIS LEVEL (AND From e6258c94dfbef98e995c61af89228cf583780031 Mon Sep 17 00:00:00 2001 From: Iliana Genkova Date: Tue, 27 Dec 2022 19:51:00 +0000 Subject: [PATCH 29/78] fxi versoin --- install/exec/gdascounts_ave | Bin 0 -> 1007016 bytes install/exec/global_postevents | Bin 0 -> 4350168 bytes install/exec/prepobs_cqcbufr | Bin 0 -> 2763728 bytes install/exec/prepobs_cqcvad | Bin 0 -> 3893560 bytes install/exec/prepobs_glerladj | Bin 0 -> 1852584 bytes install/exec/prepobs_listheaders | Bin 0 -> 1412504 bytes install/exec/prepobs_monoprepbufr | Bin 0 -> 1558136 bytes install/exec/prepobs_mpcopybufr | Bin 0 -> 1551832 bytes install/exec/prepobs_oiqcbufr | Bin 0 -> 2055296 bytes install/exec/prepobs_prepacpf | Bin 0 -> 1735216 bytes install/exec/prepobs_prepacqc | Bin 0 -> 4189504 bytes install/exec/prepobs_prepdata | Bin 0 -> 5718864 bytes install/exec/prepobs_prevents | Bin 0 -> 4522304 bytes install/exec/prepobs_profcqc | Bin 0 -> 2081456 bytes install/exec/syndat_syndata | Bin 0 -> 6094352 bytes install/exec/timetwin | Bin 0 -> 1591456 bytes install/fix/gdascounts_avg.awk | 13 + install/fix/gdascounts_base.shtml | 41 + install/fix/gdascounts_html | 519 ++ install/fix/gdascounts_types | 45 + install/fix/glerldict.lmd | 1319 ++++ install/fix/prepobs_cqc_statbge | 112 + install/fix/prepobs_errtable.cdas | 6800 +++++++++++++++++ install/fix/prepobs_errtable.nam | 6800 +++++++++++++++++ install/fix/prepobs_landc | Bin 0 -> 285020 bytes install/fix/prepobs_oiqc.oberrs | 252 + install/fix/prepobs_oiqc.oberrs.cdas | 219 + install/fix/prepobs_prep.bufrtable | 1107 +++ install/fix/satellite_counts.tbl | 14 + .../fix/syndat_syndata.slmask.t126.gaussian | Bin 0 -> 291848 bytes install/fix/syndat_weight | 24 + install/modulefiles/prepobs/1.0.0.lua | 22 + install/modulefiles/prepobs/1.0.1.lua | 22 + install/scripts/exprep_post.sh | 556 ++ install/ush/build_mainpage.sh | 121 + install/ush/gdas_counts.sh | 72 + install/ush/gdas_countstat.sh | 133 + install/ush/gdas_summary.sh | 227 + install/ush/gdascounts_combine.sh | 188 + install/ush/getges.sh | 1408 ++++ install/ush/getges_driver.sh | 366 + install/ush/getges_nc.sh | 1424 ++++ install/ush/getges_sig.sh | 3001 ++++++++ install/ush/global_postevents.sh | 138 + install/ush/mstr_shp_stn_lst_update.sh | 173 + install/ush/mstr_shp_stn_lst_update2.sh | 214 + install/ush/prepobs_cqcbufr.sh | 127 + install/ush/prepobs_cqcvad.sh | 101 + install/ush/prepobs_glerladj.sh | 182 + install/ush/prepobs_makeprepbufr.sh | 2652 +++++++ install/ush/prepobs_oiqcbufr.sh | 147 + install/ush/prepobs_prepacqc.sh | 211 + install/ush/prepobs_prevents.sh | 118 + install/ush/prepobs_profcqc.sh | 97 + install/ush/prepobs_syndata.sh | 205 + install/ush/satellite_daily.pl | 143 + install/ush/satellite_html.pl | 330 + install/ush/satellite_summary.sh | 92 + versions/VERSION | 2 +- 59 files changed, 29736 insertions(+), 1 deletion(-) create mode 100755 install/exec/gdascounts_ave create mode 100755 install/exec/global_postevents create mode 100755 install/exec/prepobs_cqcbufr create mode 100755 install/exec/prepobs_cqcvad create mode 100755 install/exec/prepobs_glerladj create mode 100755 install/exec/prepobs_listheaders create mode 100755 install/exec/prepobs_monoprepbufr create mode 100755 install/exec/prepobs_mpcopybufr create mode 100755 install/exec/prepobs_oiqcbufr create mode 100755 install/exec/prepobs_prepacpf create mode 100755 install/exec/prepobs_prepacqc create mode 100755 install/exec/prepobs_prepdata create mode 100755 install/exec/prepobs_prevents create mode 100755 install/exec/prepobs_profcqc create mode 100755 install/exec/syndat_syndata create mode 100755 install/exec/timetwin create mode 100644 install/fix/gdascounts_avg.awk create mode 100644 install/fix/gdascounts_base.shtml create mode 100644 install/fix/gdascounts_html create mode 100644 install/fix/gdascounts_types create mode 100644 install/fix/glerldict.lmd create mode 100644 install/fix/prepobs_cqc_statbge create mode 100644 install/fix/prepobs_errtable.cdas create mode 100644 install/fix/prepobs_errtable.nam create mode 100644 install/fix/prepobs_landc create mode 100644 install/fix/prepobs_oiqc.oberrs create mode 100644 install/fix/prepobs_oiqc.oberrs.cdas create mode 100644 install/fix/prepobs_prep.bufrtable create mode 100644 install/fix/satellite_counts.tbl create mode 100644 install/fix/syndat_syndata.slmask.t126.gaussian create mode 100644 install/fix/syndat_weight create mode 100644 install/modulefiles/prepobs/1.0.0.lua create mode 100644 install/modulefiles/prepobs/1.0.1.lua create mode 100755 install/scripts/exprep_post.sh create mode 100755 install/ush/build_mainpage.sh create mode 100755 install/ush/gdas_counts.sh create mode 100755 install/ush/gdas_countstat.sh create mode 100755 install/ush/gdas_summary.sh create mode 100755 install/ush/gdascounts_combine.sh create mode 100755 install/ush/getges.sh create mode 100755 install/ush/getges_driver.sh create mode 100755 install/ush/getges_nc.sh create mode 100755 install/ush/getges_sig.sh create mode 100755 install/ush/global_postevents.sh create mode 100755 install/ush/mstr_shp_stn_lst_update.sh create mode 100755 install/ush/mstr_shp_stn_lst_update2.sh create mode 100755 install/ush/prepobs_cqcbufr.sh create mode 100755 install/ush/prepobs_cqcvad.sh create mode 100755 install/ush/prepobs_glerladj.sh create mode 100755 install/ush/prepobs_makeprepbufr.sh create mode 100755 install/ush/prepobs_oiqcbufr.sh create mode 100755 install/ush/prepobs_prepacqc.sh create mode 100755 install/ush/prepobs_prevents.sh create mode 100755 install/ush/prepobs_profcqc.sh create mode 100755 install/ush/prepobs_syndata.sh create mode 100755 install/ush/satellite_daily.pl create mode 100755 install/ush/satellite_html.pl create mode 100755 install/ush/satellite_summary.sh diff --git a/install/exec/gdascounts_ave b/install/exec/gdascounts_ave new file mode 100755 index 0000000000000000000000000000000000000000..64deaf025a20bef4094f2dfb230fb9c1ed98934a GIT binary patch literal 1007016 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 z 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 z z(7EF}rxLe<9ufTxacG6}Eo@0E#;((+V-8Z5ME4fFA|lc=GNBJ(A8>EM6HN$}3$IhRYSv+4%*%`;ll5wrJj$5G_}Vx~g*~n#AvsvP zNj#aEZQkTfZ8$$>AaygljG7W$l8lUb7N=%nm00Lxq%v>3=+4;Rc+r!??RXc?MCw#;iJ&+srh{wa!XcOX^=~5h*q(5Z2H3&p>W}r~ARR-s z=j$=bKlgm>?*shu>2)>*(g+)kcC%@ptkK>HqAw$uIp)m?2!zZ^9(rB7@JC*)GS#I{ zx`SeH>|VHC44*+7ttAK0Df2uM2`P`*aY!gLhNt?c5H(!mgZh{+9{zZSJx3^`;A%KU zWY)=$%!$4X$+Np7qgl^aDZt5%Ezwe$sZT zBhTn_^7>qP%UDQ86`%M?JNP}1pHyG?nbT7i)JCNVAvNCI0uNBb>QgKql!Mw3)5RrI zKZWqfC?f2XKzzkghsF+aPTo3#*`h0?MNpddn@$ffg3^~4ez=88aZN%{ibdrcj-d2Q zzlJGp)BdBmu){b?FBL~AEbUX?;j{#=sT=-F0ma$iprxgE=0|~$Nkb{baeY*!4TJ@U z2tYhbhJY4Ol^!U5oyQ4P6l!g+dDTC|=(vJEz@%w6L6Zb8>7nV@AoQ6w(h>1^%~N4W zEw=JU@J)-32jaf@q3w8Tsg;;(#_ibYhp{?-=>$@?6*g zymi8kn16K82pI$2IqBAO_(wq;7vdk4`}p@92`RqkLAq4Dqlb$NjCb@z@$UY-qd$gs zlxd>)JtH1HRQ#_o@#t$tJi5ME-k*4M>UOfrxy~bd?Wk@Xe0wR|ks63c2V>)NgO){s zBD0o~s8oQfc-V+X+c25Ht{S-mHclcQopPHQHw}r2M>`?y*^Zgk-+a~)k7D9f`2_rE z&cdnckDP_muh098ESwHpg5+U*;gLJa#uuvZFbk*WV+$v=hqSIHc3C(ThsM;S4JjW=88FXUPjVDkNe>Y>&8#Qk_|-o0nF0Sm z2mD*^&W+(BUw5)U-Ddn7u#Nu4E2`G3-yX*3g=O{@*hW_w+i0WmE56ZDveAOb>Jjgi zYoQ+a9S9S?(erw3^o6c$Q+KKN$Bz@P>EzIc=}jkxHPrKbEzbu%HjJxRx%${+A8$JO z+YKM%_OI>MYdSf6+D#`~2R2-fxS;b|T@7wpF+ejyPm3io?Jse^imv_)Bj3k?zoRg= zA`GgI!j)88b#yTwOxxA8Vxaq=bG7c*#5XNx``h%-|HCf--yr{A@5}#Vk1FrqRo=h+ zACvdLw!9y^QA|sNzi^#p_h4Ukw<^2alf0j^KAgwzIt<`Y>;21?u~F$?sX^$Xx9KOn z1+7WdlWec<%J#hN4WIswH~i7Jyx|Y8^M+4u^@cz2Q*Zcvf8!1J|I8a+^Av-umU_Go z5%8!J;U?4nEv4T+E9fzPeWCWcB@DEplb<~o@EVJ{d@$awHu87F1b%uh(G@fk2Iv7 zIre2H+s^R7Q*Sr&2oA)Ol14n#uoz|wfyC^(+|BE46V`g*D!+Vd*OH-xfSZWVIQWZE zWghxJQY`bUoE#CLO6vD|uZ(yw8~uJ))9F(0Pad@JyT(P857z1Mq$vYxy;r_706?iA zby4lzJr?dN!byIMQcw@iok_>#buqBa-E(wm}|D@OA+CD z%?IgQ%m^!QV8(m-D#{snue@p4SR0cLqQEv@qw_jH`U=%Nv1+IvJ$av`Q_56O_*T`h zI`5UwWTU!GO=y_@q#1D+gZgtHD}@TJ@(Ylk0>VI2i|*=a?^=Sh5)JYt5-o-Vq=o1J zUi0JnsB5v@jJ;Wp>ZWN%mCyCJxW=S@rB8a|PI`ZL+aRYPkUR}YmO^z#S3S>wJ$O>E)BgHEI8EGk#mZfIhTrf-D;Y~o-#_r*g`B$f0&n+jRI6F@dZf0|Nn66ER z8dq9=YCeC!o3%!dBxC|GT7EXgS$TT!?8>UAE32Brt2{(JTR8qd0x)bMxOC+aet-mJ}hM&8^PD|FNJ8vC6+#lIm;_FqTx*Y(SWCtZ%#5};HS zW}V5uQ@znhXuP>CqCoAbt@5!RE*%hLCRUAXsPr+~+t9AZBmHPJn$-6?bBeKM;MAMd z4mJKVUMYR%vo@*TXhjXa8l22KKOPK1`Ava4iD-)@4R#2mr)$sQZ|X+$tUqAGX8l$% zUZ=@jqd1vG=-CuewH9C^#AOYa*d&~x@*1hvPg=7#He5jiH++o7Etz&%=asst@SjqR zrHa2cR{7iNJM!3uD{!O6n`UXW4R^y@wY z{E>TAw%V#O0ec~;+`Xi1z!{1{LH+s}RrmQ`?fYp-NNL>K>D8M zhC)EYw7xY^Tv;3TSy2Z6;7+&ABiHSUjTTY|)NcL>3Z^*&?+==3)(MC~@)cfTBZ*ET(p+ew^^!FYvAk~0aV4kfoF?TjR> zB*g8hB(*+TccC+tF+vrao+%q5k5$eGcz^u+_Pxu8m5RAN;M8q9Z~I9V%F2UzK-X69 zrdlf5xi#nN-^Y~%>;Eh=Nlq#mY|$_EHyjRIgK`{+=2j~uGF^S0z1p1H(9RcnpWCoI zFqLh!7IgOdQ+|q8c2FMj3FA#^q3)27R#;ZS%vQ-g%TdH~nhz{+UXym*eu0ANzy!!S z;V*L;SmbXwfFU^}YS3I!S5f5VHlH)r4*HU4 zVbx@U`RS8Z8&1&^gr!yJcx$}BUaEudGl-}Ex;0z=j@P_)oE9c;C_9`0T883%vW~AGVfs5F$udR9j zwL5*7N+hey9!$(QFty?;NRT`K@*s?@9z%g)pwUqLY8~P3tYh7NqW|Ns)bbd%86x)4 znnu}W=-~rz{30AG=@0K;^@CAob!wn&FF#t`kr^IwH^v&Trufe+;%b8$iGRcZ`I0-C zG@38~^bmX$1g|}&HNLBM_2k(ULk>|v;ZJ|Wr8l!&XoH%l@e79B5ZtQrNNJ>+01E^S zljV#>jZ{D$UIZ4vO=6(~MZMqyPUg~}P|=m`fhA;5ZMefZ2$2(|EM=H%qqx*R7^T*s zj;kh*Kw_D7hyx|8z^r(2PTd=-m7cb6sm3IRGDwVHM?SiP|BNvxjQ69q#ab}62D4*K zl`_~wb2c5^5ITl@4fjTnGQO~I^s}UfNEm9p)_jH|Pn$<8500J;5m!qtg;@UZQ0%j0 zlIW*M60x$*h!QQvk~+G1Y8Mh0IezIhPwywIoqSe~zdb=}DbAM}VBQ)hch(_MJv_)- z21o#w6#V>m!82f4`GrdVzqot%__)gJ?pN~2Mn;A$z<>iLI9N$c#}tE|1Q-)*Kni>8 z8Jjdt1BsLHMuazM+=SQ?IE{>DkKA}?JcPa_Z|NyH-Vf@t=|$I3;S`Y*xTHnj-AB# zG){ejcOqUQ)nuvl<{h!Es3A45I@LgL`8wVg>ZSb6)2oTV3HvkuExbgEURJso-YzM3 z+K~_na+cF(?@(gs#@S{gFBrivG$nL_kiE&1P#fGYv%_H_%xvjT&Q}neh834*rSRTJ zAduZJr$uS1#LE`_B};Q`nLI9+QfcyC$yJvF}iLCiAT1~D?s1~9{Xl&rHhfI}@DBC$vr%ZO|8E=z7=p3DrWc+ox?{bK+m=s{5f zXWNMrUd7Jy5MAZxP+6r$Xl>oyX@tWVTkDq|IGH*MqVqQyhtW-LPXlog%n);pc_l&*Z;X4)HSnR+-=s zEifR}aR_3{RL2_}N)LYa=pDQf!n$D5(YyEtb+QGKiq5FxfL-`jitte|lU>PM?Yd;5 zbH-x7cqrMi4t6q`=g^y{i5j=PEGnrbiGECIsy9D56KHpRo%ixbihiOg}w zvYC7MsK!wy*pTXAzlBooNe?D8z9!;2jOg9>qriyvL^|c-(aA| zHL7(&Ccb8}JYsZd{`}@z^v$2)D6!L9_!u|PEOo)oV_ReEvb)RU$CdLX7+*6M zV<|Y{zPdcZQpJ(Ha8wQEA^cs#r1gT3Zj-HGkuz@ zuBsZ3$K~-jbgNcE9~T5U%;5Ax|Eo+HZ2#ms7fQ=MJ4CmXHGQ~e5@D%l9@$X=sc>ou z-2LjtUT(A2Azieyj2J_9MPJrOU)uQMxXmOQcJTuCe+TLyLwpuLEq<0hzgOQ${fmCF zt0;*aFYIvQxR;d`$9hgzSdr|CuuME#Q?JyB(-*-udRCBn!p{vZUay3#aA}4ulFAK6 zU6&g7>*0El_EoBNeOSD*#%eXB9fGbT@QO3~aIykz?BOeJn?)VmV#4!-IZqVRNCV+Wmf?m}ZrUgeYRd#%{CpBR6lfT@`Vng_oR8Vm0llH#OQz;I zjqeXyUfP|^uXbT3_J(vj0f=f~!9fU4wGgT1Yq|j!`b9O)$%&m_Ykm|kPj%2msi<4% zs-wyLX2wI39aewMKJj<;nTRO|x96W-k})x7nS2$6I(Vmly}^JJOta7hxE3!HNJj*prEGHV)X6 z*c&wVALIS{!^82un>Cg-2$ebGAx_9p$GFrrnE-AQ{#yrbz{8b9lgdq|i=vS$@BO;N z#yVGbtQ!c(zV|y~ojWMjxi?^)dm|lxb?kvj!SwyG&P^}EaREE*L2_&}#lBgRXWL=x z)c2w>6%9zuA;BvRfi^zrR?`ug+_%)Nr!u+EiKyh1hG{A{8bCnYC4)d4YAtr3Lr_t@ zqI!b2wUMPu+2>a`Xz2JXLDe&SRa9|qI4pZxg6#~6H4Ke4hOmRx%z|!43ut}M2)T5` zpjO1+Be6O{ml+s!5-;@*3qplaUYTI($?D!zvua_1XrL>LGRO)sYr3e#G}PFMPBpG- zjJGl{yq#5o25GE-(Ipj(hRBx=aua~!X=TyL1+dw{+5^VX3Ihj<#5UdQ+}5;MU_KE| z5yxwbt#3{(%dlY3(k1pH3k*52#oENVH~M78sJw-bA=NlV*RS)%Hb;So0R!9P;zGZ^ zmX5#Ke=MtAt?5JX+JCfUf^QKc@;OX-Bs~L*vD)%u>=ZEiz`tu-7?NoSGH}$y4Z`FP z47cVcAd^vDKyb&#kluFthJ#+~4>+1?AT<8W5$wZWqEVq_HTud`et!54{NHOX2MOR$ z77v}qWN)Ouhg8uZOEa;%FPBSMJaQ=u&!($Fud*e04ZJermr<=)-&}}SnR~abXAaC9 znQAyF->W!Ol6UW~#FcEn5F9vm{{kDQy$rP@#vWi}ExUvUUIv$3!q`Gy^?n;WJgAhMgCPet`LmL)msRCLxOLR-)j2UQ0eW<~vKUr*_yq_}Plt z9edW`MLVph!KScqa=p z8*{}e^6Z${??HNbnR^f;w-`r#HiKteS-lr-gBT9Y2a(t)wvxi9B9W}jRKw5$YdfI> zQSbq8lN*i$l0!>V|$- zP0T+$K)8uiG8<^B=hUriz26GTn0`H$R-6-PRQ(vEAJ$Yf-6+%O;W9V`MH1?IVSiv% ztkgEP2}?9ocFAd9jkAHlpA2#SB{bWA)2S;d-*kHi<&@p}xLLI`H2GV>87rh$dqDd6x20Xh>l!@i-o^+7sfGSq9#RuVH7kxB}RUP#L7vd)ZAPOH6WonQ*^ zGz#S)%B9QdDC`qEruB1-@EPnxeKj1>nhMP9V>H_8C$_pI4(K21k%_$ng>O1`TsVsO zdvy;xQXnDMn$jX_c5lJk43Jd*OCX^mXCtALH_*QE?I58YvyvwALL_t~lMj*57A~m| zju2L!Jcg&OqrtC_y{a^B_3HZvSm)SGr3#wa}g$@Y3;snWHW%J zpoOIusPv(k)C8@L(N!9VC1qNV|K&k6)(bGV3dmO!}pyg-Cq416_KHnP-ync`{AOr1`j4WETwH4Flq&d zixwL$I+lq+t9Y3F3p*sTq%d>^1kn_!z%T}C39E&;=mc(L=z1a&W$FxZ(Zu{{=oIjQ zJH)9rAeHKH~Ik<#T)g+jM=zdB#ThV*cd^qPE11%r&C z_cczD0+%wIaUP4Fvef)v9F@px|i*p`c=Q$G2>(wj7K!Wcp~d-BR* zwL|F1w$t!ei8bzEN9-wQk_A3UQ>1c(6fihQ0fQsPZl}jA!hZ?qX^f#KQZW{z=8%dq z^&(e|Cnf7)S(6GODo^5C=Wt^LLj9Dcv8M9#P0T|cHOq~B^ zx{BSV)(}6nhWLqV&5u4)wO9Q9rq2?ufuAaR{qftd5A%A%CEBy&m82C*yk_uesZ)VR z4EqQ^J-XD2$u6$Wh<~@y;M1ppPntG(ExI~9sUOr>@X7S7$|-bUPmIyu;a5EWzup%< znb)n%KzdQB>BE51uvx(<&sNw`p&s0@ml>OyjkV&fQL@jn7Wafw2nfQKEnX#l-Yfb& zO@%QG^{PfTo6Sg%a@eqgMe zeC?O(5-yjJ;&zJhLVDI$^fZ%f`SV_VFQ!I2J}Yc2Ep#&TS2cZDB2IU~-wLtX+7^y8 zJ=LB%3IeRV9fGxoH|R!#;ZYZ;sjbP?)HlCRQ_I}=;CtXzNmD&c<63x;d~v+>lwRfM zr+FpO{18Hs222Npwu{kvL_KPXRlfH#eknTsCB60uE78vubC^IE{-L(?P>F1|xTM}J zAY?BPh>&d}u813c)Fe1cc!z{P3ZdQMJjw39`*RxX1Ug#jQN-~ZZxo*1%*)GtocbIGs zmm%7kQ1zzd#;-?L3mFnQhss=z$~b>6g5v{v15y@1 zabT7jbp>^>sv_g8sthr!D&ydGo4oJ4-7+Z{TJAR-!-A3j;}S6?3S9$dCNyGUEW;Mi zu=;GG;eWe^vc)%I$KE8k;kY*;Mq?NKgl3icC7r(wQ`bsw;e0OkgA-!kScywstUJn! zlzj{CVQiq!9#!b49Pinppr@RgtvlLH)+Eg@b%p*A5BEVN&1iMKivpLf)agtxeLc<@ z(>E)QBgO6oENgBI_HF@&`Wun2;u##>Vo|AeJK6VG!UoSaHa(bN_I_xE^?BboMfUpn z=A$H5a7FXsv{8Xm@e{NGV-|Le6{6T!Ok77B_(#-e*!VxodyJ6-SwMV)E4}HlHa8AyGR(g?$n%mQWnV={$ip8XAEV-AtfR;2w%Gh10zl!L`y40vD{p4H?DZ%yvJ5Q++ zipr+Iuha*xXJQA{loB3zuWL*^rms=&BI#Q6C?2U=q;nN`$vd))V7CMiQ>z1)S@^~I zRpQsl41N}*`yq{mL{28w?Zizc!LmcXJ zmN(3<@fE3nVf3~iUng&r7>s5qs5O)?FtT6z5_$}8a9T~GMavo(3KP@Qzr%(=Ga(ZAZUEF z@I)UbV*`qze^WX({bH0}`{dl+R{%5LVE@9A6W~X8vvCmUif*08#CYau^)ZNR83bJ` zXZ&1+&>LV=*hEskR$3#H z$pTJqBu&!=LNQT;30EFcU+OAUxcA^=qo^K$S#6w&5mOjqA+y!}3okICh)a+{GE(Hl za(o*bjc-GQ#Lo_`=2=kI2ovK?kg0+#ZQ)S8fENuNrWX;2YJeHG;*-oFy94?#@ofz4 z<=YS;vC>&s4Pe&eo%pmQx-EirliotoSCEvW+jw@9y&}L_gEM}JnDyzrOM48CKcf;h zs<65vX*_8V=%s27zQ&trf%(2~2f_#tamID+)<+@%0L zZMxz*Cc*6omlo@KGgi3gfSYYxGf4Hk;z-+3O@BsLzRO=0zJy3C_R@Sa-+KMF`k~zr*9xy z$@|pNZeAH7p&p>*-XJjB7cfP0A9*Qx)nZS2)dJD<72NbBpK5Pan{{xfrM;5>*Di$k zGTI5}5@I5(jM$equCl?lqvPc|w7V%fmryS@F=~%>~Tt z)yFm{NuMINp*Y#6^>8n9L(_aGlVEI`C>_YN)Yq)WR z-efRqn}b=e8O+KgwzB=%rywe&YM{&SyF)ixktmuKQG012;G3MEx)vDb=G0_mx6teC z{`f19TaA5pQqZ`qlK-|+pe32atGxw6SZHz5uvKn4H~~GRw=$31+;9M@-?Cs*e%wV7 z&XPAz8Mo-S3L0TJX}ieNN9WWkeKDJ=0xO+)B5P1sm3m}QxEH~1Sr7Y7QEBkUxLx}U z4z)$?pv?;vLPJ)ymt{=#02^o6YLe|ft#QV5)cYsqhrg(v#k{JNs!RfvQb`}Ezu`6< zfY|g^`r#I?Q@#>EKfD-_(`1vtrL}Num#u8AoInmf^(572a&AaxxPpWwfGK{Mi48Hp zD*P(>bzIY2sar~TSMCPA;kO`DxAK5x630`)Dl|Lm$lW^30hgpjh)#@-i50yQU$)P5 z>}_t%7=|NW{8d#fh2s}{ZgCRCloJ6gA7N%xY;`7Ai>VDK!o|Jl?Xwu!UiIb)y-5I| zo8v_O^lwj=@Tw?dQ58)GF~&FfG8se~sp>3m-h!O8j>zCQ$bl`?m?k`&8J<1X3u2gV==B}(5`csVUV7>>qSZ{RlLe@>voIc6f zXc*z)wp5Srhvy^=%p4-{#%T?o1$_3&r+|Gk&YEyaZuH1>>>yqWQ-aY|J@is+m`{&) zPs%lp1e?Eu=Y>1NbhQ0pSZbGau|ebSZ_v$h=9RO06EPp)BFtJN@{52Y5(wH z?&tw@ZJLZa=QdyegXVMXsdXJ;>Et47xaXmC!)C>w?;+{HQz4uqLy@38j)BO>AyP?tX^E>Q=AK<^H(@KV z3}mH=gI!KG5Ue{B)jdl^hZe8wX$yY;cfxmH9j@N^b@;B9X$QW0JG6D_X9VsdTbIVb zf6CT1j5~mIXW6=B9sD)6E{&xKyGd^SMq3va7Z#twcpA}KAOsg->ym1712+Vz;#Zrj zcXOpq!1A;sn#Dv!gu7b*DO;D`p_fW?s=Auxs@{LStqW5Vn3oN(UuWw|CtixMnyWId zwr3i<&O<^sYrY=FcKlUw+|NXi$5Adps6AUtSM>pmzACQ7naigVf$E(irnuIzd9y2xCcL>tQmXpQscuNnJPIz$-|Uby|tC z+}U)(3A_8Qlf@85^c_GbR|*wumY7oGGTcrM(lTSELo*i4Z5;dnGnQss1c7d#2z?>Y z82kOfW~@=}`b{l-s*of2{2(({tzC2G8stA^#&R#~Z^lv)Lo=32-`9*q51(zuvWeo% zSSAXj8@Mmh!U967#s5FdSgNco^Q}ftY(B2M+zt_ANiak63)NC33DZU(T>^vBRX3n9uwwT!;QE>{}_-%yxtm|E=)P_Xsuo zVEm(nNwsDN>x*4{W^xy#^J&j4SL*z9-qG}r;5&r;Sh4B|2&yMaCcy0k6BTLD$SNpv z7`t1d=3iJNNy%zWjw(tyvfi1qWG;Ux9or1~Yr?hzHTdD@#bW{BD}(z=JBv|Phn)S3 zjUhHaz$_Y@5is(}g%#VJ2_{uC86)VE2`-XZOWS;I@)95EwN6q|!Zk0GZd0^S5u0qE z`PhHoL$F?N>~FNv^4O+3pH|Co4g-0}vUv9P9_FciGEdP8Yx{5SVV<(>ynZ4v!vO)~ircmA5zBqLRSy+Ba-+0yKaN76C$@IT zR--*ZcSb_IlWC(1+5V02RP;cZMN|SE*8_WSmJrrE4rm<)Xo>sn2(~OPlgTTC=g266 zJz~yG6({+HEL8DzV@s2QW|^g$L$lNt(agD-E3c~3I?afNoo1IxYk)Uwh``kyyuUBF zy4`*++;Nv?KQqjX4{9-fbI;3B3;OOpXGY+>no%Ij4-LGUfOl~$nlmyog&W0TJNIv8 z4BrH~Xp8W3+$T$h-oak(GQBesKWVnq)*6*CE!)ylH7fk%+-S@)`!ST5?}4bSr{srs z)Cc72AOqtRJrYGBQWmyS;eBk$>>^9RWCFSKDo3O z{1NUKT$v`#Kzys2m|k+cwF)NaYhr>E(3>~WHVDZ{%eE7nr>>^zcQ>{|i5o)kRDk1{ zh5{>oan`DDym>$PH72G=V*VC3r4c-gMW$L?+CmWp!dPsQ4C9R9DUGL8E;j;Bi&RiW z^gYKZs?HPg^|US%fC~7G1_n8mbXU);$qylG>5G~Tl2_i9b##7g>UpTK_KCU1Yj9>b zOuM)s4;D28Ev>Vz=++*Hl?sF3^Nfu4R7rk%Td5(bHhshDRVCC@#WqvZN7QWA2-+xn)M{WD!Hhz7f@FOl8;16wdsUPGhhhBAlw!0SR5nzP#HurN zmYr0xK4GQMKBPM=KRx_}QG)u2pYYi;h#ZjLbv;ZD;wfBc{0zOB>ai0owRZ*XOb-&w zo+$UTk6M+`2=9sX=eT2PVk%scd>TFi^P8PyYl8_v#ndiBq8XaSk<}OEmMSGA<|%d*+EJ43l%ChEtta=Ppd=ANqE!^vj9w zK2Vu_=DVCL4wj%<;20e@U>?ctnc)4H?Xu&8#EdjX@p>$4)erZ5h&Y+kJd+T`Qsa=2 zzNGN4h*9R88==fG>sd6H`y~8Yq$6XnA9eCNWjf1$aRN?uwRJqcl0f1#-ul&$*g~!0 zqt3*AHO$l?L9vzMED6TpJFL@O?3}H2U8-X*3OzG&TY4}|vFbi<#LIWF_vezD7E+tZ zPa9m0vhaQ&xrUDm?oXvQdpHS0Pz5QBi!dU&K`!Bc7Z1{)*8?+EqpxE|WvZrMr)b^k zRATjvqAs?#ah8m@7M)gZ%Tuu<5};Pas)ZJ3E@7tMX*y&C>XZ2LVe-<{u`=(+?NjnY{BSU& z@5lcemm44wRmx@_UEqS+De#xMsSr^ztgKO?|H=ncjxJs+@1M{ zQ~*D}piLj#-1pjPy7uM)Z3Gbi=qEaV^IyJDDm6RSt7@lF`qq`|T|sf0K26bn!VA3W z+PivQ?CD`)-E>tWWN8EMcURrpb5+4gbMaTh;=!7fzonXTt@r1y;?!U&Rci&^>QxWu zx$EC`S0wu*AwRQX>_&4da1rNLj|Z+HVG1Ek$JrM^D+O z7#sfBrFZ*@3S%hr<{uBY@HA?q#*8>>?ov@Ce)&tuuO`2e{Bm;Ik`LbDa#2P7;YVQ% zl%$A`F>1~{LH9fk9Z=zZKU%Y1f|)r6$Kwr?C&x4sTR)8>`AHn*RPh471Y$Je_GNe1 zvXQQ0B?G7?P!qu+I}t5RlG)t@LTrR*VH7^tIJJC+2m@_ zB(K8l_i3ocs+0NK;P)Hn{a}tY;KlE(Vh;R#=l}+~sbb^z!vSeNx|W8V4qcHll=6nC zClqKlEUH_Go1!WfzCi;KFWU5-;u4ysg=Z9%bE)a8#eXN69La4*WU5X!{R1T#QJe(r z;ozo0^Gi+1;*a@0qUlHVK&Wv9Q8dm^zF<8%|J}wbGIG$ay9Oz^rq<7o?qn|(tUNJ4 z{pR(>b99gc5oy}RXz4;d|LJXrxM7mu;qG=Q^;1l6damgjs{A*rO#+OGW@$tzCmgD9 zp!t8#mx89QGK1xtYpUx4P(?*e=iEDxiSV0_sLNH`-)S zE!NN`cg1jMeV8wlr0fi0wXO+1OA}2NSD41jMA|ks`NKiuM|kt4Q$l{e1H})E)~#`v z&a?1xbbm4CY70H*)o&3IV08FgP2sXy9oCHg?dEXPjhflNe*T87>9u~JMsKCXX7X8V z?fmYscOkgFyJl24LJD6Kr?OiR7yf~%7Ja{o@5>?SD*ORojPH((@Tkv{#A<}yR(S5$ z^5GSVJU>`DHe~Z2yAhYT>)41Gs>Oor5cs@R^OYSE1I4lx-iw0tvx}j%YU#T=-Z1!+)hP z8+~L8C}cz7U-tI-(Z03MkB8v_b3n0iL^>c-#47*T1|g2>^hj)2`V0XAN+N;^0LyA@ zjn^tZ1F>;9h|9FS9AYkZ5&^PkQ?5}m)i!#zj4%!TFa_>sTZ z+Y)o0e(C&qb6<%uNME=qlS@{nNSej+M{7oHVA-~~Y;C&rFLb@idSX4B}rue}^A zyT$v(I9x!K!9LMFyNaKUsR8zz3x2RUR+fG9N|xBX?BPxJvhm+l00!wj^fnY4#)G=^ z6{>N*y;d~_Vri5V{>MvdCROjUwN!5y|EXX9WreC)QDaTe^|Y!e5;Ri3E#MG@PKEJs zl0#AKwO;>E+;=1YiL8<+kALhL@;xK^@}9Fld7rcIaf}|582Z7Be1|8j@D87fWgS$w zyPMgPAGi$=LTx+N#L5aal=*Bv<>b`l=aYY&{KDrx@6X+@Oh16>yZw+yI327(Y1fg2 zhZa!^2O}27o}(NOl0(Xa^K^^qM$18#Bv{EIwbLW#x;+u)qto7qQU$S9*jn*q^yRVW z%R|wZ7QXn|&e|rpRUud8NzX&+1ErdVA34dC@$12Q`klymVgN5mW#2f*Bv(t*kd)&9 zZ6ed)0aPT^15$UG*01cOE;q>~_E95ocKZDu$fKPhtA2X0r1AfhrkTLh3ep8N$3|c1bnq zWm(A!gzwk#pXYSERUFAlMl-n!oDxe!UI4u?>;XXbMZ-iXcnBqk3G*0px>z6{<)Hb+iyiimM?S`p(;O-3NJ&SAas-L_V%-lb4)fca-#}e8$~0=`YJAtS z3)6n!3P0WvToM$XQQbTCWEY<*{L#SPR=7RoJ+t@P85gn?`?TdL2#$AjX4~E^Uib`2 z5QxEM_C3w@W!^1#{y*#{mut8{khr}%TwlQ>JK7n7M~fx}%hm^Lr2LtKlGTjYI>vSx zKk-rGNfP!N(Dr=ISi-%MbGvkmXw3?ZVmE(@Lv+$InZNfl$!uFCJCe{_U~gkGhj*8k zrK|9d+Jf!WxTZiH&RlN88phW-?<50u>sBYTOPR~t$bUp^ zoF1A9wxv4u@tgZG&lNw#0d`uFA?3uhn(7CLpxV-p=@*I3nt|}?F(Nz0o>{HD4ce1J zN?~5oV89I!No49)?%b?xndr%1X{D)6GEIBLnwTg|eflz>@AcJgmX_>G?y10}m@S<hlR*JytIu%C>NI=dvH9w4>%Zv4+i&~J9|(PDOU87`PrZ1 zn;wn<_t0k+O#eR7$18YvjCd+XB zsv+#Vte9Mtz8qWR66je=Gm0{K=(;KSX%osbdGfF&j?X*~qi3vqa@E2ePwQ4LvHXd- zW~_yCSIE9qA0+Bz#vqkI9pge1<+l8A;?|&mI5eR?wv#e3%IX976@I)pQ?;6p6}RSx z{HkN$yNk;k$0WVyKVM3`0+1@b7=CX&YG&c=i5rt%U03XtP zLv-W_K@YOuU==;kI5-{b_Ty`U3~HLaD#=6((>b;s+Lho#oRy7fXe#mIOz(&I*tWNv z9Mg2J_E`2mBdxEyYQwt*;HHf9wWN(>H(`Ss8rq-+S!s6pbC-59c>0)~6gGLFK3JR1 zf2rJiv@Mx^J?Rg;B~zVYvk#uz_r|aXsP5!V$R(lUHol5FjjszBkbp;l;D`7MxybDFR(QVp0zKh?2 z&&och-E5VNX@}(cI{0Jug~xVMMxk*&1kM>2`No@>LJo01@X2)CeT(o>^4Mz>z;Jx* zDZ6w2s^EHL_)8!;DycKYiwv9pRh`P>z*lfRMfc`wyD?&QD$P;whC@=RkvpH)W{bQ5 zg?O)9m;T%8m$)g(2ApjKQ@C7Cz= z+$EZ9S`bRyn)Q59%@$6|;->ym_?9}Wj*V>VDaMIb@zL%g5L)@0-UDthfji#Qu+WT=Eho7VmbXtkTB0hiRUbR)OtzWx9 zB=%)j^kseYrHwDq`jzMzJ&N^=hEA* z7x>6MyMC7D40H~kh0XzaqK+1i>;5EPN^6)gmJpF)3c1BzC?WI~y$x^TeO#lZB=)}c zPLh7LK}9jN9U_SQN9WteHGfViF@{XNZ9ppTmn;2Mf-KgP+do4dm)mgCQbsHU)s^J_ zsz_^ZGS)%(>ZDxri-M&K4DFvc_g9pZvQ+}TCVDSSz2z%}8MLe1ni?uGrSs-baV16= zTZtvYyOM;JO8-Kj6|Bv$eHpwaw+tM=UQ7lj2%zEHHvTDzb<6YREF zoy1PJCh{BBuu~5Q`&J^mG^w7XE8Q+X4wY+L1P$5ASG=`e5`#sMr1SWaeU-pQ969N+ zba0M@ki>SHwVPFd@2M4>Qg6H{wJAk8;@_FQOqP(;{b%Pb0u*M<2-{L$ArZML)J_ThTz{p zpxo*iT{zU`Ct<@RDs7_zid*He8fgoB=ByfGse;vPt+H=wmds*^k>AuBO#-r(rnXen ztnB$JG4c(Kc|@6dVN$Mw_^qO7%vRvgrsU{E<%5m8MEN8dYB;78?3G~G|FEJhU5?iG zEW|ZN$T4gmdq=<- zKeHTHiKFUYu`p?jr-BK7eu!4~Y-*5XiGfmYrl%KZOFg3JTXK`$$aJlV3X1umuZ0i?0eeFo!>6Erere=LD^m%zzWw>U>HdBXVkt=M%$ z=t}u}WlDx7XpyN*-K;-mawI4V zAJJo&PIi}=bt-@WXUX}Kqt8%6bca(y(UF?a{Bfa5ZUc12vV z<>BYAxJw!r4;@ts=A`B^@PjrE#}Gi^J5w$d90^t`5+fBz4`E1i#Z3k68PuXbyJs%Dg@xO&-JAb$=y)c6fV$8M2FoBQ7! zet(RW-;cj-a|qdbbe1eR5c;4#Pp0zUA);uRxA0yrstZmggXKgK_XIhS>iYofk$xNw zwAbq5NBr0^(7o23rTa)l@Ni8F#gOyi)K_uxocbE9fJ;(|oi5X|&MCcZ-Fw~kaT7bxYZ`Q#E?xedc1(&<=9n|g7iE1%%x$`#)z5dQhXA7zPG?g2hs^ivTapp6%WUY zra`6k4)!NLNqVqfz3b=huOx}`e%Yt|+!T>S?$=QCbM^Ej24=hG@tWJ!h}6R8Gpdai zc{;ChAkfw6utdlmeFR5kFwPC%hMB28*iOg8;USOv)wU$GOOJB&F#q=Q59BTO#bfE% z9^tHXVozPL&+yV)nZ#T5ffyHIs#%*#ti?BCC;Qt4-FsZ&)FQRP z8vxL+;w8u)jJ54?8=gEz!*B`zcJOZxLlK`}c4BB_CJloK$A@>ZpRlsmwc%k7P#PP? z`5|MK5N8caeR&24S%Y&&Emb>3*ofL7lLV|e^5ev0_No!O)Ui-U*r{RsSRF$E_{>6A zUEPQ{puf?iO)Kjot(d=M zfHsBI!%W;w+8a-C8AF87=mJw9I3ChIj(u0q;Bn0ghRPj0Bh>&Z?bp++AyowNaPxLu zW#rQuG(b%a7&t%Kadw0zvEk>l)**}SC7_^m;v_7S>0taICb1uzc0Rl|&6g06-gBmT zP`6HHm*eBQZ$^7mUwkQWfjhI#a&=ud^W!K_N~zpcu}9b1J}jRLRGNU_sw~5|SfT$} zWi@>aism-Q0oe`*@Deb+5=lRC+JUE8>1B=@gH#n*>#Ik6J6>VFV}d%=^{JQkpcUJ5H#)eEWqQ)LQ!U zvp1HSt{S^BYFV6=$5)ofgrW>%?8xf&{L}#@G#_-@J>Uc2FO97?TU1){yU=Ny_ACC+ zp4VYJ{i1AfPQ#z^2J1VP>Y?%{K2C2E&Gva0|3|D$`%A_SViGsi%Cb53bt9tDj7{lFJ zxJbL)oRf-Cozmj3dG{QnX{A_Mh9eH!6^3?iNM*c+H{V*wN>02}E#fg>=)`0D&QyaRCt~0yDTF}cr z1k!`9sd;B6?r_jgujL{6YyS4tXa=N0Cy6W4l<~zgW5Qf#tuVoZ_(G>^cdi%C{To&1RU)iVLA#O zl!md2lnLnslYFb+U|MsOunR2z;FC2OIJX5+SpC6Xs4@vbL5H=!MZ+wHosU-K5Sl3+ zOonQE4ePE{a7rZ`qX*gciWa0RDT<#Ty`M)LlmU5B;5T^7@emEMg{p*WEU@2{PH_N; z^x|ttLgI3nVa^8)opz5PTga(Y;*{wq$`vtW)saEJi=*N9dnr-&bXg`JhzG|g;a zk!v`uJ=I1s+p2XnSastl74HXaj%nfPmy z^V5i{Lm6iG$} zp|P07gYV*){&c>R?`){tS05=R?Q4XXN>f4CN>$i(LGwl`+Poee8*(6W=1j#IDo~Dh z*`4kUM$)s>A+RkVus&Rfx=b&U-c2VSx7+UfxOBF5(`hGNfbLGk-^CMR8SkIAocBZE zv{d+vHRmlQp|kU(kQ=%*{%SS;!U3#dx>TPaLz<&(xiLX#zH9 zbh5_9Dni0F=&HnCBaEi*xZQ3!1lVy{jWpnxO|Wfk&Lp6>JjR#=fQh$zBBV%QwRdCy z(FC*wM{JGK^1)sedk>IkT%o(wxM~4B0(|nV@yn(Uw^0_cc9;VcM=?y3@}ox}Vp54tPA?^cmOv;>;BXqIVw?Qf31Z%f>r_^v zNkN4yc*`*hnF}d}nG~yA1Ii{6=~?S8Z{B|xQhN)eb_|C2-!zScimg9XITL2#2ny~2 zxqX}TCNcGZiT3>0%G0q$CiChAm!iXeA|Pkt2EytP$PF6%uI1Icl1W-0>uPVdu-eQ03SSOH#ti0I+l9D_;ZDjQ!$J`uzlYI;u96PooYTeAMb<$e7`8bErAL$dcV|MUkdP#^hII4V{J*anysW)F?Rqm@bTAA#>+aMg+cyldLlGUv?Ofbhfe<)gd>pY~d6} zw&euL$;gv?xWWLL+x%pQCsjp!#G(oVUb#gT!h@EJ=MXsVfcBY!@D4&M!GoXl8{Rcf zzz`2E8fSM35B{m)!Iy;x7ln9mpTmO(dhwt;BM(7*Ab^9L1P7((y?Gib>P-DIIJhW; zgFw^VQz0CD$4|U7bG9xM0HAS0IJoG2;NWa%!TaICQN4K3UK8R$;|F(`?@PVN(BL3o zFvK4YvlVaZc`1%r*9a6k@X;3(IzSI7bf?7qX|EHYI~$M8yZ4xUY~CNGr6MlyF99eQ z{WMngD*;OOF1nwHX@epC*-vW6K9y@V4)6@0PnyNrZ8m7m$O`8+9j@li{@Wz`FTgC{ z!ZT$x8*(rGZ(r_;zT6&tspX5yNT(pMg_ryRBSn1RO-3_aWJ_fYj+Jv4#ma8=ev$Us zMEPEMdx1@q)s%eoKeN-~OpBP@Ot?PO=W~dx()C3#sTByHYZ{fF)Jq>&(l;4l;)P>T9 z&K9}dEHd8w4Wl^PuSJc9^gbXasc`K%#Ih5CZG4qVdb=LwvAjND@4{uI%{LDRbKnD| z3Ohr;Qr^C8AkT;>VO9pc=`<9L4TmzZE<_-?AbTuYZH}c)8M`E?M{z0Gcz-p8K!X79 zR&kGjVz2I`Sjdl${A3X^E@fsoRUR(r7&>c(|RR&GBlT9s|FbI`EtG1z0*}_2Iil|O3 zlrN@&rL4~cHd(%cMK`4(=}K&3e=OKycDC1bkR!=phZHJ#anp&z!L}(uW1j&3H!Z-w zjgyml0{pua513f(&1+)kBdR^j#=Q~#lKWOOFsa)Q30Ed8eym;yA;B-zr|-VVlwjP| zMDGhSJj6mK!^%9{ylqt zd>wtcRO31o$6*>yRU9g}-*++SaB|SRxpGR-yaBq##Y#GQ(5!$vD-DqnEe{kGi(?@} z`mBVMrAnq3*?bBK1v2r~dV}5#CpSZuy{Q6BMs@sc@5^ckAi}pES+ih$W-Gz9| zH0uQjX{idiI-ktpJKkO#uo3G#?CU(2nCD4)7c+7r7=51pZl1P5b)~LDh zfg_cdSdSuxw9_T{r9#MHrst1kb5L#NwKh%F-}NA0};&rH6?ocFircwRKy?%8s@XH-1RVNJ0o^~pd~u_xumvy`)(+3+qPB1CaZ z1P`+W!#gW~Y7Z*Q(GfO50k-(p_!PW_| zwH06aY(T3k5|&ACUajpf?vD8)41BgmwKlM7pJ%qNCXQ7fk)-PT!6<@QH6sWO$5&e2 z@6DS9@cmt9sJOYM2cT^m$<#lkKAD)GHnPNyI{?(S95Vr#bzZL*?a4u^O`1yj-1*xh zE|cPJe4OL#2lmLfaMbi}Uur@`gZL5Nq2Jd3)X@EQ;^3hvv6>iDg8j>?RP1OfaWon1 zXaDjdiL@!PyJOnFtfF~)PBmVn{Y$pEm#}|nc-6_G+Z^sRonZ-)*HZ-xWbcf7*wyGSl#OQeyp0_AeKWGkn5^tx;+p$W$r8-#8VA z&CPMzzsv-iFhFQ?GgGyHauD9Ze*Z6UAg!!xOIqbMY@xZ1mC|cxB$$& zYBGKn?ltUPX`6J_7@Uf^Btt%e*itQFu|Z`LLJ?R} zBryag*m-AInor4r5e)ZDWvt9B@7s5w7h)fTq)*=f`IH;vc-&s9vGW+0fiyxo-e+r` z#liaRP>fsP98$!M8hACR7)o%=Wk!;h9W zWsDZX9PfDZ?la8csx5J->eRhQk`Y-8?9Rn?a@lz0d}; zHHhP=g`jAvda0FCMY_maa9l-dSY*ExE`b_x|7%6Lu=5Jef;e=olX`+2mHY|`uCb>H zaumFU&vB{Yjs1dAc7t%oCc6JMrKlQf?LQ z*ofN-&GfFYv4s35z#W`esAPOJ8o}Mx z;1M3C*^X)wL}Rl5Xa;SuhLkC8y5J4NRd0kE`eij%ntfY2_HIY_v(I>1-FL6fYi{eQ zSZMwH=p{jEQhwSeC?FV71&kdLAXvax+0R?-6PFqLe7NQt`ed|NU2?<8^1FpdNPN#! z$fva5fE0|<*O47~AjxpGUt)kk4tz}PPX?RZ^vC6@m<*Jx zcS$PtBCg0uXAX15u04o>3@IXGOXxAfqA8?*X+Nor;U-6H0!i`AEf9iY)_p zQvOG_g{lIk<@}yx7BNe)eGz)(DlW`nwFaYGtr?M4Yhih-wX404n*h*O^jfl}p^iBT z*_VNeP`v0CDT5yP|NgU20K&QgKXd>DW*i3~1TwUSWu*p`z=YGP!O7AWIT%qu;|5i1 zoRev}xn>~&4#NwJEnkWN5_b79K#6J0^)Bs`s13}GC+N_A`x?LFIdfGj=eVn()BKyl1a>^I zZvwlO=_j{!QFkVI?8m3-}-zu#N^FNLQYT57L8O zohf>cgOhN9#I?4(&>(~S#7>6~e3+*g2KHd!g@%OTz8Jf7Z8Pry$lGtWrcd?92M$z~ z^}z>Dji+;VtS>$&>x&P71X>^Hl?D}xACKPh8}R{-KP%|fI_e%QqpW85GV=t^3&9HJ z`SE&e6KvPA20&SIpo4$P7yBxk$|KVG#><#^q99~t07)8w7@IAIQ`(Rtwv`8CLBpHQ z0`K;KiX)K9uRmrO;`U1IRl&(5Hn0Yu z^>CY9a`6CoObLcyeti!-y@*xITGoYh4T# z{^;wo=okE<%Q2Zu&W|>Im5IMfR)yEKxM7KiZpCF1_E4<{NUX<=t?iAMEkTT^?iu&V~M3h0X4CgzH1ZNl( z2w6b#UM=O`04jJqG%75rxfd-WJ3!yT#e?^2eD)t)Ko?v4O8<}IK8*C{Vj{dShTl{2 zqEqV!Q%$j(2XUm>bt{V9Fp5*`6YpFZznE_U#igM*Ad`nNN)r6)KHc0GHd_0KdV8#=T_Zzd#V;F2E8KW_btC$nYb8jE{YZP}DqdZ6$K z+WVtrDKcp!-cAM^CIyXG$bQ?d)6(o81q}5$Cldf03d+3o%8X|tb&d((LijjtXH#mk zE%_-$D!v|vEXxU~PtA1n+9uOixoV}>s+L!bmi#@{%-*1k47TKVY6iXHJ*dH(iM5$d z57(xq(|>AJ2UJff*|v$8#=h0FAD3y^M}DoIgtTf0G7aG?MA&w^iX>Siq~##%>QJAv z@;oCUEhn*Uzi)o6)}dAn(FRJNuaETkrnB_9)mQb_8K3%TL1nsJdcA!g`kaJBkE`Qk z#A|i!2rI_Z_?*f;t2o=x?K9YUU}bJH?>Lb2TPK{ zQZuo$+IMjy#SB^AWe13n0csZqrS5UNB}Eo9>>(zLEPnX3K2I}f@GbZAQxoMroYv`v zbz~1@GXry>Gb!pqX^veOf73y2pA4efve$M4uCye6B2+Wez)}x8!zhiS)<4uzN0^Xu zqc7H$*@ysNyWeIsi)Idj@gd1=~X1zefi-0>_l(T{?#AYau914n~8i zL*0+p0J{GK=UC;RR+FVMqL$WW5?zt*ceNyiYwrSIEv>4Y1py+vovTnZqaiCF#QNTr z@-&qG&RFB8yi}LBK#PNP!@;wc^5+xm3DarsD!!BM>RrWu4n@C@1wUPnwX7bXgM`kH ze@CyWk1eHpj&=`}qTf}XiEplt@6y^@E^e&eGYzlH*7Y=%(Vv#_*F^nBcdG(AmkF8= zSMpyMDjJ9BBl0nJV$s(1q@i-Fe7CI-F7L;t^TVwWQ3*2fj^0D>wUxHX_CIY7kdT+sW;#S8CNs?K3(%t7 zN5p_U-`O5GmBH&PSjvy3so1ep;#iVxG}}Tz>=1Jkdo2@tD-~l;$K|^MkAMI(ab7bH zPjq~gj=)ijtFxcG4^(i(PY}`6mMXs$RNzWz8+F=3z|f0>Qz=8`=vFn3R{mChE>+_R zAgCQ=Nl}ZZ*x$tJgS|A9c+;EreOuv!DKrw8f096FO~?12hG=#_|LE0lEx)m}qVEW^a_Xrw#2MY5LU~l+yG>afgSM zc4gkbaa{gme-bi=`5O*2-WxgIMEOKX=E4q=3r||ltJw8M>&Swisv^dyb+}%GAJOnF zd=fh1!jsy<@Fd;gC*D*3rHbDCOMtpIiZWieVz^NWSi%wkq5MmWmfB50r*m^YFp=fE zy(0+EWN(BZXB)26+r1w>(@qy2+pY~fk>9X)tfgr3*p7Oq_the{553IqcmqGoj!tIx zCTkheb6S7u-sfluITGSA8}@k{`y6+r8us~YzFV{AW>?~bG>V5Qo`o$BJug-DUMgrF zg=0hWDA4OP^++9I7!ihoid6h}} zJ(*ZC^F|iVdN7PnaT4M#I^_!3NwBZVjMGi)Dc30BDg0S=iAI9^h66={)U6v$6Lm2Y zlE3`8dOdsm<67GHu;}T;Up8*T_8kNnLORJ7Ln+ ztI&RLD7pl==>|;8i(c0QGr6yq1uLiI$NwDhG$mitJUOVjR-%N+miB|6w#5@OtCWe6 z;O?ztux@hh?rSyY$d7>4rmBm5j!F57$8nP6q!VHLKb^^s`-}t_z$(@zz>3Wc6IA21 zW?ExAC{y*;@x}csF3Tt>%+vDv9rO#XZKc+@m|xX)1Dl^h`_3k=T!M*N*Dybk)0QZO=UA)KKox zp6TwsDIyOUX~U5Tkea*rn|~B5%g-E>T+mnsjmGpc7)4|S^X4^}a10kL$We7#@tp8x zsgU&?-~pu)AMN|9qj+}c!Ng9H$=^F6m3^}fCuL%5Gch#DPVKBPl(ulA9-ykEI`*XF z%NoyBHqlOE%ZmdTE+uWKx7B)oy^NS8Zm49OOw!UB~3h9xA(u>NEb*=YrT0tWuy=d!E7fI@dwK*RMdlmCWnljXg4Wc6lcK%rom@>7 zEFAU0LAXTlI9#f%)!M?%R4pfyMsz#@gIuS^XY3S__{5UQLp_1RryWe30*uuu(CDw0 zavy%q>DZg;#GAF=U#&Gn%>ZLeRS#8A0mL`g{eZqh-nbkcYzl?AS*~YC&+N z3MWBu311Xzppn+1CuILYi)|!Ebfoa}=g;<*i^2|~HYsGqoR~dP-Fy?FR%72i;(ce} z4;o{@-d$a|w^e+Y;2zkdyJp}nwAjmT`8VhWmsboMqkUNH#zzXvIf57~?&{q2ckj9< z-5hKfdmy{Ji&oR)Zs2j|6>|*&b6K^YD9oVqR(si7pDC4YSzdAV7)-Qci9b@fjw54N z6?bdBDRvrs%t`|Qs%11vS>r(7TysOnpxXNUFF`ptYjWu~1Y;71(_ZFq;U73GkCXZL z{(_2Ovc5zXK*wnmGVK&Tb)0xEn>w2Qn|k1g|la1K8UU*SJIcbkTaJ9Z!&VYAK^ zm2A9l`>$LhtGKdFJ;F$5T($5a&r%)os z1pQn1kOO6A4lg{#0KsugYdsJ!>FJH{0eka3?v;Ya^I6~)4lj2lkvXC8_noDZxM%vb zg(S^gG?<{MwCk<;^wx4Huc*ttYEDPg#0==yXv~B8KcFv-IOeCYyB7YDU;Urf?=k(J zQG6y8s6Sa&xDCF#2Kf_asBrC+X^=aMfH}fMu@cel_ zUZ>}^W|>5}S)dvW&MypBx61sYrHeJg13S5el{dnLJ&|^Kg%U)4UJ)}ZUZF$o%;ayC zQz+3PIB9-@qZu!~g%%%or~K9057OdqT&eUs<`jB@H{%pK{!e5&(hBS$)ACc#6Lva} zx1uNz@G6D8LJRv}rl!b>F19!HSJ(};CokInXN2?QZ+_!`*gmg*rBpiNefWf*-9L)7 z4|hXkWu!+K-2Aa?iCl#~b_7;WiKSUQ1InjL*g5WHUOe!vWNB4h{Cad|P5orS~;Gq!`+Z$9^|fCTj8J_js4oiJN;|jaNMp+U0Y+3#L?i7o=;d z{T$_`boX#n$3wI`I*_v6Tk^CoM>Uw)RS zC7&kLri_NHUr$zv_B!vm)$AUSI<4}`?1|duVYE1Li5yH-DfFH}+-Ke&x*pR)uNTqh4^`d6^=@AOPcr0~ZR z6OvXcf9&GqGb)%LhvA>7^)`8I7{OY5y;rxP-g|CK^4NClsFz)t6fyi|bz+8J?1L8g z*;~@ZML4U%Gkj55FJ-NOmsKB4NDe2l(zl` z1vZbMtG)Y5koWv|d!HS(!yncnwl>y{ZG%cX={>jd*w$?On6yh@-oASb+)f!~1AB?p zRa&j(uec2Za9Noet5siIdqwYS8r*Y%_uNa=Dh!qU!&)BeH*A2=JM0S5ZO{R53FxWT z@O{P)+SAWn3c63By6kUG^rX@pU=e2t;vdPDE&KcJGwRd1LCm>yZgQn{um3`H7eq|U zQzM}i_@b`|Ezo_Yc?mFV*{p z$zUS%)uEr=;S60}927#TtW`o_=Q z&dw;UrO4slwp0tIN3OQkTQ#F0dIH!BzQU31{zy!hD;qKDJoDCs8P$H(3BDbpsZPTW z(xnh{-}Zj`d6?| z|FJ!O7-E+`^KXpJzgd;Nf(Z&yn}5(rwR!XYmyOSfZvH80dH?wrNw4Xs++N>J{}}t7 z$I~O*(&CZn{4@zG;KSWLVdmw2)$!hWc*3x+%eTZpO&q`fvKhnu#Nqod!UWG}c>31G zn7NkdABXj!iFg@^=8TCLir-#&o($f`$J7sND>*W!GNqlHeZ-%iPR-p@n!~}7m_80p zAk#$S#7MD-dX86aJhpA_;%jTc1P{JSGoYhqe*^&y4Vq0a+(RUSM9jPgeT~|yT3o!y zYkib!5pq>+NHTWg#FZX3es0bc7rafWcJbNLl> z&yd1J%}9LtA_?aDQ98z^Vd8M(6>5VIe-Bg_DyOoRK0-+kzeHD5aK&Noj_}h27Ux_A zOn_Fk6~2ftPR>2?>DscgIsXXshW)Elg4``wtZMBN27#xR6rITAj$MUoILp$D4PL&8 zF>w_+=~%a@no+tsevMppYy%5Le`I^%dM=C>gEZKo=>iVa3tMcBX?iPVIE3I(DV1*1NXa0ytJ%xld~=HQ_Hg9KHR_My^_! zu3GKxeKfq+ed^v&5%;ODKqEXijCN76YTH;z?cu`$y2VJlQ^o(~V) zN_9hx~$sVtrJzS6P=v0;8!inew9tgGIk5?$w&yc6nO@wPQqW>3c&S@E_tolBfelabdBNpi@Dr=J_Nw->IgOSCs#-n!8>)Xe)_ zBfHO@MxM%H4dlLqxIdo4OH>?Nede>+R=Nx@5Zl=~#{a0s4bb6c4UgGZQ7cyT;Y>Ku zn@4zGI6a!iw!X;jAGWo*rdlhb>hsECrP4i6N?*8jdd-E~ zr`L?we$8KDAbM@p_VG0wVwI+?E>AN^=^&6ui=Y@Y1Gg)>~Q&TpGM|>^0hDc^ZnE z@F^`5*isl1wGzblu~l}tEeqoAN-Gh1m#|_oW9_@arwgjy zrt`11CEOHjvVQL3?{?Jiao!Al$jF6k8gSUVvz)MezR17YeJ>Jdl zF>q$wK8HjPw^Jx-G;IMDKkerR?%7y_+Cz^<4cs+{wY1HMH?~G-+Rzv*8%@ z2Qa#`R&L)lF3o_hVra6=OpEKh&l~M)wY^+|i_nzji+W`IfJynGSTh&jH?Z~><;7U- z^`-3b8)gqn2g{L%9S5ZicOh1^fUD{%4koBWcKaVM7q~KkNqyqh3$?9iud5hK)Nb{L z8n&h@q?M`Coo!YnQ>HpvsNpKA7d0MR5-flI{PEMIM#32O8lQ!7J%|}p)!ulU1lP4Q zK1{p+8P8SDE(Vhu6tuT3P8bwQSQEm7?m6fcW;IRnw#{uWE?yX&?V4kw`^-k_FMnk( z^24R9MkMxzkt_Wiu6aPHLt`){DGTmy&jBks0?ytyy;Rl8xhFL4o9cKq5C$dj=@~;Q zdE5FL%Bt}Zl{bPiwc=>D|dIG)H6)IiHI(FDf;xF^hgwQ$g(D?>2v|@GOHl8FVL)txwL~Ro23f z_RfLHxow&ZN#OAOzma?>wNr?D*hFsn1k@cpLMb@mDjwE$CN+F%T~x!Uzkj3$gsPw7 zCtm4MrXejcDt2Vou~$SgF!H71^}qeK&0j5kgmPWMYp3v91jZdbZ@&XUK?4-k>bLY9 z4a;;P3m;-6hQOvTzCj=K>6+XZz;sILJ_gMaq3vGDh(eR( z&v`&kCl)W2ScE^E7u!H!f}!%IhsXu`W*j}w5Wd(a+YU(X<6@?*b3Oirmt1}MaN@;e zj;r(BcIr@>{G|YvPA2Cro`b3U|6}i6;G?Y0#Q!9dKwtvzprWWKu|x%D{In{GzFbI~er3>qUako1#4qC$6rG$o@3jmhF3?d19KG2ez z>P^vOf7%!H?W^5esEPJW1FJcAf&WZHaA*T-HyFBc(>m zsPWVPMtr0m^LPt(;Nw6OHqm5oM~}uGr*cfIVJ^!y8Ql61sGchWe@0C+*Dt|IQTwwi z>O&(6dB*Lb%VK4zhp4|ir619rcR95H^bv|7Dnua zgI%#QWb-IgGQ2R7oU|yCtY}EyyfRs}1|y{~@tjr)X;-Bpa$I1wy&)M+p}|dtTREkk zVuy&?fEWCd^8e;ttJF$GVXE2Isy+&`S4K*+*#ACSInS2k*xZq21IJEGR1SCciAxl# zUzwb+3D*7{Bq2L7O@~gsTZQhDP*O)iykAgL(%et1(xF9s%1_k8I-yEW!tbht;cAmA zTurg(0Z1pCG>-}Rp|7P`7lh~Y{!s&vz)}KI zGl=+{K)aY^WPDbYULw zuYs`YR0&^n%dNp(xFRtO;PNf0e0F%L_K47AhZiLi5x&#O`>Y5zNV0TqJd7WV-U-!0 z^^<n_G2}sy)a~Gh|TBs4AX% z!N{)+~z{N85SAM2MB~gb5pggMpfAs|8{bD#&2h9*09FF%+(S@M~y24uD-Y*#iA? zNvihR0t0&~@Abvj3k80>mG*>@k=%+v`YKE)uO>rknUwMKmG4;wvm=$y{!P@7hMC~Jullh!lP$Ps}Az^8O)O;0QstBK|RRPY_8!FFI;bkf; ziKi2m1GQp!(|6LA5fbh4&p^EU)`uvliyY={E@+E^j*QkRJEgkyyJ9V2#pO6O8)Jpw2p=lM%y))1r9^5_4Z3G)4URQprUAl%+sD^o_ zMJ6Dx#f&bTIfVoqu0FAnQMk> zbjG-DT}e3~<*GGiA9_bt&?~8Z?PV`MSt7cTYjcGzT)VlbBsGE_$TF~Q3~}<JMk~^N(|c@f9x@14@07aY&K{SA@YrqEAT_LE&K4ok)KR*Qv*$*`*9! zT9T@i4r>4i)X6F=B~SgHMq%>qr;KHYzOXQ2b8AUcGkaisUdUCmRN8<+Uq61vf?=_b5}wsfp4dnWF9zCbE}TgKw@? z_s@b`RqiQ+WYPC@x@kv366lO1RYlSuCbDbyo*cgrme!%OA(pyq_657szD9U|S*iuVSykCh~36a(C4jpeL)Rql;T?%oz zm5}v6A4>A9goysaexnhWtjGKk@?rBnWj)bO0o+cJ`iZo<*XRD_yWsppzAFOVJxRC1 zkBIKBHdbOcX`Rs&Ia6MmycletxU4-jJSTM{_2_sHM8>Ph5qhZ1>`Drf<2g#;s-|Jo zc$Kw&TzS6?LT_Plm7@h2U08ZZeQ_aZ_lPk4dk&DFzS9SkRy05)6 zbt=3dLhuuWLrApK1jobR!jf*uNSPZ(E3?M;luU`)TNdZg)De4YY9=f~ICUCj#EsY= zj9nfoZqG^C5KOMMh!#walq!$hG*A8Z5t7yqJa~&QXR%Z!c#YkldeB5sy-3ZbfwjKi zH4?BQJ(w>m($u#fRz#4xoaxqubg8qbi(I0Yox73X;r@K8fa0g7`se|sbeETVGBqwY8_5yI79d>N%w zqyh)?8!N8+Q}tw%VSs}@G$#B&skSUG#!X#AcG+9)!#ft%V_S$4;{SvK$<*_67%`R< zdh;SZQ}fQ$U#V(e))%wuIq~lbg=Hd2)lyKPeA_(Aep@72P)I?d_7g%;>L{nwM(%0! z#ZP=P7ZqY%!@NA6NN#T;s%m@tz#rF&4y)jgH|snUO?rl~VAkMX_auwe)KyZ3WWhhG z#J%zT)MNt{q3<6ZNY$%O2q^5~Dl$!E;DmDS;N9=V$K`?E23gs`bRCt)YIn($RILnV zkRkaHZvDk2KhEIdbD^?KU&6&3AesV|p2LRA@6*MW=BcL~L;#8Msl9wElo=LuOa)RjC*Pz|qtuRqTw%n17< z^Ld{7?91R;>xGv~{tvMs$^AP#LF>1BIb!c;xqS%bt+cUvU_j}MC^S#*u9(p|+;QK?_V8M^byt&lzsB2M%5iowjouACk! z9CYRM*@eX&i1Q6%7xp9aq2uloFq3YMX9f#W~*E} zk32lp|9t5*Bv7~>l)y2O$Z|^x9DfAddcjJjG12&OkSFU&@`T6T$WV~ zY(>zqkudH`okW3R0J$rcB#sIVLZMP3#2t23^17VBRmrJ2#WCM?Y{SUx_XFw<8)X2f zodu@}wNj7F)V|`>415Znf~;;etlrOw^kfB{HRj_I0T2IjFxuA~R!@Le_0|SlCI_qc z_T^+NI5_yqX*5M*-Gfuu8MoJ~`&JAuTxT4u7-m#EWhusf-_`Y@;yj+IJv&b#uBe}V zE+L{qWvgbsr)CT;L-V3qpWOC0%l6Oe0|JcC-qSA+Xjj(92IjYPrnqI?UOX z?npOWCh4m#2t7GGSpCtMu=V_*h_yI~Ir9dxjL}(S=P6R#m}l}l6|8OVXFYKmGd9Pr z&%a*11bNbTQTqzNV+Z5%_Ev@JaheKsTK{TJF{Sj>cGpc-iaHy;&sxReMJ37-$=iBC5|gg~Y3gJabFA>j zEziFkw*Ek%1c1US>L7~rvCHc&lW_MlapJ+f+#e8SfGj05wQJKUXKiDF6rG*t(jCrM zWg4?yRne+OI{Fk9O|!VIprdn$PJS~N6GAKUS!1A+fikSSzLOi}qUpJGPuOS#7uINe z-uHW9M6~|aJQawREt|QSj$a?j$wg1i12|<(vkKiLZkZ_1PZ`gXrpdMd-EFeM?wZVP z=)1_ID9#Gwf=RMWk(I|#rLp0 z$Z7>yVFskLJxHf#LF#ubNZ$}hi)C$)ENJC6rf%)GmCvpFN)tL_asK>gfII>aSqGTq zl9iacPoUP7%%@vM=nWZ@)$)7HY=>S)O;94lF~Xe(CN+*k>JfHwI@ZD)zNuunzI$2a z0*cwozCOhRvAa^=dq9JFSm4|*Dj_I-@_bnh&n|h`OLo%z2BStNtCw}aH|q|rv8r_k zk7e*EVDn-%*pNS~K2=ysO0hPORooz19blEp{z%U>vOHI3 zKr$-)5!pMYceVCYryxc%c123LN>le$d}1NMIUA1#Zr}<$4|vCl;jdhfkrmwjk|BYG zL;9agD7_$c8wrjm9M7Am2>RllJgr-c)L$@%C?y;ZgH}RF=a;)X1pf?uBMp^UKRgGy zUZ1Da@;v5TVs;z$&{L6nmHJJ|f*(WVs9J)?SqrtLe)Ao^QPN@_-n1TjRlb(JWj*n{ zcn}GTaajgjS8`G9{z38HJXBROEIs+viOd$MuL1U@a(tE6&IYbdh5~YdG8AZ4ziZTQ zgL-XylVBJYSy3&iN@%6u?lCu~lrdPFinQw4xhl z%XZQl_R7~MZ*E;I^zU|;l%X)k4zpX{&}Dag;d#<8d5Ouc+7+|!rJLW`3aa(&md|^O z?qdJ@eC0g*9FASTfM0gYeV!vXAr=Mzyq@oLiJ5N=XY77fLNDH-t8MnOM}JFN zJkcuYnEz&>U|@kiebMl4U{2LAQyS)(8m5Fg!ThjN!JN+(LRA>3xIUJ=vo)54U`Ys< zoU?Zo`ryPa@~VQr_?#}3-e12%abaQ}`APH~j!ATmZZJ90kQ$>Cja0K*LGCt1M*+AZ z@h~}97IOzp5fIQ+UemI6Z*b-*>8ssS2Zp}lq~9}1>Yo)Tk@|W;97+CErTKP?DxvQ+ zMPk7}f=b$nyCmnoLgD#;9L|;lf5K63r_N%06Lq7VxQ7%;^=l`jwUg?XF+SmEQAPbk zgQ@E`I+F;u$_U9B301$u!(Jj8ZWInF#3d?`u(jeUX}Z4NQG*i~RSQ6${=~&7@6;D(n7VBB!YnZIr{X(Tfb7b|Nm+2xbB+ zcYtTL>eQ(RRnmtQDdbl(ahftr@ybvTY|bL*x^KJWykF&$-_GRROz}IqMpD&? zfwLr;kY0$de^PZsYDPGHiB5}Tn3Mjhm*zyp8NSSf1JvM|8I{RbD-vsf29ONOEh5G+ z90y6H=3JIP&1oZ1cZ~N(4#ubw&MjJzs5a1q9^#iaStNYrQ;Brp0sfrA@vI<^+`Vp4 z#P_ViTH6Gx*Uu+5`BTXr;gYfahW&2)8aq)ZvFcZkK1nqO)$To91zw>&`o5g>b#8Qf zJnEKKVX;+BL9Ifydk0yGuL{2>_2`vU6B>M@%F#gVx?iu-{d%q9XOEq)0hOJYO`+2NMmJG~ z>uwC2pYyr`k-0#T`Qlas4h%;s-K>x))$ zYPxs)1nc=rN0wi5X<^lQDn*mJY!^wMv|_O|e>7RtpsQuAj##TWfnkkZzC2 z7n(D#z18UhT5rEMI4L+eczu*dv}|6@K9m|PWwHyxq(^@rlUW}A^S0A1m-@YeLHUb3aKM>zOaLPTX zZ|}v|>HMB^${n)BR85)H{*m*K9LC5DpYoIJ@IzeU%J@E+&7hYz49^KAc>uVfOTAWs zQN?$v*w2U$*0f5UIF6c8wTJnzC)X|ejfC0<{^ahGob=yT&WAs0@OteBe|)=7cKdH= z&1he~?|V2q{9@*J)BbbbI9B`f%4bIVSCF3e4|UW2i#yuC-#@U7k0f&=Lzi>e*0hmo z|J*KA8b>Xk958Q9Mr#%mRlR9$_5Qi>ogMVpuiEmd??8`VR?e65!=d)!QSB+@z?{WO ziB*5u`Cv|2uXDc#O>-#GFxwZrWyz>LugX{~59g*fugKK~ffrxmMy(+#Gf9J+B=rxB zC8KD>J;7U?{X2yjGTUFvCy|~IskUhmxJz9Hd z37Yd$(WR-!?doTgN- z=-U|V;2*ZfuG?0ex@T!_&T^y)WxNNmVvv3%Oq7oSeH6t$za(V0rgpE&Rrfr^Fi;3% z(z3grdgC<}Stlmay~r1JLv-W^8T}$V<3sDkAfAgzOK}=XZwA z<2WwlmT4~Jf7Ka+?Ms8T2gg}YEr$_B2R}%ZWt>)$b3JTTQq_2*3qWL7Q`9FtfYShY zl%n27LPf%=%QCt0yk%V&_Y|Tslk|3zq_*D*<7ROEcGyAnfyJ^=WwWxL%}RR1Tg0bd z&P=&PVt$nR!%fK3*|b-LW})H z8#Qt8W^!_2bm-Pd@(M1zVB&(SD6yg2c`$rr#9kj2HM;y&cU(*i@u;zfi>hK&Bp}7p^#~ZTWEnQSpb65rQN42C+ zeo49p>{wOsl3Z&T)l&AU^~@5=c4#gzzJD=&)vD_&LrHRA$xmfly5HG2S$7UNyTuDU zazBHCG+O(Xn5cWEscoHHz2ani<3}T-zU?vpXXy1R%yqsD6*T++e{WVrual5&#MXp>A!6u;C2Ha?Gkn44FA355*O@2}_e``8s)%}j@)a^NN}- zd5znBH6N*#=o7P7%T@05*)@ku)2vIM+No*Ewkqin%6hGHw`v_xC($gA|5#e*j3;pP z#fm9Db@KXyVMqQM9s}-tS&r6<4c#Q~Mm2688S|~L@bentx!p9F zdt)5r{WMgox#3Ty}bV(?Uxm=|AE*_TAuP*`kEj~J3h>u2#f0f%o zV^|NKa~T?7^@eBu3DIQi1TGHsj@nljvPc`0!8RuKpwE}ukZf+TaAVBJvsy>sM%8U7 zeB^IRa!}wEHg1KA+|Jn~?b1<`{StI*vfr!8{;Zlzy|gDax$5(!W{!~8Km6~=MRsnh zpH5+a@z>Jy1M6_4uoP3@cXC;ncJzjg3O`1xXLP2fdzFt_nyZG1f2IXt7uxg}(xzCV z`>}4*uXUhkP~4>%)}_QDj}nKnC~-|$Pbd-ke5u_w9cp+MTYX}*vRj^YoArU`{^QM> zxTGhQdFb<{W>{lDV*GLH(4@$ah0Tb%`&HL2Sn{Ki9IVqO&-ghW)55xQJ1yvF)HLxk zhP;Rznc+`{&UD+mA@1#1br%889Y4Rq0Eh_$J$@?FsEmp`W&C9F*z5EmX}rP=pBKvz z>2Tj2TOQux}ddsaI1ZdBJKt)QdXZ5XQsxMCUSQUTI5zEAsUsRjq1jm}rz!2?a0e z45W20e945&EzuF(3>9M1uQ=x4srt%8b+$e_<#H2^nUqtOOF(#VK;#vu1u_9T}3yc+*hSKe4iXFx3Q@W}n zL$r-Sn0GSQGQ5otk+?B6f?Ih0m2s|X_FM9-JGPtb!Lp|K0J#B)48U2Bt7NQ9pA#vY zS`v6@U{w)2=QI1WY?!$*oj3D+ndQ0F!;P9NB;ApyMIEG=orha$1_Ahx*&NYCQ`L1e z$9cM79nBHt!Y2r}(i~ktL8xMBRvEdRXH;vf#>pDFI%D^Lpy=GCeblkePU|<=`BlAc zV+p5}CWPijSh&T8?vG)3*gh0XKENuDOWI3ZTL?MTvWDwewsjciz^oLO`$kp_U4d;2 zbqD^`Sn`~jLwfOc7P6$fkb98Ti@l?Cx0RTVG$IGz7BS!RCSujqyc!bkT~YSl%q!B< z^vWz$QaEbe**VkT>H0Gs`?@dZvYcYpTFJD_s&RZHkqyNS`b5?-`cL$*JZ+S+UnYYGsUf%}V#n^EahD-Lpc<_anI2 zUEeUBCs=pZ5vAy^H~#CVYmOAUO& z#3)B4IBr;)#*Vk1tCxvUFHYQ6*cF}0z&i8kjSMBS==ik^DZ1k^{xO=#(bn%1iOr68 zYY)rXk@4(ZZJ$T1qqJgUra8@-RvEn3r!TYWt|N8L;c6;1=Mp~J*jRyPl7mDk86`K1 zCBzo_c7PkMyx`!+woE$aU)TORC!4AUj9QmIVN`oisp~kO*8aNkRg}J`9&kg@T+b7@ z(Xyo&Z(>ZpWuj=9IFHCQzACMh z<|;r#d=x9tSHC97Sx%~{Kw650B^#X^>K`h$Cakq49HxC}oR+cmvxf{x7rgoaNy>Iw zu|u`(<#S5y16af1&1&6F(n|Y;QqbXT)ml4b_SnP?`}8-kP7Czc+D2JZ2ck!%(Jop}A(WS`qUI z>$=%zrpMPDP%E#?)#CU?S#HR}I=s4UgVLwEG6<{O7PZP<7gVIWCV%$O-uE_p?SWr-)?mu&%#jNgsmk z>;p`QZ?lMMe_c5W^b)IXB_jmm;KuJW6TSh&20YpDE|L`(e6Us8(qnK8AGLjeV3f(+ zn-p^!!3gHwCLHbxMhnPpnEOKe6YMz|!Kj0|KNRNvP`)7;@la%g;%)?^by_eoT>T-Y zmnG#ow=g-?B(LyoRzplHW+Y*D1|94sdu+a>TQai%=gD1s8p)hgi!UScy}s&OCdC?hKDn;B5# zs%Mr^!GzA#v{X$^SCJWnBRm*pp}=bo37$df_vlED96r;4_|0&AQZBlkT!!mO4A(bz z25TmWLw7?eh_ci&geiMBK7ax2 zJeCo$bzy10unJ4Ay)oG~(pozD6fNO_TTKC(jHe#}r71Ohka~3tZv*iB)HZI)<4C{EDvOB)~5Vx*k@^M9TN0o>vmPJ zaU&^GYn`xvWw5PD=1Z&YXQ(4&b}AN|AjQEBn;=!a)xogzFk>2|Du2|T^yxgJIBHJ~ z8*n+*jp>0kOLE8_D#JkhGs~&B)}#GQ6hCzsNr3;(c+VC#yx@HtdW1}MO6WmLjAG=> z_NJ=-?d;Waq*$!z)viS;$H^eHa&65+n}dxX2SUD2!v2r#Q|t-(ArvDa`&&hD@aPQX zi0IUwN0%seQ69k!)~t}l18*dXEMG-6?YG-LpeX~j`-|sP@X$xdeuHEDfnf9I=8x^Q z_C@IXmj|1-N}P(I)kC~>)$F)2L0J)n{3n%!{L4fB7{*kZcRHs7*{XYsMigz`O=0`B zko~rSYp-qIA>NSxgJAO}gcf&ZX0Gw`I6@P#m{V+~Db|MVeL5FvJB5hm;Sp)PJa^;# zyK1Fcg=N~DD6eyNls*f~#xV9_*n3pHSn1|8id5LY!4@Py3;WjyPF9|`S#^it6C?fx z!!}Q3E$^=IXdT1;#<0IhV5=EftS2g1Jb%&v*--DMPas0S_f8xUtb+biI6GMLy0R1q zgZolJ^e=Gs%yML0*gL3JeK0--m_xh{f`lGyUkFu-Me7GlLL!pz!>mfwKszVuMN_=4+Kr7_3YI%?I$is@4W3xwy(){Egs zm*Y=Y9KT6c<;jArkE?+?h`4JR&LFiAzDh>6K9FEGeOD1?W0?69Btt+WODv)-*59H|LeZzb?jj18B z9!Q=vEEyY?pPV|ZFc}|KL{GgsAKileQ0IPXvR?ZIvKm6qJx8b!^t}=CZ#>$FpvE&Q zcz;4Ez>2%mYf{@9t=POqD%+QUsA$8eXtiR~t!nMLU%0AweSxeY+X>lC4AA~}{I3W7 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