========== 安装手册 ========== * the directory structure is: .. code-block:: bash > 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.bash * If 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 :code:`GEMPAK7/Gemenviron.profile` to set :code:`$NAWIPS` to the new :code:`GEMPAK7` directory:: # Please configure the following definitions to reflect your system: # # Top level directory: setenv NAWIPS /g5/nwpc_ep8/obsproc/nwprod/gempak/GEMPAK7 # * Edit :code:`GEMPAK7/config/Makeinc.common` to add :code:`hdf5` libraries to :code:`$NETCDF`:: NETCDF = $(OS_LIB)/libnetcdf.a $(OS_LIB)/libhdf5_hl.a $(OS_LIB)/libhdf5.a -ldl -lm -lz * Assume we are using gfortran in Linux, edit :code:`GEMPAK7/config/Makeinc.linux64_gfortran` to add :code:`-I$(OS_INC)` to :code:`$NCOPT`:: NCOPT = "CPPFLAGS=-DNDEBUG -Df2cFortran -I$(OS_INC)" "FFLAGS=-O -Wno-globals" "CFLAGS=-O $(NCII)" "CXX= " * cd to :code:`GEMPAK7`, source :code:`Gemenviron.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.bash * it 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.bash * it 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 :code:`.gempak`, add following lines:: GEMINC=$GEMPAK/include export GEMINC * enter into directory:: > cd /g5/nwpc_ep8/obsproc/nwprod/decoders/decod_shared * compile:: > ./build.bash * it 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