Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

additional dependencies including on NCEPLIBS-bufr #169

Closed
edwardhartnett opened this issue Jan 31, 2023 · 34 comments
Closed

additional dependencies including on NCEPLIBS-bufr #169

edwardhartnett opened this issue Jan 31, 2023 · 34 comments
Assignees
Labels
build Building software can be complicated

Comments

@edwardhartnett
Copy link
Contributor

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 edwardhartnett self-assigned this Jan 31, 2023
@edwardhartnett edwardhartnett added the build Building software can be complicated label Jan 31, 2023
@edwardhartnett
Copy link
Contributor Author

@edwardhartnett
Copy link
Contributor Author

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
Copy link
Contributor Author

edwardhartnett commented Jan 31, 2023

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Contributor

Hang-Lei-NOAA commented Jan 31, 2023 via email

@edwardhartnett
Copy link
Contributor Author

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
Copy link

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
Copy link
Contributor Author

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
Copy link
Contributor

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
Copy link

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
Copy link
Contributor Author

@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
Copy link
Contributor Author

@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
Copy link

@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
Copy link

@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
Copy link

@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
Copy link

ilianagenkova commented Feb 24, 2023

@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
Copy link
Contributor

@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
Copy link
Contributor Author

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
Copy link
Contributor

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
Copy link

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
Copy link
Contributor

@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
Copy link

@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
Copy link

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
Copy link

@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
Copy link

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
Copy link

ilianagenkova commented Feb 27, 2023

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

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

@ShelleyMelchior-NOAA
Copy link
Contributor

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

@edwardhartnett
Copy link
Contributor Author

@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
Copy link

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
Copy link
Contributor

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
Copy link

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
Copy link

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
Copy link
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Building software can be complicated
Projects
None yet
Development

No branches or pull requests

8 participants