NOAA-EMC / NCEPLIBS-w3emc

This library contains Fortran 77 decoder/encoder routines for GRIB edition 1.
Other
2 stars 8 forks source link

additional dependencies including on NCEPLIBS-bufr #169

Closed edwardhartnett closed 1 year ago

edwardhartnett commented 1 year ago

When I try to build with shared library support I see:

/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `readmg_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `dbn_alert_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `getarg_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `w3fi33_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `ufbint_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `getbmiss_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `dumpbf_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `iargc_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `readns_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `status_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `int2ch_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `closbf_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `datelen_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `ufbrep_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `asnqunit_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `ufbcnt_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `openbf_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `nemtab_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `consol_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `getenv_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `readsb_'

At least some of these are in NCEPLIBS-bufr.

I am investigating...

edwardhartnett commented 1 year ago

@aerorahul @Hang-Lei-NOAA @AlexanderRichert-NOAA

edwardhartnett commented 1 year ago

When I link in NCEPLIBS-bufr I get:

/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `dbn_alert_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `getarg_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `w3fi33_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `iargc_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `int2ch_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `asnqunit_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `consol_'
/usr/bin/ld: ../src/libw3emc_d.so: undefined reference to `getenv_'
edwardhartnett commented 1 year ago

I found this: https://nixdoc.net/man-pages/IRIX/man3/f90/asnqfile.3.html

The function w3fi33() is mention in this Office Note 184 from 1978: https://www.lib.ncep.noaa.gov/ncepofficenotes/files/013BA20B.pdf

dbn_alerts is surely related to this NOAA page: https://www.nco.ncep.noaa.gov/pmb/docs/dbnet/doc_2.95/161.html

edwardhartnett commented 1 year ago

Here's some of the functions that call functions from NCEPLIBS-bufr:

find . -name '*.f'|xargs grep -i -s readmg
./w3miscan.f:         CALL READMG(INDTA,SUBSET,IBDATE,IRET)
./w3miscan.f:         CALL READMG(INDTA,SUBSET,IBDATE,IRET)
./w3miscan.f:C NON-ZERO IRET IN READMG MEANS ALL BUFR MESSAGES IN FILE HAVE BEEN READ
./w3unpk77.f:         CALL READMG(LUNIT,SUBSET,IBDATE,JRET)
./iw3unp29.f:         call readmg(lunit,subset,idat10,iret)
ed@koko:~/NCEPLIBS-w3emc/src$ find . -name '*.f'|xargs grep -i -s ufbint
./w3miscan.f:     $ UFBINT_8(64)
./w3miscan.f:      CALL UFBINT(INDTA,SHDR_8,09,1,NLEV,SHDER) ; SHDR = SHDR_8
./w3miscan.f:      CALL UFBINT(INDTA,RHDR_8,04,64,NLEV,RHDER) ; RHDR = RHDR_8
./w3miscan.f:         CALL UFBINT(INDTA,PROD_8,13,64,NLEV,PROD1//PROD2)
./w3miscan.f:         UFBINT_8 = BMISS
./w3miscan.f:            CALL UFBINT(INDTA,UFBINT_8,1,64,NLEV,'PH2O')
./w3miscan.f:            PROD_8(8,:) = UFBINT_8(:)
./w3miscan.f:         UFBINT_8 = BMISS
./w3miscan.f:            CALL UFBINT(INDTA,UFBINT_8,1,64,NLEV,'SNDP')
./w3miscan.f:            PROD_8(10,:) = UFBINT_8(:)
./w3miscan.f:         UFBINT_8 = BMISS
./w3miscan.f:            CALL UFBINT(INDTA,UFBINT_8,1,64,NLEV,'WSOS')
./w3miscan.f:            PROD_8(3,:) = UFBINT_8(:)
./w3miscan.f:         UFBINT_8 = BMISS
./w3miscan.f:            CALL UFBINT(INDTA,UFBINT_8,1,64,NLEV,'CH2O')
./w3miscan.f:            PROD_8(1,:) = UFBINT_8(:)
./w3miscan.f:            CALL UFBINT(INDTA,UFBINT_8,1,64,NLEV,'METFET')
./w3miscan.f:            METFET = UFBINT_8
./w3unpk77.f:      CALL UFBINT(LUNIT,HDR_8,16,1,NLEV,HDR1//HDR2);HDR=HDR_8
./w3unpk77.f:      CALL UFBINT(LUNIT,SFC_8,8,1,NLEV,SRFC);SFC=SFC_8
./w3unpk77.f:      CALL UFBINT(LUNIT,UAIR_8,16,255,NLEV,UAIR1//UAIR2//UAIR3)
./w3unpk77.f:      CALL UFBINT(LUNIT,HDR_8,9,1,NLEV,HDR1);HDR=HDR_8
./w3unpk77.f:      CALL UFBINT(LUNIT,UAIR_8,5,255,NLEV,UAIR1);UAIR=UAIR_8
./w3unpk77.f:      CALL UFBINT(LUNIT,HDR_8,12,1,NLEV,HDR1//HDR2);HDR=HDR_8
./w3unpk77.f:      CALL UFBINT(LUNIT,UAIR_8,4,255,NLEV,UAIR1);UAIR=UAIR_8
./w3unpk77.f:      CALL UFBINT(LUNIT,CAT8_8,12,1,NLEV8,CAT8A//CAT8B);CAT8=CAT8_8
./w3unpk77.f:      CALL UFBINT(LUNIT,RTCSF_8,1,1,NLEV0,'TCSF');RTCSF=RTCSF_8
./w3unpk77.f:      CALL UFBINT(LUNIT,RAD_8,2,255,NLEV13,RAD1);RAD=RAD_8
./iw3unp29.f:C>    checks ufbint return code rather than value=bmiss);
./iw3unp29.f:      CALL UFBINT(LUNIT,VSG_8,1,255,NLEV,'VSIG');VSG=VSG_8
./iw3unp29.f:      CALL UFBINT(LUNIT,HDR_8,12,  1,IRET,HDSTR);HDR(2:)=HDR_8(2:)
./iw3unp29.f:      CALL UFBINT(LUNIT,RID_8,1,1,IRET,'RPID')
./iw3unp29.f:      CALL UFBINT(LUNIT,RPMSL_8,1,  1,IRET,'PMSL');RPMSL=RPMSL_8
./iw3unp29.f:         CALL UFBINT(LUNIT,RGP10_8,1,255,NLEV,'GP10');RGP10=RGP10_8
./iw3unp29.f:         CALL UFBINT(LUNIT,RPSAL_8,1,1,IRET,'PSAL');RPSAL=RPSAL_8
./iw3unp29.f:      CALL UFBINT(LUNIT,RAT_8, 1,255,NLEV,'RATP');RAT=RAT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,LVSTR);ARR=ARR_8
./iw3unp29.f:      CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,QMSTR);ARR=ARR_8
./iw3unp29.f:      CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,'HOCB CLAM QMCA HBLCS')
./iw3unp29.f:      CALL UFBINT(LUNIT,RCT_8, 5,255,NRCT,RCSTR);RCT=RCT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,RMORE_8,4,1,NRMORE,'SIRC TTSS UALNHR UALNMN')
./iw3unp29.f:      REAL(8) RID_8,UFBINT_8,BMISS
./iw3unp29.f:      CALL UFBINT(LUNIT,HDR_8,20,  1,IRET,HDSTR);HDR(2:)=HDR_8(2:)
./iw3unp29.f:      CALL UFBINT(LUNIT,RCT_8, 5,255,NRCT,RCSTR);RCT=RCT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,NRSV,'INPC');RRSV(1)=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,NRSV,'TIWM');TIWM=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,NRSV,'SUWS');RRSV(2)=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,NRSV,'ITSO');RRSV(3)=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'PMSL');PSL=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'PRES');STP=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'WDIR');SDR=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'WSPD');SSP=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TMDB');STM=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TMDP');DPD=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'MXTM');TMX=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'MITM');TMI=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'QMPR');QSL=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'QMPR');QSP=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'QMWN');QMW=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'QMAT');QMT=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'QMDD');QMD=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'HOVI');HVZ=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'PRWE');PRW=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'PSW1');PW1=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'PSW2');PW2=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TOCC');CCN=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'CHPT');CPT=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'3HPC');APT=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'24PC');APT24=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TP06');PC6=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TOSD');SND=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TP24');P24=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TOPC');PTO=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'POWW');POW=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'HOWW');HOW=UFBINT_8
./iw3unp29.f:               CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'POWV');POW=UFBINT_8
./iw3unp29.f:               CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'HOWV');HOW=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'DOSW');SWD=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'POSW');SWP=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'HOSW');SWH=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'SST1');SST=UFBINT_8
./iw3unp29.f:          CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'STMP');SST=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'????');SPG=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'????');SPD=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TDMP');SHC=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'ASMP');SAS=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'????');WES=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,CLDS_8,4,255,NCLD,'VSSO CLAM CLTP HOCB')
./iw3unp29.f:               CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'HBLCS')
./iw3unp29.f:               HBLCS=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'ALSE');ALS=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,TMXMNM_8,4,255,NTXM,
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TP01');PC1=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TOSS');DUS=UFBINT_8
./iw3unp29.f:      REAL(8) RID_8,RCL_8,UFBINT_8,RNS_8,BMISS
./iw3unp29.f:      CALL UFBINT(LUNIT,HDR_8,20,  1,IRET,HDSTR);HDR(2:)=HDR_8(2:)
./iw3unp29.f:      CALL UFBINT(LUNIT,RCT_8, 5,255,NRCT,RCSTR);RCT=RCT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,HDR_8,20,1,IRET,'PSAL FLVL IALT HMSL PRLC')
./iw3unp29.f:      CALL UFBINT(LUNIT,RNS_8,1,1,IRET,'ACNS');RNS=RNS_8
./iw3unp29.f:      CALL UFBINT(LUNIT,RCL_8,1,1,IRET,'BORG')    ! Effective 3/2002
./iw3unp29.f:         CALL UFBINT(LUNIT,RCL_8,1,1,IRET,'ICLI') ! Prior to  3/2002
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'POAF');POF=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'PCAT');PCT=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,RID_8,1,1,IRET,'ACRN')
./iw3unp29.f:         call ufbint(lunit,raw_8,1,255,nlev,'RRSTG');raw=raw_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'DGOT');DGT=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,LVSTR);ARR=ARR_8
./iw3unp29.f:      CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,QMSTR);ARR=ARR_8
./iw3unp29.f:      REAL(8) RID_8,UFBINT_8,BMISS
./iw3unp29.f:      CALL UFBINT(LUNIT,HDR_8,20,1,IRET,'HGHT PRLC');HDR=HDR_8
./iw3unp29.f:      CALL UFBINT(LUNIT,HDR_8,20,  1,IRET,HDSTR);HDR(2:)=HDR_8(2:)
./iw3unp29.f:      CALL UFBINT(LUNIT,RCT_8, 5,255,NRCT,RCSTR);RCT=RCT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'SWPR');SWPR=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'SWTP');SWTP=UFBINT_8
./iw3unp29.f:         CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'SWDL');SWDL=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,LVSTR);ARR=ARR_8
./iw3unp29.f:      CALL UFBINT(LUNIT,ARR_8,10,255,NLEV,QMSTR);ARR=ARR_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'RFFL');RFFL=UFBINT_8
./iw3unp29.f:      REAL(8) RID_8,UFBINT_8,HDR_8(20),TMBR_8(7),ADDP_8(5),PROD_8(2,2)
./iw3unp29.f:      CALL UFBINT(LUNIT,HDR_8,20,  1,IRET,HDSTR);HDR(2:)=HDR_8(2:)
./iw3unp29.f:         CALL UFBINT(LUNIT,TMBR_8,1,7,NLEV,'TMBR');TMBR=TMBR_8
./iw3unp29.f:         CALL UFBINT(LUNIT,ADDP_8,5,1,IRET,'SFTG ICON ICAG ICED SFTP')
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'WSOS');PRODN=UFBINT_8
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'RFLG');RFLG=UFBINT_8
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'PH2O');PRODN=UFBINT_8
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'RFLG');RFLG=UFBINT_8
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'REQV');PRODN=UFBINT_8
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'TMSK');PRODN=UFBINT_8
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'CH2O');PRODN=UFBINT_8
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'SMOI');PRODN=UFBINT_8
./iw3unp29.f:            CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'SNDP');PRODN=UFBINT_8
./iw3unp29.f:      CALL UFBINT(LUNIT,UFBINT_8,1,1,IRET,'ACAV');ACAV=UFBINT_8
ed@koko:~/NCEPLIBS-w3emc/src$ find . -name '*.f'|xargs grep -i -s getbmiss
./iw3unp29.f:C>    getbmiss rather than hardwiring it to 10e08 (or 10e10);
./iw3unp29.f:      REAL(8)      BMISS,GETBMISS
./iw3unp29.f:         BMISS = GETBMISS()
ed@koko:~/NCEPLIBS-w3emc/src$ find . -name '*.f'|xargs grep -i -s dumpbf
./w3miscan.f:         CALL DUMPBF(INDTA,ICDATE,IDDATE)
./w3miscan.f:     $       'FROM DUMPBF (ICDATE IS: ',ICDATE,') - USE WINDOWING ',
./w3miscan.f:     $       'FROM DUMPBF (IDDATE IS: ',IDDATE,') - USE WINDOWING ',
./w3unpk77.f:         CALL DUMPBF(LUNIT,ICDATE,IDDATE)
./w3unpk77.f:     $       'RETURNED FROM DUMPBF (ICDATE IS: ',ICDATE,') - USE ',
./w3unpk77.f:     $       'RETURNED FROM DUMPBF (IDDATE IS: ',IDDATE,') - USE ',
./iw3unp29.f:C>    bufrlib routine dumpbf).
./iw3unp29.f:         CALL DUMPBF(LUNIT,JDATE,JDUMP)
./iw3unp29.f:     $       "RETURNED FROM DUMPBF (JDATE IS: ",I4.4,3I2.2,") - USE ",
./iw3unp29.f:C  returned in DUMPBF ...
ed@koko:~/NCEPLIBS-w3emc/src$ 
edwardhartnett commented 1 year ago

Also tagging @jbathegit and @jack-woollen . Perhaps they know the history of why w3emc, our GRIB1 library, calls functions from NCEPLIBS-bufr...

Hang-Lei-NOAA commented 1 year ago

The bacio dependency was added by Kyle. Please see following: https://github.com/NOAA-EMC/NCEPLIBS-w3emc/pull/129

On Tue, Jan 31, 2023 at 12:41 PM Edward Hartnett @.***> wrote:

Also tagging @jbathegit https://github.com/jbathegit and @jack-woollen https://github.com/jack-woollen . Perhaps they know the history of why w3emc, our GRIB1 library, calls functions from NCEPLIBS-bufr...

— Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/NCEPLIBS-w3emc/issues/169#issuecomment-1410802990, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKWSMFDYM5LTPJRW7JJOSLTWVFFDZANCNFSM6AAAAAAUMWPUFM . You are receiving this because you were mentioned.Message ID: @.***>

edwardhartnett commented 1 year ago

Yes, we knew about bacio. But bufr is new. It's not considered in the build system.

And, even more disturbingly, we have a bunch of other mystery functions...

jbathegit commented 1 year ago

Sorry, I have no idea why those NCEPLIBS-bufr routines are apparently being called from within w3emc. My guess would be that the w3emc routines in question are reading BUFR files, which I guess then begs the question of why the application codes which call those w3emc routines aren't just directly calling NCEPLIBS-bufr themselves?

edwardhartnett commented 1 year ago

Well we will simply have to add NCEPLIBS-bufr as a dependency of w3emc, and all that is entailed by that. Which is a lot

But that still leaves all the missing functions. Where are they coming from?

aerorahul commented 1 year ago

Well we will simply have to add NCEPLIBS-bufr as a dependency of w3emc, and all that is entailed by that. Which is a lot

But that still leaves all the missing functions. Where are they coming from?

I would strongly suggest not doing that. Dependencies linger for a long time and the implications of this explicit addition of the dependency tree will be far fetched. The reason for your discovery is that this library is now being built as a shared library.
Please consult with ufs model, UPP, ufs-utils, GFS, RRFS developers. @arunchawla-NOAA @DusanJovic-NOAA @junwang-noaa

jack-woollen commented 1 year ago

I remember why the iw3unp29 calls bufrlib. It was created in the mid-1990s as a prelude to switching the ON29 database to BUFR. It was a look alike routine which mimicked a library routine which decoded ON29 data, so programs like prepdata could transition to using the BUFR database without further ado. I think w2miscan is a similar story. The simple fix, from the nceplibs point of view, is to delete it from the library and move it into whatever apps actually still use it.

edwardhartnett commented 1 year ago

@aerorahul I would love to not introduce a dependency here on NCEPLIBS-bufr. But I am not introducing it, I just discovered it. ;-)

How can I take these functions out? I have no idea where the might be used elsewhere.

When you say:

consult with ufs model, UPP, ufs-utils, GFS, RRFS developers

I don't actually know what you mean. Who are you referring to, and what do I tell them?

Even if the plan is to remove all these functions eventually, I can't do it immediately and I need to do a w3emc release. Suggestions welcome.

edwardhartnett commented 1 year ago

@jack-woollen thanks for the history, but it's unclear how to achieve your suggestion. If I take out the code, perhaps some applications will then break.

jack-woollen commented 1 year ago

@edwardhartnett @jbathegit @aerorahul @ilianagenkova Bits and pieces. There are 3 subroutines in w3emc lib which reference the bufrlib. iw3unp29.f w3unpk77.f w3miscan.f Quick look through libs that would or could have used any of these at some time (prepobs, bufr-dump, obsproc), i only find one reference; w3miscan is called in prepssmi.f (in the bufr-dump lib), which I don't think is used anymore in ops. In any case it doesn't seem like a huge deal to isolate these 3 codes from w3emc one way or another.

ilianagenkova commented 1 year ago

@jack-woollen, thanks for tagging me here! Obsproc, prepobs and bufr-dump rely heavily on other libraries. Would moving subroutines from one library to another (i.e. from bufr lib to w3emc) cause trouble for us? (haven't looked into this before)

jack-woollen commented 1 year ago

@ilianagenkova Only the three members of w3emc mentioned are at issue. We'd like to retire them if possible. AFAIK they were only ever used in prepobs and bufr-dump. Subroutine w3miscan is called from prepssmi in bufr-dump. I don't think that's used anymore since the ssmi data is long gone. Can you check that? Thanks! An alternative would be to include w3miscan in the prepssmi code. I did that already to process reanalysis data dating back to the 90's and early 2000's. It's not a big change.

ilianagenkova commented 1 year ago

@jack-woollen, I confirm that w3miscan is the only w3emc code that obsproc/prepobs/bufr-dump is looking for (in the source code). No production logs show we actually evoke it at the moment, and there is no ssmi data in the prepbufr now. If one is to argue we might need it for reanalysis, then I would consider including it in the prepobs repo.
@ShelleyMelchior-NOAA , I wouldn't mind your opinion on this.

@edwardhartnett , is there a version of w3emc already, with iw3unp29.f w3unpk77.f w3miscan.f removed, so I could verify obsproc/prepobs/bufr-dump would work with it?

Apologies for the slow reply!

AlexanderRichert-NOAA commented 1 year ago

@ilianagenkova If you want to test it, here's a branch based on current develop with those three files removed: https://github.com/AlexanderRichert-NOAA/NCEPLIBS-w3emc/tree/rm_bufr

edwardhartnett commented 1 year ago

Here's what I suggest we do.

In the next release of w3emc we introduce two new options, ENABLE_BUFR and ENABLE_EXTRA_FUNCTIONS. Both of these will be ON by default.

When turned off, they will disable the functions dependent on bufr, and the functions dependent on all the mystery function calls. This can then be used by groups to test whether these functions are ever really used.

When and if we get adequate confirmation, we can change the default to OFF for these enables, and in a future release, even remove the functions entirely.

This way we can investigate these issues without breaking anything, and we can do the w3emc release we need.

Any objections or comments? @aerorahul and @AlexanderRichert-NOAA what do you think?

ShelleyMelchior-NOAA commented 1 year ago

I think @edwardhartnett 's plan is sound. I know the routines that are required, that look very similar in name to those listed in @ilianagenkova 's latest comment include: w3unpkb7 (in prepobs_prepdata.fd) iw3unpbf (in prepobs_prepdata.fd) As for these: w3unpk77 (looks like this one was replaced by w3unpkb7 back in 1998; see line 414 of prepdata.f) iw3unp29 (last comment was in 1998 and it appears to only apply to SPSSMI data)

The prepobs module is very involved and convoluted. It may not be straightforward to remove some of these w3emc dependencies.

jbathegit commented 1 year ago

Hi All, this sounds fine to me as well, and I have a related question for @jack-woollen and @ilianagenkova:

At the moment, I'm working to increase the scope of the CI test code coverage that we have for NCEPLIBS-bufr, and there's a library routine ufbin3.f that we're not currently testing. According to the documentation, this routine is used to read "prepfits" files (as opposed to prepbufr files which are read by ufbevn.f, and which we already have testing for), but I don't know anything about "prepfits" nor where I would even be able to find a sample file to use in a new CI test!?

Could one of you please help here by pointing me to a "prepfits" file, presumably somewhere on WCOSS2? I know where to find prepbufr files, but again I don't know anything about "prepfits" files nor where to find one of those that I can use to cook up a CI test for ufbin3.f

(Thanks in advance! ;-)

AlexanderRichert-NOAA commented 1 year ago

@edwardhartnett What would you think of setting the default to OFF, so that way it's only turned on by those who really need it? It might help discourage anyone from newly using those functions, but I don't know how much of a possibility that is...

jack-woollen commented 1 year ago

@jbathegit A quick search turns out a number of prepfits codes used in verify jobs. The prepfits format holds interpolated background values for t, q, w, ps, used in making fit plots.

/lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits_ozone.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_avegrib_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits.fd/prepfits.f_save /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits.fd/prepfits.f_orig /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits.fd/prepfits.f_nwprod /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits.fd/prepfits.f_new /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits.fd/prepfits.o /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_maxgrib_ozone.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_maxgrib_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_save /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_nwprod /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.2/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_new /lfs/h1/ops/prod/packages/rcdas.v1.2.1/sorc/rcdas_prepfits.fd/prepfits.f /lfs/h1/ops/prod/packages/rcdas.v1.2.1/sorc/rcdas_prepfits.fd/prepfits.f.ori /lfs/h1/ops/prod/packages/rcdas.v1.2.1/sorc/rcdas_prepfits.fd/prepfits.f.1 /lfs/h1/ops/prod/packages/rcdas.v1.2.1/sorc/rcdas_prepfits.fd/prepfits.o /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits_ozone.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_avegrib_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits.fd/prepfits.f_save /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits.fd/prepfits.f_orig /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits.fd/prepfits.f_nwprod /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits.fd/prepfits.f_new /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits.fd/prepfits.o /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_maxgrib_ozone.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_maxgrib_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_save /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_nwprod /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.3/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_new /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits_ozone.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_avegrib_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits.fd/prepfits.f_save /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits.fd/prepfits.f_orig /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits.fd/prepfits.f_nwprod /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits.fd/prepfits.f_new /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits.fd/prepfits.o /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_maxgrib_ozone.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_maxgrib_pm.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_save /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_nwprod /lfs/h1/ops/prod/packages/verf_gridtobs.v4.5.1/sorc/verf_gridtobs_prepfits_aod.fd/prepfits.f_new

jbathegit commented 1 year ago

Thanks for that information Jack, but what I need is an actual example of a prepfits file. I tried searching through all of the job output in /lfs/h1/ops/prod/output/20230227 for the string 'fits', and I found a bunch of matched filenames such as, e.g., /lfs/h1/ops/prod/com/hrrr/v4.1/hrrr.20230227/hrrrdas/hrrr_d02.t15z.fits.tm00.mem0000, but those are ASCII files, not BUFR files. I presume actual prepfits files are BUFR, correct? Would you or anyone else know where I can find an actual such file?

What's even more puzzling here is that many of the subdirectories in your sorc list seem to contain inline copies of ufbin3.f, as opposed to referencing that subroutine from the library!?

jeff.ator@clogin08 [/lfs/h1/ops/prod/packages (257)] $ find . -name ufbin3.f -exec ls -l {} \;
-rwxr-xr-x 1 ops.prod prod 10337 Jul 19  2022 ./hrrr.v4.1.3/sorc/hrrr_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jul 19  2022 ./hrrr.v4.1.3/sorc/hrrr_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jul 19  2022 ./rap.v5.1.5/sorc/rap_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jul 19  2022 ./rap.v5.1.5/sorc/rap_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10197 May 11  2022 ./cfs.v2.3.3/global_shared_cfs/modules/wrflib_1.1.0/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10197 Mar 22  2022 ./sref.v7.1.4/wrf_shared.v1.1.0/var/external/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10337 Jul 19  2022 ./rap.v5.1.3/sorc/rap_gsi.fd/libsrc/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10337 Jul 19  2022 ./rap.v5.1.3/sorc/rap_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Nov 11  2021 ./wfs.v1.1.1/sorc/gsi.fd/libsrc/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10197 May 16  2022 ./cfs_hur.v2.3.1/global_shared_cfs/modules/wrflib_1.1.0/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Feb  2 14:01 ./hrrr.v4.1.5/sorc/hrrr_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Feb  2 14:02 ./hrrr.v4.1.5/sorc/hrrr_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jan 17 14:10 ./rap.v5.1.6/sorc/rap_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jan 17 14:11 ./rap.v5.1.6/sorc/rap_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jan  3 07:38 ./rtma.v2.10.4/sorc/rtma_gsianl.fd/ProdGSI/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jul 19  2022 ./hrrr.v4.1.4/sorc/hrrr_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jul 19  2022 ./hrrr.v4.1.4/sorc/hrrr_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 9635 Apr 26  2022 ./verf_gridtobs.v4.5.3/sorc/verf_gridtobs_gridtobs_pm.fd/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 9635 Apr 26  2022 ./verf_gridtobs.v4.5.3/sorc/verf_gridtobs_gridtobs_ozone.fd/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10197 Mar 22  2022 ./sref.v7.1.2/wrf_shared.v1.1.0/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 9635 Apr 26  2022 ./verf_gridtobs.v4.5.2/sorc/verf_gridtobs_gridtobs_pm.fd/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 9635 Apr 26  2022 ./verf_gridtobs.v4.5.2/sorc/verf_gridtobs_gridtobs_ozone.fd/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Nov 20  2021 ./rtma.v2.9.1/sorc/rtma_gsianl.fd/ProdGSI/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 9635 Apr 26  2022 ./verf_gridtobs.v4.5.1/sorc/verf_gridtobs_gridtobs_pm.fd/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 9635 Apr 26  2022 ./verf_gridtobs.v4.5.1/sorc/verf_gridtobs_gridtobs_ozone.fd/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Nov 20  2021 ./urma.v2.9.2/sorc/urma_gsianl.fd/ProdGSI/libsrc/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10197 May 11  2022 ./cfs.v2.3.2/global_shared_cfs/modules/wrflib_1.1.0/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Feb  2 13:56 ./rap.v5.1.7/sorc/rap_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Feb  2 13:57 ./rap.v5.1.7/sorc/rap_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10337 Nov 18  2021 ./nam.v4.2.2/sorc/nam_gsi.fd/GSI/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Nov 18  2021 ./nam.v4.2.4/sorc/nam_gsi.fd/GSI/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Oct 17 16:11 ./hwrf.v13.2.4/sorc/hwrf_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10260 Oct 17 16:10 ./hwrf.v13.2.4/libs/src/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jan  3 07:46 ./urma.v2.10.3/sorc/urma_gsianl.fd/ProdGSI/libsrc/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10337 Jul 19  2022 ./hrrr.v4.1.2/sorc/hrrr_gsi.fd/libsrc/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10337 Jul 19  2022 ./hrrr.v4.1.2/sorc/hrrr_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10337 Nov 18  2021 ./nam.v4.2.3/sorc/nam_gsi.fd/GSI/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jul 19  2022 ./rap.v5.1.4/sorc/rap_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Jul 19  2022 ./rap.v5.1.4/sorc/rap_wrfarw.fd/WRFV3.9/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10337 Oct 17 16:11 ./hwrf.v13.2.5/sorc/hwrf_gsi.fd/libsrc/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10260 Oct 17 16:10 ./hwrf.v13.2.5/libs/src/bufr/ufbin3.f
-rw-r--r-- 1 ops.prod prod 10197 May 16  2022 ./cfs_hur.v2.3.2/global_shared_cfs/modules/wrflib_1.1.0/var/external/bufr/ufbin3.f
-rwxr-xr-x 1 ops.prod prod 10197 Mar 22  2022 ./sref.v7.1.3/wrf_shared.v1.1.0/var/external/bufr/ufbin3.f
jeff.ator@clogin08 [/lfs/h1/ops/prod/packages (258)] $

And in fact some of these sorc packages seem to contain an inline copy of the entire library, in places where there's a libsrc/bufr subdirectory!?

Or am I just missing something here? If so, I'd really appreciate if you or someone could chime in to help me make sense of what I'm seeing.

ilianagenkova commented 1 year ago

@ShelleyMelchior-NOAA, thanks for pointing out the risk with some routines being replaced with newer, similarly named ones! I'll test obsproc+ (i.e. obsproc, prepobs and bufr-dump) with @AlexanderRichert-NOAA and @edwardhartnett 's branches.

@jbathegit , I see the prepfits routine in VSDB's code , if that helps, can look more into it later today.

jbathegit commented 1 year ago

Sorry, I don't know what you mean by "VSDB's code"(?) What I'm looking for is an example of an actual prepfits file, which I presume is in BUFR format(?)

ilianagenkova commented 1 year ago

VSDB : https://github.com/yangfanglin/gfs_verif.git , see here

@yangfanglin, can you point us to a sample prepfits file? thanks!

ShelleyMelchior-NOAA commented 1 year ago

@jbathegit -- I chased down some prepfits information for you from Perry. I will email you outside of this github issue.

edwardhartnett commented 1 year ago

@AlexanderRichert-NOAA I would be happy to set default to OFF in future releases, but let's do at least one release which does not break anything, so people have a chance to test it out. ;-)

ilianagenkova commented 1 year ago

I haven't tested my code with Alex's code yet, I'm lacking experience with cmake and pointing to non-default library. @aerorahul , just emailed with one more question.

aerorahul commented 1 year ago

I haven't tested my code with Alex's code yet, I'm lacking experience with cmake and pointing to non-default library. @aerorahul , just emailed with one more question.

and it was answered.

ilianagenkova commented 1 year ago

Obsproc/prepobs/bufr-dump global runs with Alex's branch, https://github.com/AlexanderRichert-NOAA/NCEPLIBS-w3emc/tree/rm_bufr), completed successfully and the generated observation files match the production files.
I will now run a few regional tests.

@aerorahul , thanks for helping!

ilianagenkova commented 1 year ago

Regional obsproc runs tested fine too. @edwardhartnett and @AlexanderRichert-NOAA, let me know when you have a w3emc version with ON/OFF switch and I could test that too. thanks!

edwardhartnett commented 1 year ago

OK, I think in the next release we should turn off the BUILD_WITH_BUFR and BUILD_WITH_EXTRA_DEPS by default.

This is all now handled in the cmake build so I will close this issue.