安装手册¶
- the directory structure is:
> cd /g5/nwpc_ep8/obsproc
> tree -L 1 nwprod
nwprod
├── batch_run_global_obsproc.py
├── build2.bash
├── build_obsproc.bash
├── com
├── crontab_job.bash
├── dcom
├── decoders
├── exec
├── fix -> decoders/decod_shared/fix
├── gempak
├── lib
├── obsproc_dump_post.v3.2.0
├── obsproc_dump.v3.2.1
├── obsproc_global.v3.1.2
├── obsproc_prep_post.v3.0.1
├── obsproc_prep.v5.2.0
├── obsproc_rap.v3.1.0
├── obsproc_shared
├── rap.v4.0.2
├── read_qcf.py
├── run_global_obsproc.bash
├── run_obsproc.py
├── run_rap_obsproc.bash
├── sorc
├── tmpprod
├── ush
├── util
└── versions
20 directories, 8 files
Building NCEP libraries¶
enter into NCEP libraries’ directory:
> cd nwprod/lib
compile the libraries:
> ./build1.bashIf successfully compiled:
> tree -L 1 . ├── build1.bash ├── clean.bash ├── graphics ├── incmod ├── libCRTM_2.0.5.a ├── libCRTM_2.0.6.a ├── libCRTM_2.1.3.a ├── libbacio_4.a ├── libbacio_8.a ├── libbufr_11.1.0_4_64.a ├── libbufr_11.1.0_4_64_DA.a ├── libbufr_11.1.0_8_64.a ├── libbufr_11.1.0_8_64_DA.a ├── libbufr_11.1.0_d_64.a ├── libbufr_11.1.0_d_64_DA.a ├── libbufr_11.1.0_s_64.a ├── libbufr_v10.2.5_4_64.a ├── libbufr_v10.2.5_8_64.a ├── libbufr_v10.2.5_d_64.a ├── libbufr_v10.2.5_s_64.a ├── libg2_4.a ├── libg2_d.a ├── libg2tmpl.a ├── libgfsio_4.a ├── libip_4.a ├── libip_8.a ├── libip_d.a ├── libnemsio_v2.2.2.a ├── libsfcio_big_4.a ├── libsigio_v2.0.1.a ├── libsp_v2.0.2_4.a ├── libsp_v2.0.2_8.a ├── libsp_v2.0.2_d.a ├── libtransutil_4.a ├── libtransutil_8.a ├── libtransutil_d.a ├── libw3emc_4.a ├── libw3emc_8.a ├── libw3emc_d.a ├── libw3nco_4.a ├── libw3nco_8.a ├── libw3nco_d.a ├── libxmlparse.a ├── make.log ├── progress.stat └── sorc
Building gempak¶
User can clone gempak from gempak_github and follow the instruction to build and install.
Enter into gempak directory:
> cd nwprod/gempak > ln -s GEMPAK7/ NAWIPS
Edit
GEMPAK7/Gemenviron.profileto set$NAWIPSto the newGEMPAK7directory:# Please configure the following definitions to reflect your system: # # Top level directory: setenv NAWIPS /g5/nwpc_ep8/obsproc/nwprod/gempak/GEMPAK7 #
Edit
GEMPAK7/config/Makeinc.commonto addhdf5libraries to$NETCDF:NETCDF = $(OS_LIB)/libnetcdf.a $(OS_LIB)/libhdf5_hl.a $(OS_LIB)/libhdf5.a -ldl -lm -lzAssume we are using gfortran in Linux, edit
GEMPAK7/config/Makeinc.linux64_gfortranto add-I$(OS_INC)to$NCOPT:NCOPT = "CPPFLAGS=-DNDEBUG -Df2cFortran -I$(OS_INC)" "FFLAGS=-O -Wno-globals" "CFLAGS=-O $(NCII)" "CXX= "cd to
GEMPAK7, sourceGemenviron.profile, and build:> cd GEMPAK7 > . Gemenviron.profile > make everything
it makes lots of libs which will be used by decoders:
> tree -L 1 os/linux64 os/linux64 ├── bin ├── include ├── lib └── share
Building utilities¶
enter into directory:
> cd /g5/nwpc_ep8/obsproc/nwprod
compile:
> ./build2.bashit compiles some utilities related to the grib file operators:
> tree -L 1 util/exec/ util/exec/ ├── cnvgrib ├── copygb ├── copygb2 ├── cwordsh ├── debufr ├── grb2index ├── grbindex ├── ndate ├── nhour ├── tocgrib ├── tocgrib2 ├── wgrib └── wgrib2
Building obsproc¶
enter into directory:
> cd /g5/nwpc_ep8/obsproc/nwprod
compile:
> ./build_obsproc.bashit compiles all the obsproc executables:
> tree -L 1 obsproc_*/exec obsproc_dump_post.v3.2.0/exec ├── bufr_datacount └── bufr_listdumps obsproc_dump.v3.2.1/exec ├── bufr_chkbfr ├── bufr_combfr ├── bufr_dcodwindsat ├── bufr_dumpmd ├── bufr_dupair ├── bufr_dupcor ├── bufr_dupmar ├── bufr_dupmrg ├── bufr_duprad ├── bufr_dupsat ├── bufr_dupshp ├── bufr_dupsst ├── bufr_edtbfr ├── bufr_geofil ├── bufr_quipc ├── bufr_raddate ├── bufr_supertmi ├── prepobs_prepssmi └── wave_dcodquikscat obsproc_prep_post.v3.0.1/exec ├── gdascounts_ave ├── global_postevents └── timetwin obsproc_prep.v5.2.0/exec ├── prepobs_cqcbufr ├── prepobs_cqcvad ├── prepobs_glerladj ├── prepobs_listheaders ├── prepobs_monoprepbufr ├── prepobs_mpcopybufr ├── prepobs_oiqcbufr ├── prepobs_prepacpf ├── prepobs_prepacqc ├── prepobs_prepanow ├── prepobs_prepdata ├── prepobs_prevents ├── prepobs_profcqc └── syndat_syndata 0 directories, 38 files
Building decoders¶
enter into gempak directory:
> cd /g5/nwpc_ep8/obsproc/nwprod/gempak > ln -fs GEMPAK7/Gemenviron.profile .gempak
edit
.gempak, add following lines:GEMINC=$GEMPAK/include export GEMINC
enter into directory:
> cd /g5/nwpc_ep8/obsproc/nwprod/decoders/decod_shared
compile:
> ./build.bashit compiles the decoders for different type obs.:
> cd /g5/nwpc_ep8/obsproc/nwprod > tree -L 1 -I "tmp|*tbl|*headers|*log|fort*|*ksh|bufrtab*" decoders/decod_*/exec decoders/decod_dcacft_v3.3.0/exec └── decod_dcmicapsadmar decoders/decod_dcamdr_v3.4.1/exec └── decod_dcamdr decoders/decod_dcaxbt/exec └── decod_dcaxbt decoders/decod_dcaxbt_v3.0.0/exec └── decod_dcaxbt decoders/decod_dcbthy/exec └── decod_dcbthy decoders/decod_dcbthy_v3.0.0/exec └── decod_dcbthy decoders/decod_dccgrd/exec └── decod_dccgrd decoders/decod_dccgrd_v3.0.0/exec └── decod_dccgrd decoders/decod_dccimiss/exec └── decod_dccimiss decoders/decod_dccimisssatwind/exec └── decod_dccimisssatwind decoders/decod_dccimisssurf/exec ├── decod_dccimiss ├── decod_dccimisssurf └── run_dccimisssurf.py decoders/decod_dccimisssurf_v3.0.0/exec ├── decod_dccimiss ├── decod_dccimisssurf └── run_dccimisssurf.py decoders/decod_dccimissupr/exec ├── decod_dccimissupr └── run_dccimissupr.py decoders/decod_dccimissupr_v3.0.0/exec ├── decod_dccimissupr └── run_dccimissupr.py decoders/decod_dccimiss_v3.0.0/exec └── decod_dccimiss decoders/decod_dccoop/exec decoders/decod_dccoop_v3.0.0/exec decoders/decod_dccrn/exec decoders/decod_dccrn_v3.0.0/exec decoders/decod_dccsev/exec └── decod_dccsev decoders/decod_dccsev_v3.0.0/exec └── decod_dccsev decoders/decod_dccsjp/exec decoders/decod_dccsjp_v3.0.0/exec decoders/decod_dcdrbu/exec └── decod_dcdrbu decoders/decod_dcdrbu_v3.0.0/exec └── decod_dcdrbu decoders/decod_dcelrw/exec └── decod_dcelrw decoders/decod_dcelrw_v3.0.0/exec └── decod_dcelrw decoders/decod_dcepfl/exec └── decod_dcepfl decoders/decod_dcepfl_v3.0.0/exec └── decod_dcepfl decoders/decod_dcgpsw/exec └── decod_dcgpsw decoders/decod_dcgpsw_v3.0.0/exec └── decod_dcgpsw decoders/decod_dchydr/exec decoders/decod_dchydr_v3.0.0/exec decoders/decod_dcigdr/exec └── decod_dcigdr decoders/decod_dcigdr_v3.0.0/exec └── decod_dcigdr decoders/decod_dcjpfl/exec └── decod_dcjpfl decoders/decod_dcjpfl_v3.0.0/exec └── decod_dcjpfl decoders/decod_dckora/exec └── decod_dckora decoders/decod_dckora_v3.0.0/exec └── decod_dckora decoders/decod_dclsfc/exec └── decod_dccimiss decoders/decod_dclsfc_v3.0.0/exec └── decod_dccimiss decoders/decod_dcmap/exec decoders/decod_dcmap_v3.0.0/exec decoders/decod_dcmeso/exec decoders/decod_dcmeso_v3.0.0/exec decoders/decod_dcmetr_v3.1.0/exec └── decod_dcmetr decoders/decod_dcmicapsamdar/exec ├── decod_dcmicapsamdar └── run_dcmicapsamdar.py decoders/decod_dcmicapsamdar_v3.0.0/exec ├── decod_dcmicapsamdar └── run_dcmicapsamdar.py decoders/decod_dcmopf/exec └── decod_dcmopf decoders/decod_dcmopf_v3.0.0/exec └── decod_dcmopf decoders/decod_dcmssf/exec └── decod_dcmssf decoders/decod_dcmssf_v3.0.0/exec └── decod_dcmssf decoders/decod_dcnxrd/exec └── decod_dcnxrd decoders/decod_dcnxrd_v3.0.0/exec └── decod_dcnxrd decoders/decod_dcozon/exec └── decod_dcozon decoders/decod_dcozon_v3.0.0/exec └── decod_dcozon decoders/decod_dcp3rd/exec └── decod_dcp3rd decoders/decod_dcp3rd_v3.0.0/exec └── decod_dcp3rd decoders/decod_dcpflr/exec └── decod_dcpflr decoders/decod_dcpflr_v3.0.0/exec └── decod_dcpflr decoders/decod_dcrast/exec └── decod_dcrast decoders/decod_dcrast_v3.0.0/exec └── decod_dcrast decoders/decod_dcrocc/exec └── decod_dcrocc decoders/decod_dcrocc_v3.0.0/exec └── decod_dcrocc decoders/decod_dcscd/exec └── decod_dcscd decoders/decod_dcscd_v3.0.0/exec └── decod_dcscd decoders/decod_dcsynp_v3.7.0/exec └── decod_dcsynp decoders/decod_dctidg/exec decoders/decod_dctidg_v3.0.0/exec decoders/decod_dcusnd/exec ├── decod_dcusnd └── upr_data -> ../../upr_data decoders/decod_dcusnd_v3.0.0/exec └── decod_dcmssf decoders/decod_dcnxrd/exec └── decod_dcnxrd decoders/decod_dcnxrd_v3.0.0/exec └── decod_dcnxrd decoders/decod_dcozon/exec └── decod_dcozon decoders/decod_dcozon_v3.0.0/exec └── decod_dcozon decoders/decod_dcp3rd/exec └── decod_dcp3rd decoders/decod_dcp3rd_v3.0.0/exec └── decod_dcp3rd decoders/decod_dcpflr/exec └── decod_dcpflr decoders/decod_dcpflr_v3.0.0/exec └── decod_dcpflr decoders/decod_dcrast/exec └── decod_dcrast decoders/decod_dcrast_v3.0.0/exec └── decod_dcrast decoders/decod_dcrocc/exec └── decod_dcrocc decoders/decod_dcrocc_v3.0.0/exec └── decod_dcrocc decoders/decod_dcscd/exec └── decod_dcscd decoders/decod_dcscd_v3.0.0/exec └── decod_dcscd decoders/decod_dcsynp_v3.7.0/exec └── decod_dcsynp decoders/decod_dctidg/exec decoders/decod_dctidg_v3.0.0/exec decoders/decod_dcusnd/exec ├── decod_dcusnd └── upr_data -> ../../upr_data decoders/decod_dcusnd_v3.0.0/exec ├── decod_dcusnd └── upr_data -> ../../upr_data decoders/decod_dczsfc/exec ├── decod_dczsfc └── run_dczsfc.py 0 directories, 71 files